TIOBE : C overtakes Java as the No.1 programming language
pixelstech.net
pixelstech.net
The "community" they're measuring is not the HN community, which is not even close to a representative sample of engineers worldwide.
> It would strongly violate my expectations for Scala to be
> more popular than LabVIEW (which is NOT just "the Lego
> Mindstorms language")
I'm not talking about LabView; it's literally the Lego Mindstorms language [1] that outranks Erlang, MATLAB, ActionScript, Scheme, Groovy, R, Scala, and so Forth. LabView appears in the "Can't compare that meaningfully" category. So consider your expectations violated. > The "community" they're measuring is not the HN
> community, which is not even close to a representative
> sample of engineers worldwide.
I understand the potential bubble effects at work. I'm not arguing that Scala or Clojure or whatever's hip should come out on top. What I'm contesting is their notion of popularity. The measurements may be reliable (I don't think they are), but they're sure as hell not measuring anything worthwhile. NXT-G may be more "popular" in the sense of being Googled more often, but that's utterly irrelevant for 99% of all cases where you'd be interested in language popularity.I'm not sure why you're so surprised. I can see that it's quite likely that Lego Mindstorms is more popular and has more users than many of those languages. I don't yet have a Mindstorms set, but I've been considering it for a while -- I can't say the same for Clojure, Groovy, Scheme, or R.
The treemap is especially interesting. The square size shows market size, while the background color shows percentage change from previous year. E.g. both Scala and Clojure have green "increasing share" squares, while nearby Groovy and Labview have smaller, red "decreasing share" squares.
Because people need to pay OReilly for the book, it's much more difficult to cheat than Tiobe, which only takes some "Project Manager" to spend half their day creating websites, generating cycles of links, producing online verbiage, submitting pages to search engines, blah blah blah
See: http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_d...
It's easy to see how this measures the wrong thing. A better metric for me is the popularity of languages in open-source software, which could be measured by (say) the number of popular/active projects.
For instance take a look at: https://github.com/languages ... but this also has flaws, because GitHub is favored in the Javascript/Ruby communities and open-source C#/.NET projects end up mostly on CodePlex, a lot of Java projects are hosted by Apache, a lot of Python projects are on BitBucket and so on.
So a better metric would be to aggregate the projects from all popular project hosting services and count them, with some kind of weight attached. So for instance it would be unfair to count the lines of code in the Linux kernel, but it would also be unfair for the Linux kernel to have the same weight as some random project on GitHub that's being watched by 5 people. I would make this weight proportional to the number of active contributers, such that when a project is left unmaintained its weight will eventually drop to zero.
> all popular project hosting services and count them, with
> some kind of weight attached.
Great idea. Do you think you might run with this idea? I like it as a corrective to TIOBE.
On another topic: I know that TIOBE sometimes lumps several related languages together. Does anyone know if they are doing that with "Lisp"? What does "Lisp" measure? Common Lisp? Scheme? Emacs lisp? Does it measure Clojure?
"Unfortunately", that someone now has a house, two kids, and more work than he can handle, and is thus looking to exit the fun and flame filled world of language popularity.
Based on Instagram's valuation, I guess I'd settle for a million for it;-)
Can you email me at lawrence @ krubner . com? I'd like to know how much you want to sell langpop for.
That said, you wrote "a better metric" and I agree.
I imagine based on the fairly few (if enthusiastic) posts about Scala on HN that Lego Mindstorm programming far outstrips Scala programming in the US.
For many functional languages "Programming in X" is a lot more common than "X programming"
Compare "Scala programming" and "Haskell programming" with "Programming in Scala" and "Programming in Haskell."
TIOBE is fully aware of the issue, but I guess the confusion and discussion creates just more clicks than an accurate representation.
While Aquarius is in the Seventh House of the Principal Equinox and Jupiter is aligned with Mercury and Thor is napping in the Trunk of a Ford Pinto, Java shall tremble at the Sight of the Blood running down the walls of Fear, for Clojure shall overcome Mindstorms when the Adjudicated Maximus crosses the Greater Chaotic Plane, and BOFH's everywhere shall rejoice! Ia, Ia!!! Chtulu Fthagn!!
(IOW, no, I don't put much stock in the Tiobe index.)
The one thing I can't stand about TIOBE is not the index itself - it is what it is - but the breathless announcements about so and so overtaking this or that, like it's a horse race.
Why is the question of "What programming language is most popular" one that needs an answer?
"TIOBE Programming Community Index is an indicator of the programming language trends. It is updated monthly, this list is based on the number of experienced programmers,courses and third-party vendors on the Internet. It uses the well-known search engines (such as Google, MSN, Yahoo) as well as Wikipedia and YouTube to calculate the ranking."
Frankly that doesn't sound like a proper method to determine a ranking of anything, let alone programming languages.
The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.
The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system. The definition of the TIOBE index can be found here.
That last line points to the definition here: http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_d...This is purely anecdotal on my part but it seem to me I see many posts or articles talking about 'writing an app in node.js' or 'the UI was written in jQuery' rather than 'written in JavaScript.' This seems to me a phenomena more or less unique to JavaScript.
There is no reason to believe, and no facts are given to support the notion, that there is ANY correlation between popularity of a programming language and the number of web documents related to that language.
TIOBE just leaves it to us to draw that conclusion ourselves, and then we commence arguing over it.
Has Windows 8 dropping on the scene encouraged this?
Why? On which fields? Is there something C can do better than Java or C#?
Also, systems with hard real time requirements, such as audio/video, the signal processing code in your phone, wifi router, etc, are incompatible with almost all managed runtimes.
[1] Okay, I know there are academic ones that are. As far as I know, no productions systems are.
It's a good option for low-level work.
The alternatives you give are not really the best examples either. C# is only a viable development platform for serious/professional work if you're targeting Windows, and if there is one language that doesn't do anything better than the many alternatives that compare favorably to it, it would be Java.
* Linux
* GNU
* Apache
* Ruby
* Python
* nginx
* mysql
* posgresql
* Redis
* VMWare
* OpenSSL
* Almost everything "embedded"
Because C allows extreme control and performance. Anecdotally, a lot of people write in higher level languages, then rewrite critical bits in C for that speed boost. In many cases they just start at C if they know it requires certain levels of performance, for instance code on massive super computers or super low latency communications packages.
I'm not sure why you are pointing this out.
Think about what a gc pause would do to an OS - it could kill performance for every single process on the system, cause issues with input buffers overflowing, and other related issues. A microsecond here and there in call latency may not matter most of the time, but in thousands of syscalls or in low level network processing have large cumulative effects.
Don't get me wrong, I love my high level languages and modern GC runtimes, but there are days and places when microseconds and bytes still matter, and for those, I still grab C. Just like the nailgun hasn't fully replaced the hammer, or the vacuum hasn't fully replaced the broom, there is a good reason C still exists and finds acceptance.
Maybe Go or Rust will start to creep even more into the C space than JVM etc already have, but I really don't see it fully going away, it is just too useful and a well understood proper tool for some jobs.
I write systems code in C and Assembly for a living. I couldn't possibly do my job using Java or C#. In fact, as an experienced C programmer, I honestly can't imagine choosing to use C# or Java to do anything -- I'd rather be writing either in C or in something "higher level".
Python, Ruby, Perl, PHP.. these are overused (except for solo work, prototypes, toys, glue) and in my experience fall down in teams.. but dynamic typing now seems completely asinine to me after slinging Scala for the past handful of months.
Why the quotes?