Slashdot Mirror


Programming Language Diversity On the Rise

jfruh writes: "As GitHub becomes an increasingly common repository of project code, the metadata for projects saved there can tell us a lot about the state of the industry. In particular, a look at the programming languages used over the past half-decade shows an increasingly fragmented landscape, in which the overall share of most major languages is on a slight decline, while less-used languages are seeing modest growth in usage."

177 comments

  1. A good sign by amn108 · · Score: 3, Insightful

    Well, isn't it what we wanted pretty much - "right tool for the job" and all that?

    I think it is a good sign!

    1. Re:A good sign by TheGratefulNet · · Score: 5, Interesting

      not when you start to have too many tools.

      part of your value is being experienced in a language. you can't do that if you are spread thin amongst too many.

      yeah, we can all -learn- new languages. sometimes its fun, but it stopped being fun for me decades ago (I'm a greyhair). at this point, its more of a headache to have to support this or that fad language if someone decides to write some key bit of code in his favorite. I was just thru this a few months ago, having to support a guy's code in a fad language and no one else in the company had any time spent on this language; yet this fix needed to be done yesterday.

      I'd error on having 3 languages in the shop and that's about all that you'd need for most things. beyond that, you really fragment people, support and everything suffers.

      --

      --
      "It is now safe to switch off your computer."
    2. Re:A good sign by NoNonAlphaCharsHere · · Score: 5, Insightful

      Hear. Hear. Add in the approximately 4 bazillion "frameworks" and the 9 bazillion JavaScript libraries and you've got the programming Tower of Babel.

    3. Re:A good sign by Dutch+Gun · · Score: 2

      Well, isn't it what we wanted pretty much - "right tool for the job" and all that?

      I think it is a good sign!

      "The right tool for the job" is exactly what I was going to say. Good for diversity - nothing wrong with healthy competition among languages. As a game programmer, my bread and butter language is C++, but I've also deeply invested in C# for tools, and I know some Lua, which is used heavily for scripting by many companies. Beyond that, I'm looking to add IronPython as an extension language for the tools.

      BTW, if programmers hate C++, I wonder if they haven't yet benefited from the full feature set of C++ 11. A lot of C++ projects are pretty long-lived, and so predate these language features. I recently started a new game company, and was able to take full advantage of the language in my codebase from the ground up. With the ubiquitous use of now-standardized smart pointers with STL containers, plus the improved move semantics (meaning you don't always have to sacrifice readability for efficiency now), C++ feels a lot like using a managed language like C++, where you don't have to worry quite as much about carefully managing your allocations or worrying about raw buffer memory overwrites / memory stomps. Instead, you concentrate on ownership with solid RAII principles and let objects clean themselves up naturally, thanks to solid encapsulation.

      C++ (as well as C) is certainly one of those languages that can come back to bite you in the ass unless you're extremely disciplined in its use. Those languages have a unique philosophy of letting the programmer do nearly anything they want, including very stupid and dangerous things. As such, less experienced or less disciplined programmers, when they run into a design wall (or prematurely optimize their code), often try to do "clever" things that end up causing issues down the road. And despite the improvements in recent years, C++ has still got its share of sharp corners - a lot of which come from backward compatibility with C, and some others simply bad decision decisions. It's definitely a language that's somewhat tailored for experts, and certainly would not be my go-to language for every project. However, for videogames, which are both complex and large in scope but extremely demanding in terms of required runtime performance and predictability, C++ seems to fit the bill.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    4. Re:A good sign by Anonymous Coward · · Score: 1

      "Fad" and "Favorite" are key to this discussion. New or minority languages should be evaluated with the goal of adding the useful ones for when there's a task they are suitable for and would be better at than the ones used for most other things. The only times a language should be used be a single person are if they're writing utilities for themself or if there hasn't yet been the chance to get anyone else learning it.

      And I was in a similar but opposite position to you earlier this year - something was needed which would be a simple task with HTML and JaveScript, but as they're not our core languages it had to be written in C#, taking far longer and bringing a heap of problems with it.

    5. Re:A good sign by serviscope_minor · · Score: 2

      yeah, we can all -learn- new languages. sometimes its fun, but it stopped being fun for me decades ago (I'm a greyhair). at this point, its more of a headache to have to support this or that fad language if someone decides to write some key bit of code in his favorite.

      If you're a greyhair, then learning a new language, even on the hoof should not be that hard, because you'll have seen them all before unless it's a really off the wall language.

      I had to learn enough java and JNI relatively recently to do a piece of work. Once you know the basics (garbage collected, semi-dynamic in that you can cast all the way down to Object and back again but otherwise lots of static typing, OO, interfaces and everything is a reference) you pretty much have the entire semantis nailed at which point it's just a question of a fairly familiar syntax. The main problem then is the libraries (hello GridBagLayout you evil bastard), which can be new and unfamiliar even in a familiar language.

      Likewise, I occasionally have to hack python scripts of other people even though I've never written anything in it, but again if you know the principle then it mostly makes sense. Python is kinda like the language part of PostScript---dictionaries (the PS sort) all the way down. Except it's infix. but again, as a greyhair you should be able to understand the language semantics quickly.

      If the languages are too far from what I'm used to then yeah it might take a while and that does get more difficult. But if the semantics are familiar then it will be straightforward. If they're not then you're learning something genuinely new and that *ought* to be fun.

      --
      SJW n. One who posts facts.
    6. Re:A good sign by plopez · · Score: 1

      I see your point. But likewise what tools you use depends on what you are working on. To use an analogy; carpenters use a different set of tools than plumbers, plumbers use different tools than electricians, electricians use different tools than landscapers etc. There may be overlap but the tools you use will depend on your problem domain. Over the years my jobs have shifted to different areas and consequently my tools have also.

      --
      putting the 'B' in LGBTQ+
    7. Re:A good sign by Rising+Ape · · Score: 1

      C++ (as well as C) is certainly one of those languages that can come back to bite you in the ass unless you're extremely disciplined in its use

      Indeed, but it's not only you that needs to be disciplined and consistent - it's everyone in the team that's working on the project. I had a nightmare of a time working with C++ code (CERN's Root package) that obviously had been people with a very different idea of sensible programming practice. It was a lot quicker, easier and more reliable to ignore it all and write mostly outside it, even if it meant reinventing the wheel a lot.

      Plain C isn't nearly as opaque and unpredictable as C++ can be, but then I write mostly in Fortran these days (90 or later) which I suspect doesn't appear too high on lists of most used languages.

    8. Re:A good sign by hax4bux · · Score: 2, Insightful

      Yes, learning another language is not hard. And to use your example, if most languages are more alike than not, why do we need another one? It's all just riffs on the same core.

      I am working (until Friday) w/a group of children who download every shiny thing on the internet and throw it into production. The result is chaos and they are rather proud of it. Amazing to watch, impressive if it worked. It doesn't work, and they spend a lot of time tinkering. Oh, well. Someday they will discover girls and have better things to do. I hope.

    9. Re:A good sign by MoonlessNights · · Score: 2

      I always try to remember this when I wonder if I am getting out-of-touch (being a 30-something, primarily C guy) but the reality is, despite all the hype around new languages (or new service providers *cough* GitHub *cough*), it turns out that much of what is currently used, is used for a reason.

      The best software developers I knew were comfortable in several languages and could pick up new ones in an afternoon but they preferred writing in simple C, heavily-simplified C++ (basically just C plus classes, no other language features), or maybe Java.

      They could easily express their ideas and the code could be easily read by even a novice (part of knowing many languages means avoiding esoteric or "clever" language features).

      It is nice to see new ideas on the horizon but the signal to noise can get a little overwhelming when there are more frameworks or languages than developers (as it sometimes seems).

    10. Re:A good sign by ericloewe · · Score: 1

      The only reason plain C isn't typically as opaque as C++ is that there isn't much to try. The IOCCC is proof enough that the problem wasn't created by C++.

    11. Re:A good sign by JanneM · · Score: 1

      "I'd error on having 3 languages in the shop and that's about all that you'd need for most things."

      That sounds on the low side to me. One low-level, hardware-linked language (C or C++); one dynamic language (Python, Ruby); a functional language (Scala, Scheme, Haskell); one for numerics (R, Matlab/Octave); one embedded language (Scheme, Lua); client-side web (javascript); database access (SQL); and of course the platform-specific major languages you can't get around: Java, C# and Objective-C. I'm sure you can add other categories to the list as well.

      --
      Trust the Computer. The Computer is your friend.
    12. Re:A good sign by Dutch+Gun · · Score: 1

      Indeed, but it's not only you that needs to be disciplined and consistent - it's everyone in the team that's working on the project. I had a nightmare of a time working with C++ code (CERN's Root package) that obviously had been people with a very different idea of sensible programming practice. It was a lot quicker, easier and more reliable to ignore it all and write mostly outside it, even if it meant reinventing the wheel a lot.

      Yep, very true. I've seen both extreme cases - in one place I worked, the code was rather a mess, with poor design choices and a lot of hard-coded nonsense throughout the code. At the last place I worked, the very large codebase was exceptionally clean and well written, even though using largely C++ 98-compliant features and styles (that tends to be the case for most older projects). The coding standards were well documented and adhered to rather strictly.

      In fairness, nearly any large project can turn into a mess, no matter what language is used. I don't think that's necessarily unique to C or C++, but those two languages tend to be used on many of the largest and most complex projects. Still, bad or inexperienced programmers can certainly exacerbate the problem with unwieldy and unnecessary inheritance chains and horribly over-stuffed "kitchen sink" type classes, and those can be extremely hard to untangle.

      Plain C isn't nearly as opaque and unpredictable as C++ can be, but then I write mostly in Fortran these days (90 or later) which I suspect doesn't appear too high on lists of most used languages.

      In my view, the C++ language itself isn't really opaque or unpredictable at all - just about anything you do has a highly predictable run-time cost and effect, which is one reason why game developers tend to use it. C and C++ are somewhat unique in sticking to a zero-overhead principle as part of the core language design. That is, you shouldn't pay for language features you don't want to use, and designed language features should have a well understood and predictable run-time cost. That certainly doesn't mean it's necessarily *easy* to understand, but it is largely predictable.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    13. Re:A good sign by K.+S.+Kyosuke · · Score: 1

      If you're a greyhair, surely you remember that there were people a long time ago who were writing compilers in Fortran...pardon, FORTRAN...because that was the only tool they had? Well, we've sort of rebooted to that time ten years ago, only our FORTRAN and COBOL were named C++ and Java.

      --
      Ezekiel 23:20
    14. Re:A good sign by K.+S.+Kyosuke · · Score: 1

      And to use your example, if most languages are more alike than not, why do we need another one?

      Because the rest of them are not?

      --
      Ezekiel 23:20
    15. Re:A good sign by Anonymous Coward · · Score: 0

      Which platforms were Java and Obj-C specific to again?

    16. Re:A good sign by Anonymous Coward · · Score: 0

      Time is of the Essence...

    17. Re:A good sign by Anonymous Coward · · Score: 1, Insightful

      Last job, I had to my "core" programming in java (which I knew) and javascript (which I didn't) while also doing maintenance on PHP, VB and C# (ditto). Learning them was not a problem. Constantly switching IDEs, or editors, idiosyncrasies, and libraries certainly was.

    18. Re:A good sign by JanneM · · Score: 0

      "Which platforms were Java and Obj-C specific to again?"

      The wording was unclear on my part; you pretty much need to use Java to develop for Android, and Objective-C to develop for IOS. Those platforms use those languages specifically, not that they are used only on those platforms. You can use a few other languages to develop Android or IOS apps if you insist, but with more pain, less support, and you'll normally still have to write minor parts in these languages to make it a complete application.

      --
      Trust the Computer. The Computer is your friend.
    19. Re:A good sign by Anonymous Coward · · Score: 0

      How about a set of methods built into every API to translate standard classes and methods from each language to every other language, Problem Solved! That will be $89,999.99. Check, cash or money order!

    20. Re:A good sign by friedmud · · Score: 1

      Are you trying to say you don't find any value in GitHub?

      I'm (semi) with you on knew languages... but new platforms like GitHub have totally changed how people develop open source projects...

      If you haven't tried it... then you REALLY should.

    21. Re:A good sign by phantomfive · · Score: 1

      yeah, we can all -learn- new languages. sometimes its fun, but it stopped being fun for me decades ago (I'm a greyhair). at this point, its more of a headache to have to support this or that fad language if someone decides to write some key bit of code in his favorite.

      Throw 'em for a loop and write your next project in APL. They will cower in fear at your prowess.

      --
      "First they came for the slanderers and i said nothing."
    22. Re:A good sign by Dutch+Gun · · Score: 1

      The only reason plain C isn't typically as opaque as C++ is that there isn't much to try. The IOCCC is proof enough that the problem wasn't created by C++.

      The primary thing the IOCCC proves is that C doesn't restrict you from doing crazy things with macros and variable names, and that it doesn't care about whitespace. There's certainly a lot of clever coding represented in that contest, but a good deal of the obfuscation is simply related to formatting (i.e. making ASCII art from the source code, etc).

      --
      Irony: Agile development has too much intertia to be abandoned now.
    23. Re:A good sign by Anonymous Coward · · Score: 0

      APK ya sad cunt: Yer bein called out (why ya running "forrest"?) http://developers.slashdot.org/comments.pl?sid=5130911&cid=46945619

    24. Re:A good sign by Anonymous Coward · · Score: 0

      slashdice has too many tools.

    25. Re:A good sign by grcumb · · Score: 1

      not when you start to have too many tools.

      part of your value is being experienced in a language. you can't do that if you are spread thin amongst too many.

      As a 50-year-old, I'm inclined to agree with the statement that there is such a thing as too many tools, but not for the same reason. Expertise and experience are important, no question about that. But both are often easily transferred from one language or framework to the next. For my part, I'm quite enjoying working with NodeJS, Angular, NoSQL and a bunch of things that take significantly different approaches to problems I've been solving my entire career.

      But a problem I face quite often these days is trying to apply the toolkit approach with newer software. On any decent POSIX-supporting platform, you can generally leverage libraries and modules for just about anything and still expect at least a modicum of consistency. Each tool has its own quirks and foibles and strengths, all of which need to be understood, but with a bit of time and perseverance, these can be coped with.

      But the application I'm working on right now requires the integration of an Angular framework with UI elements derived from JQuery, D3 and Bootstrap as well as one or two products of the inspiration of some young developers who are clever but sadly too confident in their own abilities. Trying to reconcile them all has resulted in a LOT of time spent pondering, refactoring and coping with bugs that inevitably result from using the tool in a way that wasn't foreseen by enthusiastic but inexperienced developers.

      So far, the benefits have outweighed the costs, but there's a fine line between saving time by appropriating others' tools and wasting time shaving a very big, hairy yak.

      I like many of the new technologies I'm using, and I love learning new tricks, notwithstanding the few grey hairs remaining on my shining dome. But yes, there is such a thing as too many tools. And many young developers these days are going to have to learn that the hard way.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    26. Re:A good sign by Anonymous Coward · · Score: 2, Insightful

      "new platforms like GitHub have totally changed how people develop open source projects"

      Sure have. Now it's next to impossible to find good code in the sea of pointless forks.

    27. Re:A good sign by AJWM · · Score: 1

      +1 nostalgia if I had the mod points. Heck, there was a time (about 3 decades back) when I was being paid to teach APL (or APL, as properly rendered).

      Mind, the bit-arrays used in ElasticSearch filtering strike me as a very APL-like idiom. You never know when something you learned back when will prove useful again.

      --
      -- Alastair
    28. Re:A good sign by pjt33 · · Score: 2

      If you have one software shop doing everything from embedded to client-side web then you need a bit more than 3 languages, but most places specialise to some extent. And even if the company isn't specialised, its individual teams or studios often will be.

    29. Re:A good sign by Anonymous Coward · · Score: 0

      K. S. Kyosuke ya bigmouth: Yer bein called out (why ya runnin "forrest"?) http://slashdot.org/comments.p...

    30. Re:A good sign by Anonymous Coward · · Score: 0

      eh, as a rule once you learn a couple, the rest become just picking up a new dialect. Logic is logic. Of course there are exceptions, ie. relational database thinking , XLST, ruby to a certain extent, etc. But learning a new one then becomes an exercise in getting you out of your comfort zones and makes you a better programmer.

      Where it becomes a problem is when fad languages suddenly disappear or at least their programmers do. Then you have a big pile of code that nobody wants to maintain in 5 years time.

    31. Re:A good sign by sarguin · · Score: 1

      For the IDE switching issue, this is why I'm now trying to use almost exclusively one editor : Emacs (no flamewar please). It support almost any languages. Now I have an IDE configured the way I want it. I have almost the same behaviors/look & feel for any language I use. In bonus : org-mode ;)

    32. Re:A good sign by Anonymous Coward · · Score: 0

      K. S. Kyosuke: You've been called out & you're running from it "forrest" http://slashdot.org/comments.p...

    33. Re:A good sign by Anonymous Coward · · Score: 0

      You sure are K.S. Kyosuke posting ac now. Keep blowing mod points to down mod my posts? Then, I'll just post again making you waste them till you run out of them. I have no limits, unlike you.

    34. Re:A good sign by david_thornley · · Score: 1

      We've found code reviews to be excellent at disseminating and continuing a consistent style. Maybe better at that than at finding bugs.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    35. Re:A good sign by Bugamn · · Score: 1

      No flamewar here. In this discussing a VIm cultist can agree with an Emacs brother. Better a good editor, than an IDE per language. I lose productivity when I try to use Eclipse simply because it doesn't have the same tools I already know from VIm, and it is not worth to me to learn it deeply, as I usually work combining different languages.

    36. Re:A good sign by Dizzer · · Score: 1

      Forks are a tool to contribute to an existing project (through pull requests). A fork is not meant as a divergence, but as a temporary step leading back to a merge. Not quite so "pointless".

    37. Re:A good sign by Anonymous Coward · · Score: 0

      Keep blowing modpoints + trolling by ac, fool. You'll run out. I won't and will just post it again and again until you do. Lmao. I win. Always. I have no limits.

    38. Re:A good sign by Anonymous Coward · · Score: 0

      That used to be called a "branch", until the hipster faggots decided that "fork" sounded cooler.

    39. Re:A good sign by jbolden · · Score: 1

      I'm a fan of diversity. I like the of DSLs. I'm also middle aged. There is nothing fun about roughly the same kinds of languages but the more different the language the more fun it is. I'd love to have time getting to play with some radically different paradigms from the newer languages or obscure languages. I've been wanting to do SNOBOL / Icon / Unicorn but haven't had the chance. I'd love to do Factor and get a chance to play with a stack based language (I know Postscript, RPL, Forth). ETC...

    40. Re:A good sign by jbolden · · Score: 1

      APL is way cool. There is a modern APL btw: http://en.wikipedia.org/wiki/J...

    41. Re:A good sign by phantomfive · · Score: 1

      Thanks, I was thinking I should probably learn some APL.

      --
      "First they came for the slanderers and i said nothing."
    42. Re:A good sign by jbolden · · Score: 1

      Honestly if you don't know APL / J I think you'd be better off other functional languages particularly Haskell. J teaches you functional code and a rode not taken for in terms of tradeoffs. Haskell IMHO teaches you what compilers are going to look like in 2030 and gives you exposure to the ideas that will be common in future languages.

    43. Re:A good sign by phantomfive · · Score: 1

      Eh, I already know Haskell, but that's an interesting way of looking at it.

      --
      "First they came for the slanderers and i said nothing."
    44. Re:A good sign by phantomfive · · Score: 1

      I'm not sure how true that is, though. My coworkers who are recent graduates, they are fine programmers but they see the world through such a small lens. To them, languages like Python are the epitome of programming language design. A lot of universities are teaching Python, so I guess that's why. That is kind of moving the opposite direction oh Haskell: the compiler doesn't check almost anything until run-time. Another told me, "I really like Python but list comprehensions are kind of confusing."

      --
      "First they came for the slanderers and i said nothing."
    45. Re:A good sign by jbolden · · Score: 1

      I think Python is a good example of a the power of scripting and dynamic languages. Perl (up to 5), Python and Ruby (excluding things like Rails) represents the improvements in the 1990s and the advantages of dynamic languages with powerful libraries. Ruby is a bit more advanced since it was able to learn from Perl and Ruby. Perl6 IMHO is way more advanced but I don't know if it will ever get off the ground. But Haskell is incomparably more powerful. To use your example list comprehensions are finite in Python. You lose so much of the power of streams by having to work with finite data structures.

      Anyway if you already know Haskell then J is Haskell where you just limit yourself to using point-free programming always + better array operations.
      Example for map-reduce:
      standard: mf criteria operator list = filter criteria (map operator list)
      J-style: mf = (. map) . (.) . filter

      If you just play around with your Haskell code to eliminate any variables you are 80% of the way there. The rest is getting a really cool collection of array manipulation routines in Haskell. Haskell lists aren't really a good fit because they have too little structure so things like APL's "shape" (return dimension of multi-dimensional array) wouldn't work. But honestly unless you are doing a ton of array manipulation I wouldn't worry.

    46. Re:A good sign by phantomfive · · Score: 1

      Data structures in functional languages is something I feel is a weakness of mine. Do you know a good book you could recommend on the topic?

      --
      "First they came for the slanderers and i said nothing."
    47. Re:A good sign by jbolden · · Score: 1

      Well Chris Okasaki's book is the first place. His thesis is still online: http://www.cs.cmu.edu/~rwh/the... . The book which expands the thesis: http://www.amazon.com/Purely-F... . It has been 15 years since his book his blog has some new stuff: http://okasaki.blogspot.com/

      Here is a terrific blog post of what came next:
      http://cstheory.stackexchange....

    48. Re:A good sign by phantomfive · · Score: 1

      Thx

      --
      "First they came for the slanderers and i said nothing."
  2. This is great news by SuperKendall · · Score: 3, Interesting

    Competition results in better organisms, and this is equally true in programming languages as it is in life...

    Honestly amazing things can now be done in a variety of languages. And it's better mentally to learn a number of languages so the variety helps to create more seasoned programmers in the long run.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:This is great news by digitalPhant0m · · Score: 1

      Honestly amazing things can now be done in a variety of languages.

      Really? I thought they were all limited by the underlying hardware.

      Last I checked they all basically did the same thing(s), just in different ways.

    2. Re:This is great news by Tablizer · · Score: 1

      But a lot of programming language design is about trade-offs and personal preference. When I probe others on why they like a particular feature that I find odd or "bad", it often turns out to be a personal preference. Different people think and process symbols differently.

      It may be merely an increase in prima-dona Picasso's rather than real progress. I'd like to see more discussion about features and trade-offs BEFORE new languages are made. Let's document our decision process and boo-boo's to avoid reinventing the wheel and reinventing design mistakes.

    3. Re:This is great news by SuperKendall · · Score: 1

      Last I checked they all basically did the same thing(s), just in different ways.

      BASIC is over there shivering in a corner, along with the developer that tried to build a web server using it that handled a few million requests per hour...

      What were you saying again?

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    4. Re:This is great news by SuperKendall · · Score: 1

      increase in prima-dons Picasso's

      Sounds like progress to me. The greatest progress always comes when the artists are involved somehow.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    5. Re:This is great news by Anonymous Coward · · Score: 0

      > Competition results in better organisms, and this is equally true in programming languages as it is in life...

      There's no evidence of EITHER of those assertions being true. You make a generalization without defining something as simple as "better" then go on to say that conditions result in more of it. Evolution doesn't result in smarter slashdotters.

    6. Re:This is great news by Tablizer · · Score: 1

      Well, I've seen some esthetically fantastic websites that had horrid usability scores in terms of practical navigation and reading issues.

      Parsimony and functional (practical) clarity are things many artists do not put high value on compared to esthetics, entertainment, and mental titillation.

    7. Re:This is great news by AzP · · Score: 1

      And it's better mentally to learn a number of languages so the variety helps to create more seasoned programmers in the long run.

      I'm not sure I agree with this, I know there's a huge "Learn a new language at least every fortnight to grow your beard enough to compete with the other flannel wearing, home-brewing, bearded kids at your local food truck", but at the same time I feel there's great value in sticking with a language that's generic enough for lots of stuff, and learning the ins and outs of it. But I'm a C++ nerd, so I guess I can blame myself for loving a language (including the STL) that is nearly impossible to grasp fully.

      I do agree that it's great to learn a couple of languages, but when going through university, they pushed one language per course: Java, C++, C, C#, VB.Net, Lisp/Scheme (hurraaah! I might mention that it was quite dead at the time, but lo and behold, the Zombie arises!), Prolog, JavaScript, MatLab, perl, html/css, LaTeX, etc. Python hadn't exploded at the time, nor had Haskell (hence the Scheme I guess, but it was in an AI course, where Scheme was still commonly used, according to the professor).

      Sure, some of those languages are just variations of the same thing, and it is easy to learn the difference when knowing one of them, but constantly switching language was more confusing than rewarding. We also constantly had to learn a new framework for doing stuff, which often had us struggling more with the actual language and the proper way of using it (which was probably off by a mile anyway) than focusing on the problem at hand.

      I agree that knowing a couple of languages is great, and I don't count XML, HTML/CSS, LaTeX, etc, as languages, but one or two compiled OO-languages (C/C++/C#/Java) combined with a scripting one (Python? Perl? Bash? Perhaps I shouldn't compare Bash to Python... :) ) and a functional one is probably enough for most people. But that might just be because I suck at Haskell, and I'm bitter.

      A friend/colleague of mine goes on daily rants, screaming "Why can't everybody not just program in C++?! It's the best language there is, there's no need for other languages!", but I wouldn't go that far ;)

      Well, after writing this, I've noticed that you actually wrote "a number of languages" which can be interpreted as the exact same thing I just wrote. Well, to heck with you all!

    8. Re:This is great news by Anonymous Coward · · Score: 0

      Bullshit. Once the "artists" get involved, its because the progress was already made by others.

  3. Can a brother get some Python round here? by Anonymous Coward · · Score: 0

    I say we launch an affirmative action program for Python programmers. Fight the power!

    1. Re:Can a brother get some Python round here? by Bigbutt · · Score: 1

      Nah. If I don't want to use Python, I shouldn't be forced to use it.

      [John]

      --
      Shit better not happen!
    2. Re:Can a brother get some Python round here? by jonyen · · Score: 1

      affirmative_action.py
      #!/usr/bin/python

      def affirm(lang):
      print "Go " + lang + "!"

      affirm('Python')

      ./affirmative_action.py
      >> IndentationError: expected an indented block

      Alas, it appears that the Slashdot commenting editor is biased against Python code...

  4. Selection bias much? by bsdasym · · Score: 5, Informative

    Github as a yardstick for language usage tells you nothing beyond what the most popularly used languages for github hosted projects are. Publicly accessible github projects at that.

    1. Re:Selection bias much? by ArcadeMan · · Score: 3, Funny

      My own research also indicates that Atmel microcontrollers are used by 100% of Arduino users.

    2. Re:Selection bias much? by LWATCDR · · Score: 2

      Yep C++, C, Objective-C, and C# are not popular?
      CSS is a programing language?

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:Selection bias much? by Anonymous Coward · · Score: 1

      Indeed; since 'the code is in github' is about the only way a minority javascript preprocessor^W^Wlanguage gets any traction, this is actually something of a self-hosted distortion of the truth.

    4. Re:Selection bias much? by Sarten-X · · Score: 5, Insightful

      Yep C++, C, Objective-C, and C# are not popular?

      Not by a number-of-new-projects metric. They're popular in the "build a giant flagship product" world, but by sheer number of projects, I'd expect them to be pretty small. They're not the kind of language where you can just slap pieces together and do a job, like Ruby, Python, or Perl tend to advocate. Rather, they're elegant for larger projects. A comparison by lines of code would show the C family in a much more favorable light.

      CSS is a programing language?

      Yes. It's not Turing-complete, but it's still a language for defining instructions.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    5. Re:Selection bias much? by mooingyak · · Score: 1

      Agreed. My conclusion from the data is that github is getting more mainstream.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    6. Re:Selection bias much? by Anubis+IV · · Score: 1

      Indeed. Most of the github projects I've interacted with over the years started out as hobbyist projects, and most of those were ones the developer did to scratch their own itch while getting in some practice on a language they didn't know as well. Granted, there are plenty of larger open source projects or business-level tools using github as their repository, but they're a tiny minority compared to the innumerable hobby-time projects a developer started off as a practice exercise or a fun side activity.

      I'd be much more interested in stats like the number of commits per language or the average number of commits per unique contributor per language, since those would give us a much better sense of the sustained activity levels surrounding each language, rather than the number of new projects per language, which can be swayed easily by minor projects that few use or care about.

    7. Re:Selection bias much? by QRDeNameland · · Score: 1

      Github as a yardstick for language usage tells you nothing beyond what the most popularly used languages for github hosted projects are. Publicly accessible github projects at that.

      The other thing that makes such a comparison fairly uninformative is that the vast majority of publicly accessible GitHub repos are surely small hobbyist/academic projects, so the stats are going to skew towards the tools likely to be used by hobbyist/academic developers. And since new languages arise all the time and old languages never die, it's not really very surprising that by the raw number of projects that GitHub would show increasing diversity on that front. If someone pushes a 3 line Brainfuck experiment, then the language diversity has increased, but I don't think that tells you much.

      --
      Momentarily, the need for the construction of new light will no longer exist.
    8. Re:Selection bias much? by Anonymous Coward · · Score: 0

      CSS is a programing language?

      Yes. It's not Turing-complete, but it's still a language for defining instructions.

      Nope. It's a language, but not a _programming_ one.

    9. Re:Selection bias much? by Anonymous Coward · · Score: 0

      A comparison by lines of code would show the C family in a much more favorable light.

      Why? Because you need 10 times as much code to do the same thing? ;-)
      [C#-Rant] C# is a walking dead. Most C# opensource projects are funded by MS, otherwise it would be even more dead. Want to bet on Windows-only in this time? (don't come with mono, check benchmarks first). [/C#-Rant]

    10. Re:Selection bias much? by Anonymous Coward · · Score: 0

      I'd argue that C and C++ are still wildly popular (and in many cases, the only really appropriate choice) for low-level infrastructure programming (kernels, network daemons, filesystem implementations, etc). Go is stepping into some of this territory slowly (other than serious kernels) but has a *long* way to go (pun intended) over many years. They're also wildly popular for implementing highly-efficient library routines used in $your_scripting_language_of_choice. It's pretty much a win/win scenario when some publishes a Python or Perl module that uses C for an efficient implementation of a performance-critical algorithm.

    11. Re:Selection bias much? by pentagramrex · · Score: 1

      Yep C++, C, Objective-C, and C# are not popular?

      Not by a number-of-new-projects metric. They're popular in the "build a giant flagship product" world, but by sheer number of projects, I'd expect them to be pretty small. They're not the kind of language where you can just slap pieces together and do a job, like Ruby, Python, or Perl tend to advocate. Rather, they're elegant for larger projects. A comparison by lines of code would show the C family in a much more favorable light.

      CSS is a programing language?

      Yes. It's not Turing-complete, but it's still a language for defining instructions.

      Bah.

      You can slap projects together easily in c# and c++.

      C++ is my favorite scripting language because it has good debuggers on all platforms.

      Admittedly C++ isn't the language of choice for slapping together a webpage, on the other hand it can do that and outperform anything else.

      C# and C++ have years of broad libraries behind them.

      Choose the tool for the job, but don't neglect the ones that have real substance (I'm looking at you, PHP).

      BTW, Github is no measure of what people are doing, even if it hosts some cool projects. Most of my stuff is for companies I work for, and you can't see it online, as is most code. The most important open source projects don't live there either.

      Rob.

    12. Re:Selection bias much? by Darinbob · · Score: 1

      It also doesn't tell much about what is really used by most engineers. Some of those projects have hundreds of developers, some of them only have one. Long term stable projects are given the same weight as the project that was created yesterday because someone who drank too much.

    13. Re:Selection bias much? by Beck_Neard · · Score: 0

      C++ is not elegant for larger projects. It is not elegant for any projects. And neither, honestly, is C. I can understand working with these languages when you're working with existing projects, but there is absolutely no reason to use C/C++ anymore for a new project. Believe me, I know, I programmed in C/C++ for 15 years.

      It's time to move on.

      --
      A fool and his hard drive are soon parted.
    14. Re:Selection bias much? by Beck_Neard · · Score: 1

      There's D, Rust, and Go, to name a few. All of which are designed for systems programming and are far more modern than C and much safer as well.

      --
      A fool and his hard drive are soon parted.
    15. Re:Selection bias much? by angel'o'sphere · · Score: 1

      Sigh, CSS is not a programming language ... it is simply a 'definition' language like e.g. EBNF (to a much lesser degree even).

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    16. Re:Selection bias much? by Anonymous Coward · · Score: 0

      C or C++ is dead language or will be by 2023...

    17. Re:Selection bias much? by jones_supa · · Score: 1

      Apparently you are modded down because the so called hive mind (wavy hands) does not agree.

      Anyway, interesting and proud comment. Thank you for it. But out of curiosity, what language would you prefer, then?

    18. Re:Selection bias much? by Beck_Neard · · Score: 1

      It depends on what you want to do and what your emphasis is on (speed, security, access to bare hardware). I don't want to advocate any particular language here. But for anything you want to do, even for systems programming, there are alternatives (Go, Rust and D are just a few examples, though I personally don't recommend D). Especially, LLVM has allowed a number of new C alternatives to arise that are just as fast as C.

      --
      A fool and his hard drive are soon parted.
    19. Re:Selection bias much? by Anonymous Coward · · Score: 0

      When I learned C we used to have competitions to see who could write a function in the least number of lines, often creating some obfuscated piece of shit that worked perfectly on one line. It was a piece of shit because it wasn't clear what you were doing and someone later, even yourself, would come back later and say, 'what the fuck was I doing there'. If you have an unreasonable number of languages the chances that someone ten years from now won't know what the fuck your lambda or other ridiculous encapsulation of a 'for loop' is doing is very high (or even more years... the oldest code I saw reviewed in a production environment was originally written around 35 years before). Just because you can put 10 lines of code on one line doesn't mean you should. The compiler or run time engine will make sure the object/bit code is optimized whether you write it in one line or not. The difference is that other people will be able to maintain it. So your argument isn't worth a hill of beans if you actually want something useful in a real production environment. Something built to last. Just because you can do something doesn't mean you should, if you have any intelligence.

    20. Re:Selection bias much? by AzP · · Score: 2

      You seriously state that new, languages more or less in an alpha or beta phase, like Rust and Go can be compared to C/C++ which has 30+ years of development behind them, including amazing libraries like the STL and Boost, not mentioning the thousands of libraries and frameworks that are available all over the web?

    21. Re:Selection bias much? by Beck_Neard · · Score: 1

      I'm not against using existing C libraries. Most libraries I (and everyone else?) use on a day-to-day basis are C libraries, or wrappers around C libraries. I'm talking about using C for new projects.

      If you're talking about language 'maturity', sure, C is mature. But an embarrasing proportion of new exploits that are found every day are simple buffer overrun exploits caused by that damned C function memcpy() somewhere in the code. 30 years of experience apparently haven't been enough to get people to stop making the same C coding mistakes. Maturity has zero bearing on reliability or bugs. Most bugs occur OUTSIDE the language implementation and standard library. Really, 'maturity' is a false god that people chase and does nothing to make you a better coder. PHP is also mature.

      Really, I could go on an on.

      You can do great things with C. The linux kernel is a nice piece of C code. But it takes time, discipline, and falling flat on your face many, many times. You are a human and you will make mistakes. Why go through all that hell? You should use a language that keeps you from doing stupid things.

      --
      A fool and his hard drive are soon parted.
    22. Re:Selection bias much? by u38cg · · Score: 1

      Actually, CSS with a little accompanyine HTML and JS to turn the handle can run a simple state machine that is Turing complete, though it wins an award for being inferior to Brainfuck.

      --
      [FUCK BETA]
    23. Re:Selection bias much? by Xest · · Score: 1

      "Not by a number-of-new-projects metric."

      But what does that metric achieve exactly? It tells us nothing of real use. It certainly doesn't answer the question most people are asking when they want to know these numbers - "What language(s) will best support my career?". It's useless knowing that there are 5 new PHP projects to every C++ project if each PHP project is a one man bottom of the rung near minimum wage "Hello World!" type application and the C++ ones are 100 developer massive scale high paying type applications.

    24. Re:Selection bias much? by Xest · · Score: 1

      Once you involved JS you're already involving a turing complete language, so of course CSS becomes turing complete if you throw in Javascript.

      That still doesn't make it turing complete by itself though.

    25. Re:Selection bias much? by Anonymous Coward · · Score: 0

      Made yoda a better hacker, stupid things done

    26. Re:Selection bias much? by u38cg · · Score: 1

      No, the JS is only used to iterate the state machine. You can do it entirely using keyboard events but that gets tedious, a bit like slashdot discussions.

      --
      [FUCK BETA]
    27. Re:Selection bias much? by Xest · · Score: 1

      Even throwing a human into the mix doesn't make CSS in itself Turing complete.

      Your argument is effectively that if you throw in an outside executor then CSS becomes Turing complete. No fucking shit, I could literally make many things Turing complete by throwing Javascript or a human into the mix, but that doesn't mean they are in themselves Turing complete.

    28. Re:Selection bias much? by LWATCDR · · Score: 1

      Javascript is a programing language.
      Saying that is like saying if you take a CSV file and throw in some Fortran it becomes turing compete.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    29. Re:Selection bias much? by u38cg · · Score: 1

      Right, remove the clock edge from your CPU and let's see how Turing complete it is...

      --
      [FUCK BETA]
    30. Re:Selection bias much? by Daniel+Hoffmann · · Score: 1

      There is this whole field called Taxonomy, which means giving names and classifying things. Personally I find it really, really, REALLY boring and hardly worth the effort.

    31. Re:Selection bias much? by Xest · · Score: 1

      You're really struggling with this aren't you?

      Yes, you can also make something Turing complete not Turing complete by removing one of the things that makes it Turing complete. What exactly is the point of that point exactly? What's the relevance? It still doesn't make CSS Turing complete, and it doesn't make something that is Turing complete not Turing complete, unless you actually do do something to make that Turing complete thing not Turing complete.

    32. Re:Selection bias much? by david_thornley · · Score: 1

      Yeah, but that doesn't mean you can use camels without regard to their meaning and still communicate.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    33. Re:Selection bias much? by david_thornley · · Score: 1

      Yeah, and all of them have comparatively much smaller communities than C or C++, and aren't nearly as mature. If I were starting a project suitable for a systems-type programming language right now, I'd take C++ (which is also far more modern and safer than C).

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    34. Re:Selection bias much? by david_thornley · · Score: 1

      C and C++ are distinct languages. If it doesn't feel like it to you, you're doing it wrong (probably writing bad C++ code), and you have no good knowledge of C++ to back up your comments.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    35. Re:Selection bias much? by david_thornley · · Score: 1

      It also tells us little about successful projects. Lots of projects are stuck up on more or less open repositories and abandoned. (I used to look at numbers of Sourceforge projects by maturity level, and the percent that made it to full release (level 5, IIRC) was not all that high.)

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    36. Re:Selection bias much? by Beck_Neard · · Score: 1

      They are quite different. I never said otherwise.

      --
      A fool and his hard drive are soon parted.
    37. Re:Selection bias much? by u38cg · · Score: 1

      Yes. I am completely wrong and realise the error of my ways. How idiotic I feel now. Thank you for setting me on the path to righteousness. I realise now that all Turing machines are entirely seperate from their substrate and that if their substrate is required to operate they clearly cannot be Turing machines. Gosh. The scales have really fallen from my eyes.

      --
      [FUCK BETA]
    38. Re:Selection bias much? by shutdown+-p+now · · Score: 1

      That's what they said 10 years ago, as well.

    39. Re:Selection bias much? by shutdown+-p+now · · Score: 1

      I think the point that he's trying to make is that CSS is Turing complete so long as you have some external source that will provide a "tick" to advance the state - that external source does not have any logic in and of itself, and its sole purpose is to maintain execution flow. For your typical language, when running normally, this is ultimately the CPU clock. But if you're doing "whiteboard programming", the same source would be a human manually executing lines of code one by one. In case of CSS, there's no "normal" runner per se, but so long as you can have a steady external source of events (like a human basically sitting there and repeatedly pressing spacebar, for example), then it would be one.

    40. Re:Selection bias much? by Anonymous Coward · · Score: 0

      Sum up the projects in all publicly accessible repos and see if the results are any different.

      I doubt it.

    41. Re:Selection bias much? by Anonymous Coward · · Score: 0

      The best way to support your career is to get educated enough that you can quickly learn and effectively use any language.

      If you can't you are a programming language end-user and not a programmer.

  5. Simple explanation: by Tablizer · · Score: 1

    The Internet makes it easier to know about other choices and/or distribute other choices.

  6. Point and drool over security... by Anonymous Coward · · Score: 2, Interesting

    This is very foreboding. Instead of people using a language that supports secure, defensive programming, it shows that the "cobble something that builds and ship it... we will fix things later" mentality has all but won in the computer industry.

    Even perl, laughable as it is, is a language good enough to be relied by banks for real security. Use of languages where Bog knows what sits in memory until the garbage collector comes around to clean it up is easy on the programmer, but is fertile ground for insecure programming. Those variables that fell out of scope... does the GC bother overwriting them, or can some other process grabbing memory sift through and see what is inside?

    I'm not saying we go back to Ada (although Ada 2012 is pretty good), but we don't play fast and loose with programming languages that encourage the "it builds, ship it" mentality.

    1. Re:Point and drool over security... by rubycodez · · Score: 1

      insecure and vulnerable code can be done in Ada, you are silly

    2. Re:Point and drool over security... by Anonymous Coward · · Score: 1

      Cobble together something which works and can be sold means that you keep your job. Attempt to write the most perfect and secure software but run out of money because you've got nothing to sell means you lose your job.

    3. Re:Point and drool over security... by Anonymous Coward · · Score: 0

      Could you please rephrase that in the form of a sentence?

    4. Re:Point and drool over security... by Anonymous Coward · · Score: 0

      You aren't smart enough to interpret and contribute, so hush now.

    5. Re:Point and drool over security... by Alioth · · Score: 1

      A language where defensive programming is required to be secure might not be the best tool for the job if the job is a secure system.

    6. Re:Point and drool over security... by shutdown+-p+now · · Score: 1

      Yes, it can, but it's much harder to do.

  7. Eh.. not really by Anonymous Coward · · Score: 5, Informative

    I'm not sure this tells us much about the state of the industry. More like the state of the industry for projects that are allowed to have the source posted online. In my area at least, the popularity of tags on StackOverflow seems to be a better indication of the industry: http://stackoverflow.com/tags

    1. Re:Eh.. not really by Anonymous Coward · · Score: 1
    2. Re:Eh.. not really by phantomfive · · Score: 1

      C# is the most popular language on StackOverflow.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Eh.. not really by Xest · · Score: 1

      Which is probably about right in general if you look at job postings in various cities across the globe.

      The majority of hires are still for C# and Java positions to this day.

      There are areas where other languages shine (In the UK, London and Cambridge have a higher proportion of C++ roles for example) and hipster areas have high proportions of RoR and PHP hires.

      But in general one thing seems to be a constant - that C# and Java are right at the top of the skills list both where other languages are strong, and where they are not.

    4. Re:Eh.. not really by phantomfive · · Score: 1
      --
      "First they came for the slanderers and i said nothing."
    5. Re:Eh.. not really by david_thornley · · Score: 1

      FWIW, Stack Overflow was started by .NET guys, and the earlier joiners were people who followed their blogs. That influenced the culture. I don't know if that's continuing.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    6. Re:Eh.. not really by Xest · · Score: 1

      I'm not sure how sensible that data is though, when I went to the site it says it pulls Job data from Twitter and I've frankly never heard of anyone getting or looking for a job, let alone a C# job from Twitter and that's even assuming that Jobstrator doesn't fail hard when trying to parse C# from hash tags or something similar. It'd be more interesting if it was from actual job sites, but if you visit the likes of Monster.com the job listings for many major cities correlate quite strongly with the Stackoverflow languages tags. I'd wager therefore that both these are better indicators. Certainly it seems a complete nonsense that there are more Ruby and Objective C jobs than C# jobs.

      There's certainly been a massive uptick in Java jobs over the last year, so I've no doubt Java is on top again right now, but C# is still a clear second based on real actual job listings.

    7. Re:Eh.. not really by phantomfive · · Score: 1

      I'd wager therefore that both these are better indicators. Certainly it seems a complete nonsense that there are more Ruby and Objective C jobs than C# jobs.

      I can't speak for Minnesota, but in Silicon Valley that is not surprising at all. Every company wants their own iPhone app. They aren't as interested in their own WP8 app.

      --
      "First they came for the slanderers and i said nothing."
  8. Fragmentation == Diversity .. by lippydude · · Score: 1

    The programming landscape today continues to fragment, and this GitHub data supports that trend over time....”

    A better metric would be how many developers use more than the one language, and what are their reasons ...

    1. Re:Fragmentation == Diversity .. by Anonymous Coward · · Score: 0

      Really, you think that more than 0.00001% of developers don't use multiple languages? Those people are not developers anyway, they are API monkeys.

  9. Looks at CodePlex... by ndykman · · Score: 1

    Wow, C# is everywhere. Look at all of that code. That must mean C# is super popular. Or, that certain populations prefer certain tools and repositories.

    On the other hand, the growth in JavaScript does seem to confirm my (totally biased) opinion that there are tons of "reinventing the wheel" JavaScript projects out there and it's just getting worse and worse.

    1. Re:Looks at CodePlex... by frank_adrian314159 · · Score: 1

      On the other hand, the growth in JavaScript does seem to confirm my (totally biased) opinion that there are tons of "reinventing the wheel" JavaScript projects out there...

      Well, if I had to pick a modern language to use, it would be Javascript. Yes, I know this is heresy to some of you, but at least it has one feature not commonly found in other programming languages - prototypical inheritance - so it does have a reason for existing. That almost (but not quite) makes up for its shortcomings as a programming langauge like lack of a proper numeric stack and conflation between strings and numbers, due to the desire for it to be a "scripting" language (is "scripting" the new word for "ill-designed"?) and a syntax that allows constructors to be called as plain functions with hilarious results. So, really, the list of negatives isn't that long. As for rewriting everything? We've been doing that since Autocode. Think of it like a musician running his scales. It keeps us fresh.

      --
      That is all.
    2. Re:Looks at CodePlex... by doom · · Score: 1

      Re: Javascript.

      You forgot the broken scoping rules.

      And lame unicode support (as of ES 5)-- but hey, it's only the "World Wide Web", and no one really uses the astral planes, do they?

    3. Re:Looks at CodePlex... by ndykman · · Score: 1

      To be fair, one can use the prototype-based model in Python (prototype,py is one implementation) and Ruby. And scoping is another big issue, as was mentioned. Heck, you could probably come up with a version of it in C# (via the ExpandoObject).

    4. Re:Looks at CodePlex... by shutdown+-p+now · · Score: 1

      What's good about prototype-based OO? A lot of people pitch it is as "nice, just misunderstood". I sort of agree about the misunderstood part, but the code that is touted as example of good use of prototypes generally avoids all the crazy things that are possible to do with them that actually distinguish them from class-based OO. So end result is basically the same - and then why bother with being different from everyone else?

  10. GitHub's language ID can be misleading by Trepidity · · Score: 4, Informative

    For example if you have a Python project, but it has an example web demo, and the web frontend for the demo uses jQuery, suddenly you have a giant pile of JavaScript code in your repository. So much of it that GitHub often identifies the project as JS, even though it's really a Python project that just has a JS library buried in the examples/ directory.

    Of course in some ideal world you wouldn't have third-party library dependencies actually checked into your repository. But it's common to include any JS libraries your HTML documentation/demos/etc. need, because that lets the HTML be viewable and work correctly straight out of the repository (including offline).

    1. Re:GitHub's language ID can be misleading by Anonymous Coward · · Score: 1

      git submodules fix that. But there's just so many morons who are afraid of reading git's documentation that this feature gets underused or incorrectly used at times. And yes, I use it correctly and don't have any problems with it. Or didn't you know you always have to clone with --recursive?

    2. Re:GitHub's language ID can be misleading by Trepidity · · Score: 1, Insightful

      Using a git submodule just to throw in jquery.min.js is a bit overkill. Especially since it has no real advantages besides fixing GitHub's statistics.

    3. Re:GitHub's language ID can be misleading by Anonymous Coward · · Score: 0

      Overkill in what? In that it actually tracks "a different project with a different storyline" instead of mangling everything into a single tree? In that you can easily keep updating it to whatever version you want? Seriously, if adding a switch to your git clone command or default git preferences is overkill, please stop using computers. It's overkill for you, not for git, nor for your computer, neither for github.

    4. Re:GitHub's language ID can be misleading by odie5533 · · Score: 1

      The bigger problem is that all your users need to know to use the switch when cloning your repo.

    5. Re:GitHub's language ID can be misleading by Trepidity · · Score: 2

      There is no advantage at all to doing it, is the problem. Solving nonexistent problems is something nerds love to do, but it isn't that helpful.

    6. Re:GitHub's language ID can be misleading by Anonymous Coward · · Score: 0

      A giant pile of JS?

      jquery.js - 276Kb unminified

      Gigantic! If that overshadows your python code you have a hell of a trivial application.

      If you want jquery-ui and the only reason to use it is for the theme roller that is another 426 Kb.

      Hardly a giant pile.

    7. Re:GitHub's language ID can be misleading by Anonymous Coward · · Score: 0

      > Of course in some ideal world you wouldn't have third-party library dependencies actually checked into your repository
      No, you would, unless you are accepting and open that you are outsourcing the security and stability of your "product" (i.e. you don't really have a "product" with definable qualities).

  11. JVM-based languages like Scala, Groovy, Clojure by AlienSexist · · Score: 2

    ... would further inflate Java's domination of the stats. Java as the core is very strong. I'm seeing increasing adoption of (and job offerings for) the JVM-based languages though. If you don't already know about it, ThroughtWorks has a wonderful semi-annual Technology Radar comprising their consultancy's experience and evaluations of various tech.

    1. Re:JVM-based languages like Scala, Groovy, Clojure by mr_mischief · · Score: 1

      The JVM is even one of the three primary targets for Rakudo, the main Perl6 front end. It is increasingly feature complete. So if that ever ships it'll be another interoperable JVM production language.

    2. Re:JVM-based languages like Scala, Groovy, Clojure by Anonymous Coward · · Score: 0

      I use JRuby a lot, but hardly ever have .java files in the project.

      Any reasonable evaluation would peg it as a ruby project, not a Java one.

  12. Drawing conclusions from github? by Anonymous Coward · · Score: 0

    Does this really tell us anything about the state of the world, or is this a collection of meaningless statistics about the large number of half-finished or abandoned projects on github?

    I don't think any of the metrics described in the article are very useful. I'd be more interested in metrics that incorporate some measure of the importance or activity related to the project. (the "issues" metric is a start -- if people are asking questions about something, it matters to them, at least) but it also reflects which languages raise the most questions because they're just generally baffling)

  13. Programming, not programming in a language by jgotts · · Score: 1

    Programming is a set of thought processes that are being applied regardless of the language or environment being used. The other part is markup or translation, and that part of the work should be minimized.

    I've been programming since I was a little kid and now I'm almost 40. In developing my craft over 30 years I've focused on learning how to write solid code that can be easily modified by the next person. The software that you write needs to read like Hemingway: short, simple, and declarative. When you think of programming in terms of languages, you're doing it wrong.

    One day we will instruct computer AIs completely in a natural language like English or another language. The more cumbersome the markup and translation, the further you stray from that goal.

    Thinking narrowly, there are features of languages that have proven to be useful over time, such as object orientation. The key here though is abstraction. However we do it, the programmers' job is to move electrons around. At every abstraction we should strive to simplify and in my mind I see a convergence such as the natural language interface. To facilitate it we need to think about what it really means to be a programmer, what it has always meant, and what it will always mean: To convey an accurate and modifiable sequence of instructions to some device in the most efficient way possible.

    1. Re:Programming, not programming in a language by Kittenman · · Score: 2

      I was with you 'til you said English was a natural language. It isn't. One example from "Monkey Business" - Marilyn Monroe is asked to go to every Ford garage in town and find Professor Fullton. "But which one do you want me to do first?".

      One reason we have computer languages is that our normal ones are too ambiguous.

      I like the idea of computer languages that read like Hemmingway novels. My suggestions,.,.,

      1: The SUN also rises
      2: For (whom the bell tolls): Do
      3: The Old man and the C:

      --
      "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
    2. Re:Programming, not programming in a language by jbolden · · Score: 1

      Programming is a set of thought processes that are being applied regardless of the language or environment being used.

      I disagree with you here. I think the thought process is highly dependent on the language. For example in a low level language I spend a great deal of time thinking about how I want the machine to perform various computations. In a high level language I spend my time thinking very abstractly about the process. In your typical structured programming language I spend a lot of time conceiving of the problem as a list of steps: do A then do B then do C... In an object oriented language I spend time thinking about the who: A does J and K, B can do L,M,N... and then very little in weaving that together as steps.

  14. Prefer the TIOBE index by landoltjp · · Score: 1

    I Prefer this broader index: http://www.tiobe.com/index.php...

    1. Re:Prefer the TIOBE index by Anonymous Coward · · Score: 0

      I get this: TypeError: $(...).highcharts is not a function

    2. Re:Prefer the TIOBE index by Cesare+Ferrari · · Score: 1

      I always like the way that C, C++ and objective C are split out to give the others a chance.

    3. Re:Prefer the TIOBE index by david_thornley · · Score: 1

      Or because they're distinctly different languages.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    4. Re:Prefer the TIOBE index by Cesare+Ferrari · · Score: 1

      Haha. That's why there is Objective C++, and C is commonly shoved through a C++ compiler. It's amazing how similar distinctly different languages can be ;-) For distinctly different, I was thinking Prolog and Perl, or F# and bash. Anyhow, enough chat, code to write...

    5. Re:Prefer the TIOBE index by david_thornley · · Score: 1

      Okay, write some things in C, C++, and Objective-C, using good practices for each language. Compare the programs.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    6. Re:Prefer the TIOBE index by Anonymous Coward · · Score: 0

      Are you retarded?

  15. Yeah, I remember this idea. by mbkennel · · Score: 1

    Somebody was pushing it back in the late 80's.

    http://en.wikipedia.org/wiki/Architecture_Neutral_Distribution_Format

    I guess Android is close enough, as running on many hardware platforms is required for its business model.

  16. How much of this is due to CLR/JVM flexibility by rsborg · · Score: 1

    When a compiler can target a runtime like Java or the CLR, it seems like languages like Clojure or Scala or even Javascript are simply semantic sugar around the underlying runtime (which I approve of).

    --
    Make sure everyone's vote counts: Verified Voting
    1. Re:How much of this is due to CLR/JVM flexibility by shutdown+-p+now · · Score: 1

      Well, ultimately the CPU itself is not fundamentally different - it's also a "runtime", just a lower level one. And these days, there's an abstraction layer there as well in terms of LLVM, it's just that it's purely compile-time.

      So all languages are "simply semantic sugar" for something below. Heck, even assembly is sugar for CPU microcode.

  17. The right 3 languages by BadDreamer · · Score: 2

    If it's the right three languages, perhaps. But I doubt it would be enough even then.

    Almost every kind of shop today will need a feature filled main language tailored to the main product, a SQL style language and a scripting language for glue, installers and small tasks. That's your three languages right there.

    And that assumes that the main product can effectively be developed in one language, which is increasingly not the case. For example, languages such as Clojure and Scala allow leverage of Java libraries - but require Java knowledge to be effectively used to develop applications.

    The effectiveness of different language paradigms in solving specific kinds of problems varies quite a lot, and therefore it is often useful to have different languages for different parts of a complex system. A domain model will benefit strongly from language features in Lisp and strong OO systems, while a view layer benefits from loose structure and lack of formalisms. This makes it likely that the main product of a shop really should use several languages in a controlled manner.

  18. translation by Anonymous Coward · · Score: 0

    As GitHub becomes an increasingly common repository of aborted attempts at utilizing fads, the metadata for abortions saved there can tell us a lot about the state of fads. In particular, a look at the programming languages used over the past half-decade shows an increasingly fragmented landscape, in which the overall share of real languages is on a slight decline, while amateur-joke-of-a-languages are seeing modest growth in usage

  19. Re:I told you so. by nctritech · · Score: 1

    Related: IBM's DAISY: http://researcher.watson.ibm.c...

  20. "Diversity"? by Anonymous Coward · · Score: 2, Informative

    99% of them are basically the same only slightly different structure. Programming languages are like novels; "ME TOO! I MADE ONE TOO!". What we need the least is more "diversity" when most of it is just dialects that increases the chance of errors and makes life harder for people.
     

  21. I've had a few by Anonymous Coward · · Score: 0

    I started programming in BASIC. Even went to compiled BASIC. Then Pascal, Assembly (on bare hardware), then Rexx, a 4th GL named Focus (that no one ever uses anymore), COBOL, then C, then Modula2, more assembly (different machine architecture), more Cobol (by that time my incredulity for Cobol was much greater), more APL, LISP, Prolog, Bash, a bit of Perl, a bit of Javascript, and some PHP. Oh, and some PL/SQL. After a while it all starts to look like C (except like APL, and one I forgot to mention: JCL which is not coherent and doesn't look like anything else, and is a badly hacked abomination). The better ones all look like C.

  22. Stats are about number of new projects by loufoque · · Score: 2

    It's important to note the stats are about the number of new projects.
    Most C or C++ code, for example, will be mature projects that stay alive for a long time.

    I think it is a bad stat, what would be more interesting would be to know the total quantity of actively maintained code and not just the number of new projects.

  23. One count, another count... by mr_mischief · · Score: 1

    At freecode.com they have a few tools regarding language. It's a public release site and not just whatever someone is working on at the moment. The uploader allows people to specify which language something is in. There's a link to those counts and then to projects in those languages right on the front page of the site. However, it's often helpful to know with which languages things are meant to interoperate or process, too. Freshmeat... err, Freecode allows one to search projects. There are counts there different from the "implementation language" set for the projects.

    http://freecode.com/search?q=P... 2416
    http://freecode.com/search?q=C... 3632
    http://freecode.com/search?q='... also 3632
    http://freecode.com/search?q=J... 3967
    http://freecode.com/search?q=R... 402
    http://freecode.com/search?q=P... 1920
    http://freecode.com/search?q=J... 921

    I'm not sure if searches for "Java" include "JavaScript" or if the search box is smarter than that. It seems to lump C and C++ together.

  24. Languages Course by rhyous · · Score: 1

    I think you might be mistaken.

    Just because someone posts something to git hub doesn't mean that is "the" language they have chosen.

    We now have classes in college that are called "Intro to Programming Languages" and the whole purpose is to learn many different programming languages. Some of these "class projects" will invariably end up on GitHub. Then they have a final in the language of their choice, with a requirement that the language be "other" than the big 4 (Java, C#, C/C++, PHP).

    So first, remove all those homework project from your evaluation, then redo your evaluation. You might see what I everyone else sees in the market: Java, C#, C/C++/ObjectiveC for compiled languages and JavaScript and PHP for non-compiled languages and then everything else is sometimes used for a product here and there.

    1. Re:Languages Course by Anonymous Coward · · Score: 0

      It used to be Intro to programming languages classes where part of the compiler writing series where you would learn about type systems, orthogonality, regularity, the various paradigms without specifically using any languages.

      Of course that was when CS programs were actually CS programs and not glorified API monkey job training.

  25. Bottom Line by billy3 · · Score: 1

    All true up to the and including the GGP. Having new and nifty tools is cool and all, but the only real reason we have multiple tools is that tool X cannot do the job (or nearly as well) of tool Y and both are necessary (screwdriver and hammer), or new tool X1 (power screwdriver) just does the job sooo much better and it's worth migrating to. Outside of hobbying, blank cheque funded projects, and the hyped up startup that's just as likely to bust as to make it (if they survive what usually ends up being a maintenance nightmare for them later on), it's the business IT needs ("does it do the job", legacy support, maintainability, easy and rapidity of dev and deployment, availability of skilled labour. overhead) that dictate what tools should be used. Business that go with such an approach tend to do well, those that don't tend to get screwed (or screw someone).

  26. the data is squiff by Anonymous Coward · · Score: 0

    Garbage in = Garbage out... " https://github.com/sdague/temp... is a good instance of a ruby project that has 0% javascript in it, but it classified as javascript."

  27. K.S. Kyosuke = FAILING (& running) by Anonymous Coward · · Score: 0

    Keep blowin mod points. You'll run outta 'em & I'll just post again. I have no limits. You do. I win. Always. K.S. Kyosuke is failing!

  28. Re:Why not use C# for large business App by shutdown+-p+now · · Score: 1

    Since when are C# and Java "frameworks"?

  29. Awww, "poo lil' baby" k.s. kyosucky by Anonymous Coward · · Score: 0

    Ran dry on sockpuppets and modpoints to downmod others with to hide your fuckups K.S. Kyosuke? Answer = Yes. Hahahaha, You lose/fail.