Why are there so many computer languages?

  • Thread starter Thread starter mech-eng
  • Start date Start date
  • Tags Tags
    Computer
Click For Summary
The discussion centers around the proliferation of computer programming languages and the rationale behind it. Key points include the notion that no single programming language can address all needs due to varying strengths and weaknesses; thus, multiple languages have evolved to cater to different applications. The conversation highlights commonly recognized languages such as C, C++, Java, and Visual Basic, while also acknowledging the significance of MATLAB and Assembly Language, particularly in specialized fields like mechanical engineering and embedded systems programming. The complexity of modern programming tasks necessitates diverse languages that accommodate larger teams and more intricate problems, leading to the development of object-oriented and functional programming paradigms. The evolution of programming languages mirrors that of human languages, adapting to new challenges and technologies. The thread also touches on the idea that while many languages may seem excessive, they serve specific purposes and are gradually being streamlined as some become less common. Overall, the discussion reflects a shared curiosity about the necessity and future of programming languages in an ever-evolving technological landscape.
  • #31
Another thing to consider is that computer programming is in a very early stage of development. Math and physics took hundreds of years to get where it is today. I think that the computer languages 50 years in the future may look nothing like today's languages.
 
  • Like
Likes Stavros Kiri, berkeman and StoneTemplePython
Computer science news on Phys.org
  • #32
phinds said:
You can ask a mentor to do that (you can't do it) but I think it's too late now.
No, not too late. Thread title is now "Why are there so many computer languages?"
StoneTemplePython said:
Go and Dart were developed at Google.
A friend of mine is at Google, and writes documentation for developers. He has mentioned to me that much of the example code he writes is in Go.

I would venture to guess that one reason for the large number of program languages is that, as computers have grown exponentially faster and more powerful, the scope of problems they can be applied to has also grown larger. Instead of merely "crunching numbers" to calculate the flights of artillery shells, as the first computers did, computers are now used in unimaginably more complex problems. Over time, these programs have grown larger, requiring teams of programmers instead of just one person writing the code. To accommodate programs written by many people, all sorts of complexity was built into programming languages, in part to make the large programs easier to debug. Programs written for the early computers were procedural, in which the programmer described in detail the calculations that would be done. More modern programming languages use different paradignms, such as object-oriented programming (OOP), in which entities in the problem domain are described by objects that contain their own data and have functions provided that can be used to manipulate that data. There are also functional programming languages, such as Eiffel and Haskell, and to some extent Python.

Programming languages are developed to address problems in some previous language. In this way computer languages evolve, similar to the way human languages evolve. (Latin was once spoken by many people, but it evolved into Italian, French, Spanish, Portuguese, Romanian, Romansh, and several other smaller dialects. Almost no one speaks Latin nowadays.)
 
  • Like
Likes Stavros Kiri
  • #33
berkeman said:
Machine language is below Assembly Language; they are not the same, IMO.
I agree. Paul (@phinds and I had a discussion about this some time ago, in which he maintained that there was a one-to-one correspondence between assembly and machine code). I just finished teaching a class in computer architecture with an emphasis on assembly language, MIPS in this case. In MIPS programming, there are "pure" instructions and "synthetic" instructions. For the latter type, the assembler translates one assembly pseudo-instruction into two or more lines of native instructions.

Aside from the large number of programming languages, there is also a large number of assembly languages, with at least one for each processor. Some of the ones I'm familiar with are 6502 assembly, 68000 (and 68020, 68030, 68040) assembly, 8088 assembly (with instructions added for 80286, 80386, 80486, many Pentium models), ARM (in various versions up to the currect V8), MIPS (in various versions), IBM 360, and many many more.
 
  • Like
Likes Stavros Kiri
  • #34
mech-eng said:
Why are there too much computer language? I think 3 or 4 are the most important ones.

Thank you.
Greg Bernhardt said:
Maybe we should only have 3-4 spoken languages too? How do you feel about being restricted to english, spanish, and mandarin?
The question is not a bad one. Why were so many computer programming languages developed? The goals and aims of the computer scientists should be examined and hopefully well understood in order to answer this question.
 
  • #35
phinds said:
There is absolutely nothing wrong with asking a question. That's not what Vanadium said. What he SAID, and I agree, is that you went beyond asking a question and expressed opinions that are based on little to no knowledge and that's not a great idea on a hard science forum.
"Too many languages" is very different than "so many languages".
 
  • #36
phinds said:
Again, the issue is NOT the question, it is the opinionated formulation of the question. Had you just asked "why are there so many computer languages" all would have been well, but you didn't do that. You made an uninformed value judgement that there are too many languages.
Too picky. He really wants to know, why SO MANY languages for programming.
 
  • #37
Anyone try coding a website in C++? You'll soon figure out why web languages were developed :biggrin:
 
  • Like
Likes donpacino and Stavros Kiri
  • #38
mech-eng said:
Yes, I chose wrong words. I wanted to ask actually so many but the number for me is also too many. Yes this is an opinion I didn't realized so. For somebody number might be too less. But it is whether "too many" or "so many" does not they convey very similar idea here? And there is an negative effect of being non native when using words. May I change the title?

Thank you.
Some people forget that they themselves are not machines. (Or maybe they/we are machines; just very very complicated machines).
 
  • #39
symbolipoint said:
"Too many languages" is very different than "so many languages".
I think the original title was "too many" but in any case, the content of the post was "Why are there too much computer language?"

At any rate, all this nitpicking (mostly mine) about the wording of the question is somewhat beside the point, which is that there are very understandable (and usually good) reasons why there are a ton of computer languages.
 
Last edited:
  • #40
FactChecker said:
Because no one language can be perfect in all aspects, there are many extreme trade-offs that make some languages much better for particular applications than others. That's just the way it is with the current state of the art. Your desire to consolidate and reduce the number of languages is almost universally shared. Many languages are gradually being used less often.
I'll take what @FactChecker said and extend it to PLC (Programmable Logic Controller) languages. All are proprietary although the five basic flavors have been codified as an IEC standard.
  1. LD - Ladder logic
  2. FBD - Function Block Diagram
  3. SFC - Sequential Function Chart
  4. IL - Instruction List
  5. ST - Structured Text
IL and ST more closely resemble traditional computer programming languages. IL can be thought of as "assembly language for PLCs" while ST has similarities with C, BASIC, and other high level computer languages.

LD, SFC, and FBC are strongly graphical/visual in nature. SFC isn't very far removed from computer program flowcharting. Writing in LD is similar to sketching a relay circuit schematic, and while FBD is also connection-based, programming in it resembles creating logic gate schematics from the heyday of 7400 series discrete IC logic chips.

The first generation tended to be ladder (Modicion took this route) or instruction list (Omron, and Koyo, and by extension, the GE series one and Texas Instruments PLC offerings, which were both made by Koyo). Ladder was popular among industrial electrical engineers and techs because it closely resembled the physical circuits they were already familiar with, and it tended to be easier to troubleshoot than IL. Ladder becomes progressively less well suited as program complexity increases at about the same rate as ST becomes more desirable. Several PLC languages can be edited with elements from both general themes - LD/FBD/SFC where they are more appropriate, and ST (IL is becoming increasingly vestigial) where LD/FBD/SFC don't have the necessary "heft".

Exactly how logic created in a PLC programming environment is translated to machine code running on the underlying computer hardware is often shrouded in proprietary secrecy. One exception that comes to mind were Opto 22 Mistic controllers programmed using their Cyrano flowchart-based software (BTW - Opto 22 developed the first flowchart-based PLC software thus presaging SFC). What the user created as a flowchart was converted to FORTH on it's way to becoming machine executable code.
 

Similar threads

  • · Replies 29 ·
Replies
29
Views
3K
  • · Replies 44 ·
2
Replies
44
Views
5K
  • · Replies 8 ·
Replies
8
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 9 ·
Replies
9
Views
1K
  • · Replies 13 ·
Replies
13
Views
773
  • · Replies 26 ·
Replies
26
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
9
Views
3K
Replies
17
Views
5K