The Next Big Language will have to wait

Steve Yegge talks about The Next Big Language in his classic blog. The blog is already three years old, and there has not been that many changes in the world of programming languages in recent years.

According to TIOBE, the ten most popular programming languages have stayed the same in the last four years, and no language in the top ten has moved more than two positions in either direction.

In the last 12 moths, Objective-C has jumped from 32. to 12. on the list. There is an obvious reason for this; any software submitted to Apple’s App Store must be written in Objective-C. The popularity of iPhone and iPod touch has made Objective-C main stream language in a year, but it is still not even close to being a big language.

Another site that collects information about the programming language popularity, is lang.pop. Their results are collected from different web sites, and are very similar to TIOBE’s findings.

In his blog, Steve says that the NBL should arrive in 18-24 months. It has already been 37 months and nothing significant has happened. Instead, almost every one of the top 10 programming languages have found their niche and solidified their position in their respective areas. Let’s take a look.

  • Java : Dominating enterprise server business
  • C : Dominating low-level and embedded software
  • C++ : Strong in many different fields, especially games
  • PHP : Unfortunately still really popular on the web
  • Visual Basic and C# : Strong in Windows software
  • Python and Perl : Most popular scripting languages and doing well on the web
  • Javascript : The language for web applications

If we consider C, C++ and Java to be the biggest languages, I don’t see any language currently in the top 20 taking their place. C++ might be the one that could lose the most popularity in the near future, because it is not really strong in any particular area, except maybe gaming, but I don’t see a single language taking its place. Most probably, different languages get some parts of its popularity in different areas.

PHP is a mess, Visual Basic and C# are too Windows oriented, Python is too slow, Perl is Perl, Javascript is stuck to its niche, Ruby is slow as hell. Honestly from a technical point of view, Go could be the next big language. It would require some serious brainwashing from Google. If Google starts shipping computers and mobile phones to people all over the world, and the only language you can use to develop software for those platforms is Go, then it might become the Next Big Language.

Usually when a new programming language had gained some popularity, it’s because there was a new opportunity and a big company behind it. The current market is taken. At the moment, I don’t see any holes where a new language could go and overtake the segment, because the other languages could not fill the hole.

It will require new type of hardware or a completely new need for software before the Next Big Language will have a chance to appear from nowhere. There must be huge financial support for the language, because companies will not want to waste their money experimenting with new and unproven programming languages.

The Next Big Language must be advanced, but I don’t think that it is the deciding factor. I would like that the Next Big Language would do everything that Steve has listed, but I think we will have to settle for less. There will be languages that will fulfill all Steve’s requirements for NBL, but the actual NBL won’t probably be chosen on technical merits.

People talk a lot about high-level languages like Haskell, Erlang, and OCaml, but not very many people actually get to write code for living in those languages. Young people need to decide what languages they need to learn to get a job in programming, and unfortunately, they start learning Java and PHP to get a job. I can’t blame them that most programming positions require Java, PHP, C# or Visual Basic skills.

I hope that before I retire I could see a new language rise and take over most of the programming world. Currently there are too many programming languages that I don’t want to write for living. I would like to see C++, Java, PHP, and Visual Basic disappear from this planet and be replaced by something awesome, but I don’t know, if that will happen in the next 30 years. Let’s hope Steve is right, and the Next Big Language is right around the corner.

  • Share/Bookmark

36 Comments

  1. Adam Kelly says:

    Thanks for the insight. Don’t worry, friend – it will happen within the next 30 years!

  2. Alex says:

    “I hope that before I retire I could see a new language rise and take over most of the programming world.”

    No way man, we need language diversity to keep things fun and interesting. Programming is a wild jungle and that’s what encourages everyone to keep moving. I wish for niche languages to gain market so as to have even more “real” languages to choose from in professional settings.

  3. Alex, I said that a new language could take over most of the programming world. By this I meant replacing Java and C++ with something cool. I do like many different programming languages. I do not want them to go away, but the main languages should also be awesome.

  4. Xenplex says:

    Interesting post!
    Well, I’m quite new in programming (I even havn’t mastered a language completely yet) so I can’t judge about this topic, but I hope I experience an absolute awesome change in programming languages!

  5. Paul Johnson says:

    Change can happen very suddenly; just look what happened with Linux in the enterprise server space. Right now Haskell is seeing exponential growth, doubling about every year. But from such a small base that it is invisible if all you look at are the dominant languages; Haskell going from 0.1% to 0.2% means that Java goes from 59.9% to 59.8%. But at some point growth really takes off, “Haskell for Dummies” gets published, and anyone who wasn’t already watching it is saying “Where did that come from?”

  6. Paul, you are right. For example Objective-C went from 0.18% to 1.97% in 12 months.

  7. Anonymous says:

    Your logic is plain wrong. You cannot have one language for all purposes. Use the right language for the job.

  8. James Ignatowski says:

    PHP allows for awful programmers to write code at all. This is why its so popular. Not so different from VB, really. In fact, all of the awful things people do in VB can be just just as horribly in PHP. But PHP also allows for great programmers to write great code. The PHP language, as it stands, is quite good.

    The next big language will likely be something like Google Go which allows massive amounts of data to be processed in parallel much more easily.

  9. Jon Frisby says:

    An interesting thing to keep an eye on that may have some impact on both C++ and Objective-C is Unity3D.

    Basically, it’s a game engine built using Mono (open source .Net implementation), with a serious cross-platform bent (Already available: PC, Mac, iPhone, Wii. Announced / in the works previously: XBox360. Announced at GDC: PS3, Android). Thanks to that and the browser plugin on Mac/Windows it’s getting a LOT of attention in the gamedev world. Lots of big names working on / shipping titles with it (EA’s new Tiger Woods game on FB, Cartoon Networks’ Fusion Falls MMO, upcoming Battlestar Galactica MMO, most of Lego’s efforts… Activision has announced they’re using it, but no specific titles that I’m aware of.).

    The iPhone version claims some 500+ shipping games, a number of them having made various top 10 lists on the App Store.

    In short, it’s bringing C# / CLR into the mainstream of game development in a hurry which can do a lot to displace one of C++’s more bread-and-butter areas of application.

    As a peripheral effect though, it’s helping bring Mono to more platforms for more than just games. For example, it’s thanks to efforts at Unity Technologies that MonoTouch (Mono for iPhone) is even possible (previously their AOT support was only partial — it still needed to use JIT for a few things, which is a no-no on iPhone — and they had no code generator for ARM). So MonoTouch for iPhone (presumably the Android port will eventually have something analogous as well) means C#-based apps on iPhone…

    How MUCH of a dent this will make is hard to say, but it looks to be more a matter of creating new opportunities than of simply “eating C++’s lunch”; C++ is still the go-to language for core engine development among developers building their own engins, but the choice of scripting engine may skew away from Lua/Python towards Mono by way of an increasing marketplace of C# programmers with game dev experience, and the increased performance/capabilities this provides may ultimately push some functionality up from what used to be C++ to C#. In the meantime though, it’s making it easier/faster/cheaper to ship games on multiple platforms and to do so without ever touching C++.

    -JF

  10. Jeef says:

    I think you missed the ball on this. You only talk about functional and high-order languages in brief.

    php, python, javascript, c#, ect… all support functional programing. many of them support the y combinator, and many have supported first order functions for a long time.

    code has a place, and depending on the project, or the projects owner… you can take different stabs at different languages

    if you’re REALLY looking for the “next big language”, its clear: a typed, functional, easy-to-make parallel language that can be used seamlessly with the web and desktops

    things are branching out more than ever, but eventually it’s all going to come full circle

  11. Peter says:

    Too many programming languages? Oh please! They were saying this 30 years ago (c, pascal, fortran, modula2, smalltalk, etc…) and they’ll be saying it 30 years from now. Development is about legacy. Get over it.

  12. blackdog says:

    “if you’re REALLY looking for the “next big language”, its clear: a typed, functional, easy-to-make parallel language that can be used seamlessly with the web and desktops”

    haXe is a type inferred, oop + functional, javascripty language. It targets C++, PHP, Javascript, Actionscript (and flash bytecode) so 3 out of your top 9 above. A great language, with the innovation that it sits on top of the platform du jour. It’s not for flash only.

    bd

  13. @Anonymous and Peter

    I didn’t say I want fewer languages. I want to have all the cool languages that are really good at their thing, but I would like to see the major languages to be something better.

  14. D says:

    Are you sure the next big language is going to be awesome? I think it’ll be boring. Boring languages get things done. Awesome languages tend to have large bits missing.

    Perl, python and ruby can’t bang bits, but they’re awesome at text. C is hopeless at text, but rather awesome at pushing bits around. Put them together and you have an awesome combination.

    I expect these sort of combinations to work even better in the future, when hopefully people from both camps bend a little and help each other a bit more.

  15. @D

    Good point. It definitely seems that we are moving even further in that direction. I have just been kind of waiting for the NBL to arrive after reading Stevey’s blog three years ago.

  16. frank says:

    @Alex

    Programming and languages are not supposed to be ‘fun’, ‘cool’ and interesting when they are used to get the job done. When you are hired / employed by a company to write code, you are hired to translate a business requirement (this can be a game idea, a CRM, a new embedded device that helps you develop a better swing with tennis) into code. The resulting code should function correctly given these requirements and you should be able to prove it functions correctly and has no errors. This is boring, very boring work. The interesting part is translating the requirements into high level code; the actual coding and proofs are boring and tedious.

    Your brain is powerful (normally) and can talk you into liking/finding fun in pretty much anything ;the ‘fun’ that people get out of coding currently is a plague resulting in the horrible software we have. A new language and environment that is tedious but proven and robust and an education to find those aspects ‘fun’ and getting your intellectual pleasures out of pristine and error free code is what should be mainstream. Considering probably most programmers already don’t consider coding fun (throwing together the next CRUD app for the man), nothing much will have to change in the minds of those people. However, currently, the braindead copy/paste nature of, say, PHP results in even worse code than the code people write that DO consider programming to be ‘fun’. The idea of ‘fun’ is not relevant when you are at work; you get paid, even if you don’t find it ‘fun’. As said before ofcourse; your brain can be tricked in finding shoveling manure ‘fun’; I know people who do and who find it fun.
    This shift needs a NBL and toolset to support it. I hope I’ll live to see this.

  17. tapir says:

    The next big language may be python 3.x with a JIT compiler: http://code.google.com/p/unladen-swallow/

    That way we would have a language that:
    1)is elegantly designed
    2)has a very capable standard library
    3)is very fast

  18. Alex says:

    @ frank

    “Programming and languages are not supposed to be ‘fun’, ‘cool’ and interesting when they are used to get the job done.”

    Of course they are. What programmers find “fun” will often coincide with “simple”, “powerful”, and “enjoyable to work with”, at least this holds for me.

  19. digitocero says:

    I am not sure if all apple applications count as objective-c. It is possible to use c in them also, only wrapping them in objective-c.
    Also, javascript as a niche language could have a foot in the server too with projects like node.js.
    Maybe the new market is parallellizing code for multiple processors and fucntional languages excel at it. Good article!

  20. Kaveh Shahbazian says:

    Indeed it is hard (and maybe wrong) to say it. There are many factors like tool-chain, concurrent-awareness and as you put (partly) true, big-dady!

    But changes are coming because: 1- F# is an officially supported product and 2- C# 4 alone, is bringing statically-typed by default & dynamically-typed when needed into the game (don’t tell me those are “very old ideas”. Microsoft is bringing those into the real game; and that’s what matters).

    Only after a proper amount of time for those two (1 and 2) to settle some ground, we can think of the NBL. And one aspect of NBL ((as if) after acceptable spreading of 1 & 2 and watching the (as if acceptable) result) would be being hosted on a VM: .NET or JVM (more likely JVM because of licensing issues and …).

    One exception that is not following the pattern is Scala; which is silently digging it’s way into enterprise and conquering new realms and grounding well itself (almost too well in some cases). I wish I could come to a conclusion about it.

  21. jsetter says:

    Is ruby the next one?

  22. Rick says:

    It is interesting to think about.

    I’m not sure about the language– I do feel we’re overdue, though. Java was great at startup, but it’s gotten too heavy. We also need something to wade through the sea of XML and configuration swamps we get trapped in.

    I wonder about the NBF (Next Big Framework), too. CORBA had a 10 year cycle where it was lively, then came SOA. The SOA cycle is about up. Big data seems to be the problem we’ll need to solve, so maybe something Map-Reduce-ish, with provisions for online….

  23. Tumbleweed says:

    Once D can use LLVM on the backend with JIT, that will let us replace several languages all in one go. I really wish REBOL had been done as an open source project; I suspect that would’ve helped it gain much more acceptance.

  24. bwtaylor says:

    The two that I would watch are scala and python (unladen-swallow). The two I **wish** would get more popular, but don’t seem to be gaining are D and haskell. The ones that will continue to decline are C++ and perl. The ones I **wish** would decline, but won’t are PHP and C#.

    It’s hard to tell what to make of Go. A few years ago, I recall lua having a lot of momentum and it’s fallen back into the “also ran” category. Ruby had a big buzz and seems to be treading water just outside the top 10.

    I think Objective-C will rise or fall depending on how the iPhone vs Android battle goes. I’m pulling for Android, and I hope everybody who likes openness is too.

  25. Rahul says:

    Given the dominance of Java and the awesomeness of JVM its only obvious the NBL should come from J stable. No prizes for guessing but like someone else said – SCALA is here! Slowly making inroads to enterprise. So much so that JVM itself is being worked upon to become friends with it.

    LOL @ bwtaylor
    “The ones I **wish** would decline, but won’t are PHP and C#. ”
    Dont know why people start to look down on anything what they perceive as easy or simple. I agree PHP is a disaster with a fool at the otherside but it is equally brilliant and powerful when you know how to do it right.

    I personally would like, infact I believe the NBL should be – as easy as a pie, as clean as a whistle, as sturdy as an oak (aha!), as quick as lightning, as safe as a house and…. as free as a beer (uh.. bird)

  26. cna training says:

    What a great resource!

  27. Hi Tuomas,

    thanks for sharing these toughts with us.

    I agree that there isn’t one new (or old aspiring) language that has all the capabilities necessary to to break or shake the chart at lang.pop a little.

    I also strongly agree that programming can be fun! One strong sign is this book, just have a quick look at it & you’ll see what’s up: poignant’s guide to ruby.

    Talking of Ruby: I see two drawbacks. First, you have no option for using type safety (I know, I’m getting old) and second, it’s way too slow.

    And perhaps in addition third: people think Rails when they say Ruby, which is just a little subset. Biggest part of the market by far, but it’s a Framework.

    But there’s something great happening concerning the speed right now. People start using alternatives to the standard Ruby interpreter (MRI) that all use different approaches. Projects like jruby and MacRuby are especially interesting, since they use technology that makes business deciders “feel save”.

    Both Ruby in a JVM and Ruby in a LLVM (with COCOA & GCD support) don’t sound unsafe. Furthermore, they add concurrency to ruby, which it lacks in MRI.

    So what’s the bottom line? Perhaps there’s no need for a new Language, since Java is strong in the enterprise server field, C++ in the gaming industry, and big companies are regulating their’s objectives (or objective-cs) with proprietary languages.

    What if we need a kind of free, not proprietary Framework language that we us to easily get things done, is fun to use & beautiful – that is then cross-compiled to Java, C++, Objective-C, you name it?

    I’m a Mac user, but I don’t want to learn Obj-C to code for my favorite system software (and encode my videos in H.264, but that’s another topic).

    MacRuby brings me one step closer to starting developing for Mac OS. I think it will be one of the most influential software projects of our times. It still needs some TLC, but it’s already absolutley amazing.

    Should copy paste this into an own blog post… ;-)

  28. @Sven

    Actually Ruby is my favorite language, but I haven’t used it in a while. I have been using Python at work and switching between Ruby and Python isn’t too easy.

    I agree that at the moment there is no need for the Next Big Language, but maybe there will be in the future.

  29. I am in fact grateful to thhe owner of this site who has shared
    this fantastic artocle att at this place.

    Feel free to surf to my site – UPSC NDA Result 2014

  30. I was wondering if you ever considered changing the page layout of your site?
    Its very well written; I love what youve got to say.
    But maybe you could a little more in the way of content so people could connect with it better.
    Youve got an awful lot of text for only having 1 or two images.

    Maybe you could space it out better?

  31. Very soon this website will be famous amid all blog users, due to it’s nice posts

  32. domain says:

    Good way of explaining, and nice post to get information about
    my presentation topic, which i am going to deliver in college.

  33. A good pair of custom socks can be worn at a formal gathering or while taking in a ball game.
    The concept of these charitable hampers remains the same, however.
    Corporate gift ideas are freely and widely available throughout.

  34. magnificent points altogether, you just received a brand
    new reader. What would you suggest in regards to your put up
    that you made a few days in the past? Any certain?

Trackbacks / Pingbacks

  1. uberVU - social comments

Leave a Reply