Which Programming Language Is Most Popular - The Final Answer? (zdnet.com) 401
An anonymous Slashdot reader writes: Following a common technique among political pollsters, a technology columnist combined the results from various measures of programming language popularity for a more definitive answer about the most important languages to study. He used IEEE Spectrum's interactive list of the top programming languages, which lets you adjust the weight given to the number of job listings and number or open source projects, then combined it with the TIOBE Index (which is based on search engine results), and the PYPL Index, which checks the number of tutorials for each programming language on Google.
The results? "The top cluster contains Java, C, Python, and C++. Without a doubt, you should attain familiarity with these four languages." He points out they're not tied to a specific programming platform, unlike languages in the second cluster -- JavaScript, C#, PHP, and Swift -- while the last two languages in the top 10 were Objective-C and R. "The C-family of languages still dominates. Java, C++, C, C#, and even Objective-C are all C-based languages. If you're only going to learn one language, you should pick one of those." But his ultimate advice is to "learn multiple languages and multiple frameworks... Programming is not just an intellectual exercise. You have to actually make stuff."
The results? "The top cluster contains Java, C, Python, and C++. Without a doubt, you should attain familiarity with these four languages." He points out they're not tied to a specific programming platform, unlike languages in the second cluster -- JavaScript, C#, PHP, and Swift -- while the last two languages in the top 10 were Objective-C and R. "The C-family of languages still dominates. Java, C++, C, C#, and even Objective-C are all C-based languages. If you're only going to learn one language, you should pick one of those." But his ultimate advice is to "learn multiple languages and multiple frameworks... Programming is not just an intellectual exercise. You have to actually make stuff."
This again? (Score:5, Insightful)
Re:This again? (Score:5, Informative)
"Assembly" is not a programming language. Rather, there is at least one "assembly language" for each CPU instruction set. More importantly, compilers rarely produce any kind of assembly language any more, though there are various types of intermediate representations used by interpreters and compilers. Every CPU executes instructions in a machine language. There are several such languages in common use, most importantly those understood by the x86 and ARM families.
Re: (Score:2)
Re:This again? (Score:5, Informative)
He's not even right in a pedantic way. Assembly languages are programming languages. Not a very easy set of languages, to be sure, but then again neither is Brainfuck.
Re: (Score:3)
No, the OP is right in a pedantic way. Assembly language isn't really a language, but rather a loose collection of related languages.
As for the other poster's comment that it is basically just human-readable machine language, so is C, but nobody argues that C isn't a programming language. :-D
Re:This again? (Score:5, Insightful)
Assembly isn't hard, however it is tedious. You have a relatively small set of commands that do simple things. So for example if you want to print something. You will need to assign the memory address/registers for your text, populate that memory address with the data. Tell where it will look for that set of data, then call the interrupt that will have the video processor turn your string to text.
or you can use printf that does all that, and more for better performance, as it can buffer the data set and display the data more efficiently. Because the person who wrote the printf probably spent a lot of time to get that command right, while if you are working on your own app. You probably don't have the time to recreate all that work for a simple result.
Re: (Score:3)
Re: (Score:3)
> Assembly language usually normally contains conveniences ...
Minor quibble. FTFY.
On the Apple 2 computers you can use the mini-assembler built into ROM -- which IS the raw assembly it generates.
The OP is ignorant of what assembly language even is.
Re:This again? (Score:5, Insightful)
"Assembly" is not a programming language. Rather, there is at least one "assembly language" for each CPU instruction set
An assembly language you say?...so humans can program in it? Kind of like a programming language?
More importantly, compilers rarely produce any kind of assembly language any more
They do if you pass the -S flag.
Every CPU executes instructions in a machine language. There are several such languages in common use, most importantly those understood by the x86 and ARM families.
Yeah, computers execute machine code, assembly is the language humans write to generate machine code. Thanks.
Re: This again? (Score:2)
There are many assembly languages. It's not fair to group them together as one language.
Re: (Score:2)
Because the difference between POSIX C and MISRA C is a large pile of custom headers to define type conversions. The difference between ARM64 assembly with Neon instructions and 6502 assembly is more like the difference between C++11 and the original 1983 version of Pascal.
Re: This again? (Score:5, Informative)
and the original 1983 version of Pascal.
I think the 1970 version of Pascal just got offended!
Re: This again? (Score:4, Funny)
It's not really Pascal unless you're programming it in the original Klingon version.
Re: (Score:3, Funny)
and the original 1983 version of Pascal.
I think the 1970 version of Pascal just got offended!
I think the 1623 version of Pascal [wikipedia.org] just got offended!
Re:This again? (Score:4, Funny)
Some might. I enter it directly by bit-banging on the RS232 port with a hatpin.
Re: (Score:3)
I'm not a programming expert at all, and in fact whenever I need to automate something, the best I can do is write something in bash or make something GUI driven in powershell.
But, it's my understanding that Assembly is psuedocode that translates more directly into machine code than say C. Unless you want to argue that CPU architectures directly interpret words like PUSH, INT, CALL, JMP, etc, then why wouldn't assembly be considered a programming language in the same vein as anything else?
Re: (Score:2)
Who gives a shit?
People interested in remaining relevant in an industry that changes at an unprecedented pace (yes, even compared to beauty pageants)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I would think that assembly generated from Java has different statistics than assembly generated from C.
Re: (Score:2)
Who gives a shit?
Something that could have been answered for you in the opening sentence of TFA.
Re: (Score:3)
I'm seeing "which is the most popular language" every month or so here.
Don't blame the editors. They don't read read slashdot, so how would they know?
Re:This again? (Score:5, Informative)
It all gets compiled down to assembly anyway.
Actually it gets compiled down to Machine Code. Assembly Language is simply Machine Code rendered in a human readable format.
e.g. ld a,1 in Z80 assembler would be 3E01 in HEX
Re:This again? (Score:4, Interesting)
Actually it gets compiled down to Machine Code. Assembly Language is simply Machine Code rendered in a human readable format.
e.g. ld a,1 in Z80 assembler would be 3E01 in HEX
Oh, the memories. To this day I can remember on my ZX81 hand-assembling 2A0C40, which loads the display file base address into the HL register pair. Calculating all those relative jumps... ugh :(
Re:This again? (Score:5, Insightful)
Well developers should be concerned about that.
If you are a Perl Programmer, or Ruby programmer, and you see that your favorite language is falling off the list, perhaps it may be important to your career to brush up on the popular languages. I myself rarely do C or C++ programming, mostly Python, C# and Java. However every once in a while I will do and do some C/C++ coding on it to see what is new and discover things that I had learned in other languages had also been in C/C++ or was recently added to it. While my professional work, doesn't need me to use C/C++ knowing that it is still a popular language means I should keep up some practice in it.
Re:This again? (Score:5, Funny)
Perl, obviously, it has the most holes in it and sucks the hardest. There are countless ways to get fucked by Perl.
What the Idiotic Hell./ (Score:2, Flamebait)
Seriously, this is the dumbest most "hey lets try to generate views by ranting comments" stupid bullshit I've seen in ages. That is taking into account the completely unrelated US politics bullshit that has been barfed out of the firehose these days.
Popularity of a language is immaterial to the usefulness of a language, to the creation of solutions with whatever language, and certainly will never have a final answer.
What the sincere fuck Slashdot.
Re: (Score:3)
Re: (Score:3)
“Object-oriented programming is an exceptionally bad idea which could only have originated in California.” – Edsger Dijkstra
Re: (Score:2)
“Object-oriented programming is an exceptionally bad idea which could only have originated in California.” – Edsger Dijkstra
Coming from Dijkstra, who once compiled and printed a book named "Famous quotes by Dijkstra", this quote has no real value. And, BTW, OOP did not originate in California. It originated most probably in Norway.
Re: (Score:2)
Popularity of a language is immaterial to the usefulness of a language
That would be lovely, if it were actually true.
Re: (Score:2)
That would be lovely, if it were actually true.
Well, that statement could be interpreted in multiple ways. If you want a job, you have two choices: Go for what most employers are asking for, or go for what some employers are asking for but aren't currently getting. Having said that, popularity of a language seems inversely related to the usefulness of a language in many cases.
Oh, and while we're here, in what possible universe are Java and C# "C-based"?! Wadler's Law [c2.com] in action...
Re: (Score:2)
The world in which a language is said to be based on another if it shares a great deal of syntactic similarity.
For C based, this usually boils down to "uses braces to delimit blocks".
Re: (Score:3)
Relax, ranting about programming languages is how geeks blow off steam to keep us from doing sinister things like hacking Trump's barber to put afro-sauce into the formula.
Re:What the Idiotic Hell./ (Score:5, Interesting)
Of course popularity matters.
1. More popular languages you can find less expensive developers for...(or more total developer talent for a given amount of money)
2. More popular languages are likely to have stackoverflow posts with examples for every single basic task and explanations about what errors mean. (before you gloat about how you don't need help from SO, have you ever faced goddamn C++ linker errors? Might as well have an Ouija board out to find out what the mistake is)
3. More popular languages work on more computers and are likely to continue to work in the future
4. More popular languages tend to be faster. Usually a shit ton faster. Java has gone from a bloated mess to a bloated mess that is often within spitting distance of C on performance shootouts. That's from the popularity spurring further development. C is almost always king of the hill and nothing is faster. Python? Rust? Whatever n00bs. Those languages may be nice to write complex code that only gets run occasionally but if you need high end performance they aren't going to cut it.
Re: (Score:3)
4. More popular languages tend to be faster. Usually a shit ton faster. Java has gone from a bloated mess to a bloated mess that is often within spitting distance of C on performance shootouts. That's from the popularity spurring further development. C is almost always king of the hill and nothing is faster. Python? Rust? Whatever n00bs. Those languages may be nice to write complex code that only gets run occasionally but if you need high end performance they aren't going to cut it.
Rust is a compiled language. It uses the same backend as Clang to produce optimized code. The code it produces as fast as C and C++ while still providing protection against data races and a raft of other issues that can crash or destabilize something written in C or C++.
So while it may not ever gain the popularity of C or C++, the implication that its slow is wrong.
And besides, in the real world, speed is not the only consideration. Time to market is important, reliability is important, maintenance is i
Re: (Score:3)
But it isn't as fast as C. Look at the benchmarks.
My Precious (Score:5, Funny)
Re: (Score:2)
Indeed; I still hate debugging C code written by someone else, tho'.
Is there a language where it's easier to make hard-to-find bugs?
What about English? (Score:2)
I'm amazed that computers still can not simply take commands spoken by the average speaker of the nearly universal language "English" and perform those instructions to the letter. Curly braces, tabs, spaces, none of that should matter.
Re: (Score:2)
English has ovrloaded words and ambiguities. A subset of English with strict rules of their meaning forms several languages, including COBOL.
Re: What about English? (Score:2, Interesting)
It hasn't been done because it's impossible without placing severe restrictions on the definitions and syntax of the language. English (like most human languages) were designed with context in mind, something that often is not available at compile time and could cause different actions to take place should the context at execution time not match those the programmer envisioned when they gave them.
Instruction: Robot, discipline the dog with a newspaper.
Assuming the order is being stored for future use, what
Re: (Score:3)
D) Write stories about how naughty the dog is and publish them in the FT.
Re: (Score:2)
The person you replied to already gave you a succinct answer. It had nothing to so with "silly compulsive shit over curly braces and indentation". English is far too complex and full of ambiguity.
Re:What about English? (Score:5, Insightful)
English can, and should be, logically structured. Is its complexity that is holding back from the use by the masses?
English can be precise if you choose your words carefully. But you will soon find that you are saying or typing WAY more than if you used a real programming language to do the same thing.
Would you rather type: for (int i = 0; i < 10; ++i) {
Or: Using an integer with at least 32 bit precision initialized to zero, test if the integer is less than 10, and if so perform the specified task, and then increment the integer, and repeat the test.
Which would you rather debug?
Do you think mathematicians should also eschew mathematical notation?
Do you think chemists should describe molecules in English, rather than using formula or diagrams?
Re:What about English? (Score:5, Insightful)
I would rather use the language that enables the most users to instruct their computers on what they want done. Stupid battles over curly braces and punctuation does nothing to further this goal. Humans have understood how to interpret human language, it is high time we taught our machines to do the same.
You completely dodged his point. Seriously, go to a mathematician sometime, tell him to write everything in pure English. None of this quadratic stuff, we only live for "x equals minus b plus or minus the square root of b squared plus 4 times the value of a times c divided by the value of 2 times the value of a". Because that's much more accessible and readable than some scratch marks, clearly.
Next up will be the elimination of slang, yes?
Re: (Score:2)
I guess all I'm saying is that is time to reserve mathematical computer language to mathematicians, and leave normal computer language to normal people. Seriously, how many people do you know who say "2^3.1459" when ordering a couple of cheese burgers?
Umm... that example doesn't even work, because ^ isn't even a letter or a word. It's a symbol... the kind you use when writing, not speaking. You speak English, yes? On that note, plenty of people where I live say (linked because Slashdot doesn't support unicode) [sakura.ne.jp] as a greeting, and yes, that is the 100% correct form. You don't seem to be able to tell the difference between a written letter and a spoken sound; and frankly, you have clearly never programmed before either. There's a reason why it is the way it
Re: (Score:3)
Hello, "normal" computer language IS mathematical.
All your arguments are entirely touchy-feely in nature. And your example is nonsense.
Basically, you want the computer to know *precisely* what you mean no matter how *imprecise* your instructions are, and this is very likely Never Ever Gonna Happen.
Re: (Score:2)
"Basically, you want the computer to know *precisely* what you mean no matter how *imprecise* your instructions are, and this is very likely Never Ever Gonna Happen."
Yah. Oft stated "Do what I mean, not what I say".
Re: (Score:2)
Interesting. Since normal people are 'touchy-feely" are you saying computers will never understand normal people?
Understand, no. Faking it with varying degrees of success, yes.
But we don't accept varying degrees of success for machines that perform important tasks. We expect exactly one outcome except when we deliberately add randomness.
Re: (Score:3)
...Humans have understood how to interpret human language, it is high time we taught our machines to do the same.
I agree. This language is already written. COmmon Business Oriented Language, by the grace of Admiral Grace
Re: (Score:3)
Humans have understood how to interpret human language, it is high time we taught our machines to do the same.
I also think in addition to a magic computer language, we ought to issue free unicorns to everyone.
Humans are intelligent, computers are not. Human language makes use of this feature, so humans can fill in the mising bits when a fellow human says somthing ambiguos or thats not quite rite and so on. Even so, plain English is full of ambiguities and imprecision. That's (a) why mistakes happen and (b)
Re: (Score:2)
And yet one of the biggest problems I see with programming is due to people defining programs imprecisely and becoming confused when the computer does something different from what they think they just told it to do.
Re: (Score:3)
Natural language computer instruction is a tantalizing goal. It would be very convenient for the human to employ, but singularly challenging for the computer to interpret. How the hell is it supposed to divine that a water pistol is not something made of water (nor does it shoot projectiles), and a wood stove is not made of wood. Is a wood table something intended to support wood?
The reason Siri works is because it is presented with stupidly simplistic queries, and we accept crazily imprecise answers from i
Re: What about English? (Score:4, Insightful)
It should not take a PhD to ask a machine to sum 1 + 1.
(Presuming you meant "calculate 1 + 1" or "add1 and 1")
It doesn't take a PhD. It doesn't take any education at all. Most kids these days know how to do that in multiple languages.
But the problem is that the English or any other spoken language isn't formal.
In the above calculation, what did you mean by 1? An abstract integer? A cardinal number? A measure between 0.5 and 1.5?
And what is it supposed to do with the result of the above calculation? You didn't specify, so did you want it to discard the result? Execute it? Present it to you? How, exactly? Visual, audible, or tactile? As binary? With uncertainties like 2 +/- 1?
And what should it do after that? Stop? Halt? Redo? Run NOP cycles until the cows come home? You didn't say.
You have to be explicit and not ambiguous when you tell a computer to do something. We humans try to guess what you mean from the context, but a computer doesn't have that luxury. You have to provide the context. Doing so is much easier in a programming language than in English. Programming languages have a well-defined context, and you know what an instruction sequence will do. The languages are designed to avoid ambiguity.
With human languages, you don't. You have to guess from context.
If your wife says "lay down on the bed", you don't cut open a pillow and start to lay little feathers on the bed. You second-guess her and presume she meant "lie on the bed for an unspecified period of time".
And if you say "make me one with everything", you expect different results depending on whether you address a hot dog seller or a zen master.
Context is everything. And the computer doesn't have your context unless you first feed it to it.
Re: (Score:2)
One major lack in most natural languages is scope closers for conditionals or iteration. So it's not at all clear whether an IF governs the next sentence or the next ten.
Now you can get round that with tricks like numbering or indenting the sections, but at that point it's already beyond a layman's ability to understand, let alone write. Congratulations, you've invented another programming language. One that looks like lawyerese.
Re: (Score:2)
There's always COBOL.
Re: (Score:2)
You do have a point, even if the computer didn't get it perfect everytime it would be nice to get some things done as easily as you could asking a human. Use google to search for the first 100 gas stations in our city, put the names and addresses in a spreadsheet. Thanks.
I agree. What Siri and others can do is still limited. I've often wanted the ability to do this.
Re: (Score:2)
Yes, it is clear. In a nutshell, you gave the top-level instruction to the AI comp. To bad today's comps have limited understanding. Unless you have a Watson, of course. We're getting there.
What I learned from this article (Score:2)
And there's really no surprise there. The "C family of languages," and also Python, is a pretty good start.
Re: (Score:3)
Most popular language (Score:3)
Re: (Score:2)
irrelevant. (Score:2)
The language du jour can be the most popular topic in any given year. What really matters is how effective a language is for solving a problem and how easy it is to modify when you're solution has bugs.
Re: (Score:2)
Which programming language! (Score:5, Funny)
Man I am falling behind... I have never heard of the Which programming language and here we are told that it is the most popular. And I thought I was a software professional. BTW just so I have straight is it WHICH or Which or just which - I don't want to embarrass myself at the next meeting when I propose we do the next project in Which.
Re: (Score:2)
A: That's right.
C: What is?
A: No, Which is.
C: What?
A: What didn't make the top 10.
C: What didn't?
A: That's right.
C:
A: Right.
C: What's right?
A: No, What didn't make the top 10.
C: What didn't?
A: Right.
C: Which language didn't?
A: No, Which was the top language.
C: Which was?
A: Right.
Re: (Score:2)
Thank you. You saved me a few cycles and came up with something better to boot.
Re: Which programming language! (Score:2)
It's hard to top Laurel and Hardy.
Too easy to get hung up on one language (Score:2)
Even if the new language turns out
Well... (Score:2)
My best advice to all of you engineers in the Class of 1890 is to bet your careers on coal-powered steam. Yes, we hear talk of internal-combustion this and electric-power that, but they are all just expensive novelties. Coal is efficient, it provides for many jobs among the lower classes in the mining industry, and is also unwasteful in that most of it literally disappears into the sky, far away from the refined mouths of gentlemen like yourselves.
Besides, the electric power proposals proposed rely on coal-
Re: (Score:2)
But is it web scale? [mongodb-is-web-scale.com]
Re: (Score:2)
No, but you can run a Byrhtnoth cluster of them.
The Final Frontier (Score:2)
In other news, space is the the final frontier. And tab is eight spaces.
Php tied to platform? [Re:PHP] (Score:2)
Indeed. The "money" languages are Php, C-sharp, and Java, for good or bad.
I'm curious why the intro called Php "tied to a specific programming platform". I'd like clarification on that.
Re: (Score:3)
And JavaScript, too....
Maybe they meant "some of the languages in the second tier"?
Re:Php tied to platform? [Re:PHP] (Score:4, Interesting)
If they include javascript, why not perl? I find it hard to believe that there are more R programmers than perl scripters.
Re: (Score:3)
Re: (Score:2)
R has a big following amongst people who aren't actually programmers per-se. Typically you see it used for analytics everywhere ranging from credit scoring, to insurance risk analysis, to demographic/health/geographic analysis by health services, city planning services and so on and so forth.
That's probably why R does so well because although it's not a great choice for programmers in a lot of cases, it's fantastic for analysts.
Re: (Score:2)
If something came along to replace or reduce programming on the client side, JS usage could shrink quickly.
WebAssembly. It's supported by most major browsers (experimentally) and has a W3C working group ironing out the details.
Re: (Score:2)
Seriously though Atom editor is my favorite editor lately and if someone told me a year ago I'd be using a text editor written in javascript I would have laughed.
Re: (Score:2)
PHP is relegated to web servers? So the platform it would be tied to is "the web".
In constrast, some languages can be used for web back-end, general scripting and full applications.
Re: (Score:2)
PHP works just fine as a general-purpose scripting language. No web server required.
Re: (Score:2)
Apparently you haven't heard about the PHP-Objective-C Bridge. (I wish I were kidding.)
Re: (Score:3)
What defines a "programming language" anymore to where PHP doesn't fall under this? C/C++ can be ran from an interpreter or JIT compiler. HipHop can compile PHP into native code. So what separates them?
Re: (Score:2)
PHP is as much a "programming language" as BASIC is, by CS standards.
If that's your standard, Python would be in the same class of non-programming languages.
Hell, even JavaScript has lexically scoped variables.
Re: (Score:2)
Still true of Python.
Re: (Score:2)
Re: (Score:2)
I don't think I could step back into the stone-age IDE's and features of Java,
Compared to C#? This is how we know you're trolling.
Re: (Score:2)
Care to clarify? as a C# developer, coming into contact with the java world always does feel like going back to 10+ years ago.
Re: (Score:2)
As for the language, Java hasn't been standing still, a lot of the features that were missing before have been added in the newer versions of the language.
Then there is nuget which drives me crazy and I hate. TBH recently he C# world is becoming too much like the node.js world for my taste.
Re: (Score:2)
Also, many will argue that Java is still missing "a lot of the features" that have yet to be added to newer versions of the language
The copying goes both ways. Maybe eventually C# will get a decent time package like Nodatime.
Re: (Score:2)
I prefer driving an automatic over a manual transmission too.
Well, if you're driving a car, for sure. But it would be a serious mistake to install an automatic transmission in a freight locomotive or heavy truck.
Modern locos typically have fixed gear ratios (Score:2)
A serious mistake, indeed, if you put an automatic or manual transmission on a modern freight locomotive as they typically operate with fixed gear ratios. Most modern locos are diesel electric and speed control is accomplished by controlling current and switching motor coils between parallel and serial configurations.
Of course this is a hardware problem and not a software problem. Besides, from the programmer's point of view there may be a virtual loco machine that would appear to the programmer as a set
Re: (Score:2)
The only thing that is relatively C-like in Java is the syntax
...and if you take that as the definition of "C-based" then every language mentioned in TFS is "C-based" apart from Python. Silly article.
Also silly because the hard bit of learning a new "language" is not the language per se (all the languages discussed are multi-paradigm with a procedural/OO slant - no Lisp/Smalltalk/Haskell in that list) but the framework(s) and APIs associated with a new platform (which is usually why you are switching language).
Re: (Score:3)
Re:Yeah, but... (Score:5, Interesting)
Don't forget shell scripts.
I do development in C and many other languages, but I bet that most of the code I write is in posix sh, bash or perl.
Some quite advanced systems are written as scripts. When timing is not essential, it can be a rational choice. And even then, the majority of a system can be written as scripts, with only the timing-critical components being compiled code.
Perl... (Score:3)
but I bet that most of the code I write is in posix sh, bash or perl
Perl, yeah. I like it a lot too.
But sometimes I need to be able not only to write, but also read what I've written.
To determine what a piece of code actually does.
Or if it was simply my cat walking over the keyboard.
Or it it was my cat that successfully patched a mission critical Perl-script by randomly walking across my keyboard...
~~~
Murphy Says... (Score:5, Funny)
It will be the language least suited to your task, but insisted upon by your managers.
Re: (Score:3)