IEEE Spectrum Ranks the Top Programming Languages 197
An anonymous reader writes Working with computational journalist Nick Diakopoulos, we at IEEE Spectrum have published an app that ranks the popularity of dozens of programming languages. Because different fields have different interests (what's popular with programmers writing embedded code versus what's hot with web developers isn't going to be identical) we tried to make the ranking system as transparent as possible — you can use our presets or you can go in and create your own customized ranking by adjusting the individual weightings of the various data sources we mined.
Not a ranking of what is the best language (Score:5, Insightful)
Re:Not a ranking of what is the best language (Score:5, Insightful)
GIGO (Score:5, Insightful)
Whether with programming languages or with studies it's the same: Garbage In, Garbage Out.
Select mobile, and you'll find Objective-C listed 16th, 6 places after MATLAB, and two places after Visual Basic. Which is clearly nonsense.
We already have tried and tested (back to 1989!) rankings for this. http://www.tiobe.com/index.php... [tiobe.com]
And Objective-C is currently number three across the board, never mind just mobile.
Re: (Score:2)
In the link they provided explaining how they do their rankings, they mention Google search is one metric and also mention that it's what tiobe uses [with a link to tiobe's page]. They're trying to be more transparent and use multiple metrics vs just one or two. Maybe it's time to have an alternative to tiobe. If both indexes, done with different methodologies, provide similar results, this would tend to bolster the validity of each.
Re: (Score:2)
Maybe it's time to have an alternative to tiobe. If both indexes, done with different methodologies, provide similar results, this would tend to bolster the validity of each.
But as I pointed out cursory examination proves it's garbage. I've already donr Obj-C. How about MATLAB being 5 places above HTML? Complete drivel.
Re: (Score:2)
I agreed with your original first paragraph [but forgot to mention it--sorry].
We need multiple such ranking lists just like we need multiple style guides. On the latter, some are better than others, but when they all converge on a given point, that's when it's more likely to be a valid concept.
I just looked at the latest tiobe and it appears to better match how I would have [being a programmer] ranked some of the languages. Spectrum will no doubt [have to] tune their methodology, based upon the drumming t
Re: (Score:2)
Maybe it's time to have an alternative to tiobe.
There's an alternative [langpop.com].
Re: (Score:3)
Select mobile, and you'll find Objective-C listed 16th, 6 places after MATLAB, and two places after Visual Basic. Which is clearly nonsense.
lol you're reading the results wrong. Read the instructions where it says 'click to hide'. Objective-C turns up in 16th place if you disable mobile.
:)
So yeah, you're right, that is clearly nonsense.
Re: (Score:2)
Whether with programming languages or with studies it's the same: Garbage In, Garbage Out.
Select mobile, and you'll find Objective-C listed 16th, 6 places after MATLAB, and two places after Visual Basic. Which is clearly nonsense.
We already have tried and tested (back to 1989!) rankings for this. http://www.tiobe.com/index.php... [tiobe.com] And Objective-C is currently number three across the board, never mind just mobile.
The filters are meaningless because they just hide the languages that are not classed as being used in that space, they don't actually measure usage in that space. When you hide all but mobile they're still ranking the languages by overall use, not use in the mobile space. So C# is at 4th despite it having almost no use in the mobile space.
Re: (Score:2)
Unlike you I supplied a more reputable source of data. Objective-C is number 3.
And a long way above Ruby! ;-)
Re:GIGO (Score:5, Informative)
here are more realistic non-Apple biased list, your Objective-C pushed way done into the fringe where it belongs. Anyone who has been around in IT knows Objective C doesn't even come up outside of Apple development (and really there aren't many of those compared to finance, engineering, healthcare and web developers in the world
http://langpop.com/ [langpop.com]
http://blog.codeeval.com/codee... [codeeval.com]
Re: (Score:2)
Anyone who has been around in IT knows Objective C doesn't even come up outside of Apple development (and really there aren't many of those compared to finance, engineering, healthcare and web developers in the world
But the GP was talking about mobile development, and a heck of a lot of mobile development is Apple development. Have you ever heard of a mobile Matlab implementation? I hadn't. It exists, but I only know it does because I googled* it right now.
(* using Bing. because something I downloaded yesterday changed my search page.)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Every point of measurement is data. Hence an anecdote is as well, and bottom line I consider them the most important data points.
Re: (Score:2)
Every point of measurement is data. Hence an anecdote is as well
A point of measurement is a datum, and thus that's the best an anecdote might be. However the other side of anecdotes is that as verbal or written stories there's at last as much fiction as fact amongst them, so they aren't really credible even as a datum.
Re: (Score:2)
Oh, so if someone posts 100m data points they are credible and when one only mentions one single life experience it is not? ... I did not know that. How does the judicial system in your country deal with testimonies? Sounds like you live in a very wacky society that you believe such nonsense.
Wow
Re: (Score:2)
Oh, so if someone posts 100m data points they are credible and when one only mentions one single life experience it is not?
Do you know what a straw-man is?
Re: (Score:3)
"I said data. An anecdote is not data."
Yes it is, but that's besides the point, because don't worry, I know what you meant, you meant that an anecdote isn't as important a piece of data in your view, as TIOBE.
But here's the problem, TIOBE's methodology is so less than useless that I'm not sure it is better than an anecdote. Go read how they figure out their rankings - they take results from pages where content is mostly user generated and weight the result based on the amount of traffic that site gets. This
Re: (Score:2)
Rubycodez, it's a bit of a giveaway you have a sock-puppet account when all messages have an inability to use capitals or the English language, and have a maturity age of about 11.
Re: (Score:2)
you are funny, now address the issue of millions of developers for other popular languages EACH (-- there are some caps for you) while objective-C has few hundred thousand.
Re: (Score:2)
Re: (Score:2, Insightful)
HTML is a markup language, not a programming language. Jscript is the typical programming language associated with it.
Amazing that people still mix these up.
Re: (Score:2)
HTML5 is enough of a language that it is supplanting Flash and Java, and I think this is what they are referring to. Declarative animation can get you a long way and if all you are using ECMA for is to fill in a few gaps you can arguably classify it as a language for the purposes of this survey.
Re: (Score:2)
Re: (Score:2)
By that logic, no programming language is Turing-complete.
Re: (Score:2)
For very large values of "large", a large program will still require more memory than available.
Re: (Score:2)
Re: (Score:2)
Can't it? Since we're being technical, we must differentiate between Javascript specification and any particular Javascript implementation. Does the specification have anything in it that enforces finite pointer size, or could you, in theory, use BigInts? For that matter, can BigInts be implemented in a way that doesn't run into trouble when memory space gets exhausted, at least for the purposes of acting as po
Re: (Score:2)
HTML is not a language. Sorry.
Re: (Score:2)
HTML is not a language. Sorry.
All these years, I guess I was wrong about what the L stood for.
HTML may not be a Turing-complete programming language (I haven't looked to see how much HTML5 added), but it is a "language".
Re: (Score:2)
Sure. You're limited to communicating the logical structure of a page, which is meaningless without the actual contents, but then again, all communication is meaningless without the context.
Re: (Score:2)
Re: (Score:2)
I believe you intended to say "HTML isn't as popular a beverage".
I hate it when poor delivery spoils what would have been a good punch line.
Re: (Score:2)
Figuring out the best programming language is just an opening to a flame war.
1. Different languages have chosen a different set of trade offs as to meet the problems they solve. Speed to run vs speed to code. Compiled vs interpreted. Verbose descriptive command vs quick to type but cryptic commands.
2. Different platforms. Are you coding for Windows or Linux perhaps for Apple. How much do you want to take advantaged of the platforms features?
3. You tend to favor what you know. Why do you think most of these
Verilog? (Score:2)
I am somewhat doubtful that Verilog counts as a programming language. SystemVerilog, perhaps, but that isn't mentioned.
Also SQL -- yes, there is a distinct syntax associated with it, but is it a "programming language"?
Re: (Score:2)
Re: (Score:2)
SQL certainly is not turing complete, but I wonder why people even bring up that matter?
Re: (Score:2)
You're incorrect. Please see Cyclic Tag System [postgresql.org] and Turing Machine in SQL [coelho.net].
Re: (Score:2)
This is not SQL but an enhanced/extended proprietary dialect. :)
The first sentences even mention the extensions
Better luck next time.
Re: (Score:2)
You clearly didn't actually read the material provided. Please read it, in its entirety, and let me know when you're done. Cheers!
Re: (Score:2)
Why should I? It does not add to the discussion.
On top of that, the definition of turin complete is not that you are able to simulate a turing machine, albeit if you can do that you are turing complete, hence the misconceptions in this thread I guess.
Re: (Score:2)
You should do so because you've proven that you're capable of not only once, but twice, commenting on a topic that you're unqualified to speak on. Will you continue to refuse to read the referenced materials, reply again, and hence continue to demonstrate your willful ignorance? Your initial statement was provably false, and you're simply unable to admit your error. That's pathetic.
Re: (Score:2)
What is your problem?
Standard SQL (1986/1999) is not turing complete.
The articles you linked are not about standard SQL but about modern derivates, no idea if they 'just yesterday' became an agreed standard (which is not adopted yet, and from which is unclear which vendor will when implement what of it). And I don't care. I'm not particular interested in using SQL for solving programming problems.
Your initial statement was provably false, and you're simply unable to admit your error.
No, it was not!
Google:
Re: (Score:2)
You should be asking yourself what your problem is. Clearly, you still haven't read the referenced materials; proprietary extensions are not needed. Here's something else to read while you're at it: SQL Standardization [wikipedia.org]. There is no single "standard SQL." SQL standardization has gone through many iterations: SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011. The SQL standard is presently maintained by ISO/IEC JTC 1 [wikipedia.org].
So yes, your initial statement (which was "SQL certainly is not turing
Re: (Score:2)
As you are a practitioner of Aikido, I'm genuinely surprised by the direction this entire commend thread has taken. I am looking forward to your next reply, though.
Re: (Score:2)
So you still believe that 'ordinary' SQL is turing complete? ... that is astonishing. ... I guess you don't want to learn anything.
Wow
But as you obviously keep insulting me
Re: (Score:2)
Re: (Score:2)
Also SQL -- yes, there is a distinct syntax associated with it, but is it a "programming language"?
If not, any of the variants of PL/SQL certainly are.
Re: (Score:2)
SQL is not a programming language but a querry language.
Re: (Score:2)
If HTML is a programming language, then anything can be a programming language.
Re: (Score:2)
Also SQL -- yes, there is a distinct syntax associated with it, but is it a "programming language"?
SQL99 is Turing complete. You need more than SELECT, JOIN, UNION though.
Re: (Score:2)
Indeed, Turing Machine in SQL [coelho.net] is a really neat five part series on demonstrating Turing completeness in SQL. Fabien Coelho does a really nice job of walking the reader through the various stages.
Re: (Score:2)
Re: (Score:2)
Best editor? (Score:2)
Re: (Score:2)
That would be silly indeed, since its clearly VI.
Brett
Re:Best editor? (Score:5, Funny)
Re: (Score:2)
Already done. Check the Slashdot archives for the Vi vs Emacs paintball fight.
How did Java beat C (Score:3)
Re:How did Java beat C (Score:4, Insightful)
how on earth did Java beat out C....... the other hand C is the king of the embedded world, Operating System world ( such as kernels ) and can still rock it on the desktop with C++ and C#.
Because most programming isn't exciting new hip startups, it's not embedded.
Most programming in the world is boring business software. And that is where Java shines, for various reasons. As someone else pointed out, it's like the COBOL of the 21st century.
Re: (Score:2)
Re: (Score:2)
Java is what a lazy developer uses to get free security and free memory protection, a child could write a business application in Java and have it secure
No, if you think Java will give you security and free memory protection, then your program has both security holes and memory leaks.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Java should lose points because you think it's not challenging enough? Seriously?
Re: (Score:2)
List linklist = new List();
Tree tree = new Tree();
So how is it not for the lazy programmer?
Re: (Score:3)
That's like asking why isn't Assembly language on the top of the list? It runs circles around C in the performance area, both in speed and size (important for embedded apps).
Java beats C because you can accomplish more in Java than C with fewer lines of code and less mental effort. Things like exceptions, OO, garbage collection, a massive library, etc. save a lot of time compared to C. Debugging is also relatively painless because you get a stack trac
Re: (Score:2)
I'm sorry? Have you ever seen the huge amounts of boilerplate Java requires?
Re: (Score:2)
Re: (Score:2)
The default 'package' access is rarely used.
Huh. I use it quite a bit when implementing an API. (You hardly need to use public at all inside interfaces.)
Re: (Score:2)
Java is a decent language for a lot of different areas but doesn't come to the table in any one area and own the hill.
Except, you know, that whole Android API thing...
Re: (Score:2)
IEEE, It's Perl, not PERL (Score:3, Informative)
Verilog? (Score:2)
Why do they only list VHDL and Verilog HDLs?
SystemVerilog and VHDL are now the primary HDL languages we use in chip design.
Re: (Score:2)
I didn't see SystemC, either, but may have missed it. But the real question is what the stats would look like if you only included Wishbone-compliant usage?
Popularity != Quality (Score:2)
There should have been modifiers for typical bugs per kloc and security holes per kloc.
Also, there are many more layers to the industry. Scientific computing? Avionics? Publishing?
The subdivisions between languages are also a bit... strange. Java/Oak isn't truly uniform, whatever anyone claims. C and C++ have standards that aren't always backwards-compatible - if you ignore such changes, why bother listing C# or D as distinct? Lump the lot, together with B and BCPL under a single header.
My guess is that acc
So what are good languages to get into? (Score:2)
I look through the comments here and it seems a lot of people are unhappy, displeased, confused, or otherwise negative about the rankings of languages in the list. As someone that is seriously considering going to graduate school to update my programming skills I'd like to know where I could get the best return on my investment.
I did VHDL and Verilog primarily for a few years. As is the nature of the beast there was some mix of programming in a lot of other languages that went with that to make tools work
Re: (Score:2)
A masters in computer science program means taking about 10 three credit courses to get the degree. That means learning potentially 10 different languages. Which 10 would you choose? Which of those 10 are a must to learn, which would be merely advantageous to know?
Take at least one OO language (Java's fussy and bureaucratic, but its a pretty good example of the breed and is likely to be useful after you get your masters), at least one functional language (probably Haskell these days), at least one declarative language (Prolog or SQL), and don't just learn programming languages. You also need to learn about data, about data structures, about algorithms and their analysis, about parsing and compilation, and about concurrency; these are all independent of any programmin
Re: (Score:2)
I used it in my PhD thesis work. It was a productive language, just not a fun one.
For fun, I still get the biggest kick out of pure functional languages. It's nice to see that job advertisements for them seem to be on the uptick.
Re: (Score:2)
Haskell's fun, but the second you actually want to do something with it, you run headfirst into the lack of an UI. You either settle for standard input and standard output (which, unbelievably, contain nasty bugs on WIndows) or pick one of a dozen or so wrappers around C libraries, and deal with the resulting issues (and hope the damn thing'll be maintained). It
Re: (Score:2)
You use it at work but nobody gets excited to use Java at home.
I use it at home. It's not appropriate for everything but I find Java + Eclipse to be a very pleasant and productive environment so it's often the option I prefer.
Re: (Score:2)
I started to enjoy it again since I started using xtend (http://www.eclipse.org/xtend/). I suppose that same holds true for people switching to Scala/Kotlin.
Basically, you get expresiveness/tersity of python (often even better/more readable), while preserving performance (sub-second executions aside) and all the library support. Java-the-language might be going direction of COBOL, java-the-platform can be still enjoyable.
Re: (Score:2)
A whopping 1024 bytes of RAM? You live in pure luxury my friend. Try to work with only 128 bytes.
Re: (Score:2)
When I were a lad, we had to program in 96 bytes! In the snow! Uphill! Both ways!
You forgot the part about (Score:3)
Re: (Score:2)
Luxury.
My mates and I had to wire the core logic for each operation using barbed wire and hand tooled relays that we had to build in metal shop. I'll tell you, laddie, we smashed many a finger just to resolve 2 + 2 = 5 - but back then it was close enough.
Re: (Score:2)
From metal you crushed with your bare hands from primordial hydrogen, I presume? No? Thought so.
Re: (Score:2)
128 bytes? That's child's play. [atariage.com]
Re: (Score:3)
No I didn't. And there's no such thing as "Square-Enix", "Sonic games on Nintendo consoles" or "Star Trek reboot" either.
Now get off my lawn!
Re: (Score:2)
The biggest problem with C++ in embedded is getting a compiler for it on obscure chips. Since a C++ compiler is significantly harder to write than a C compiler.
Re: (Score:2)
The biggest problem with C++ in embedded is getting a compiler for it on obscure chips. Since a C++ compiler is significantly harder to write than a C compiler.
I wonder about this. Sure a C++ parser is monumentally harder to write than a C parser, no questions. However, writing a C/C++ (one of the few time I believe this combo is justified) worth a damn is far, far harder than writing even a C++ front end. The optimizer on the best compilers is vast amounts of deep magic.
Not only that, apparently it is hard
Re: (Score:2)
I wonder about this. Sure a C++ parser is monumentally harder to write than a C parser, no questions. However, writing a C/C++ (one of the few time I believe this combo is justified) worth a damn is far, far harder than writing even a C++ front end. The optimizer on the best compilers is vast amounts of deep magic.
Well, I'd much rather write a C backend than a C++ frontend. Look how long the specification is [open-std.org], and it is full of ambiguities (some of them purposeful!). It would take me a long time to write a compiler I felt confident matched the specification, whereas C is small enough I think I could write a good compiler in a reasonable timeframe.
Re: (Score:2)
Well, I'd much rather write a C backend than a C++ frontend. Look how long the specification is, and it is full of ambiguities (some of them purposeful!).
I'm not sure there are any purposeful ambiguities. But, I'd still rather write the front end. I can more or less imagine how I could write a C++ parser that would pretty much work and not be appalingly slow. Of course I'm fanstasising slightly: I'm sure it would be harder than I expect. However, I know that a remotely competitive optimizer (e.g. half as go
Re: (Score:2)
Either way I wish hardware companies would stop pretending they have some proprietary advantage in their deradfully crappy software and stick to making good hardware.
Agreed.
Re: (Score:2)
Is a C++ parser that much harder to write than a C parser? The reasons C++ parsers are a pain is largely for the same reasons C parsers are a pain. There's more stuff C++ has to parse, but as long as that's fairly regular it shouldn't make the parsing much harder.
Re: (Score:2)
There's actually a standard for writing in C++ for (embedded) safety critical systems, created for the JSF. It exists partly because they were finding it increasingly hard to recruit engineers who knew Ada (or had any interest in learning it).
Re: (Score:2)
Go sit in a corner! Thou shalt never bring those two words in close proximity, for should they ever come in contact, the reaction could destroy reality as we know it!
Re: (Score:2)
Somehow, I don't think the parent was actually wrong...