What Programming Language to Learn (Next)

So you’re ready to learn a new programming language? You might be entirely new to the world of application development, in that case, welcome! Or you’ve might have been creating applications for years, but now you feel you’re ready for something new. Picking a programming language can be a daunting task. There are an enormous amount of options, hence this short and handy guide.

Note: This article is also available in Serbo-Croatian.

I created this flowchart after reading Seven Languages in Seven Weeks. I realized that the wealth of programming language choices might be the reason why few developers venture out of their familiar turf and try on a new language. So here’s your chance, pick your choice and work it!

  • Dirkvandepoel


    Obviously there are plenty of choices, possible additions to the chart:
    – embedded devices: C
    – mobile development: plenty of frameworks, e.g. http://www.appcelerator.com/
    – web: php ref. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

  • Hey Dirk,
    I totally forgot about embedded devices. C is definitely a good choice in that case, although I’ve seen C++ too (for instance the Arduino) It’s been a while since I worked with anything embedded though, so I’m sure I’m not a good reference 🙂

    I’m a bit hesitant to advice any one to learn JavaScript. It’s an important language for sure, but is it something that will help you grow as a dev? I’m not sure. I have similar feelings towards PHP (it’s probably a good idea to add those two to the “job security” part of the chart).

  • JavaScript can definitely help you grow as a developer, in essence every programming language can. You can’t skip out on JavaScript and PHP because of that reason, simply because, although they have a high scriptkiddy level at some sort, they both embrace the most complex technical concepts, development methodologies and testing environments available to us as developers.

  • Nicolas

    You miss crytical system (ADA…), processor design (VHDL…), IA (prolog / lisp…), sys admin (shell / powershell / perl), maths (MathLab…), legacy systems (Cobol / Fortran …), drivers and microcontrolers (asm…)

  • Pingback: Tweets that mention What Programming Language to Learn (Next) -- Topsy.com()

  • Bokiyis

    JS totally can help you grow as developer because of its cool OOP-like features and ability to easily use functional style

  • Aa

    interesting.. php is not mentioned which is very popular on web env.

  • I probably should’ve expressed my comment a bit better. You’re quite right that JavaScript has a number of significant advantage over more “traditional” languages (e.g. Java). I have more than a few previous posts on JavaScript and I believe we haven’t seen the best of JavaScript yet.

    Judging by much of the code that is available on the Internet (including my own, I’m afraid), there’s also a downside to JavaScript: it’s terribly easy to write very cluttered code with enough side effects to cause a Haskell programmer to go into cardiac arrest.

  • yep but RoR vs PHP…

  • steven

    no grails? should go hand in hand with familiarity and web.

  • Grails is a framework, the language is groovy.

  • steven

    i realise that, but writing Ruby for web is pretty weak…

  • Funny — by day I spend most of my time in JavaScript, digging my own grave with side effects. By night, I detox for a couple hours with Haskell. I’m not dead yet, though.

  • jy

    great post! i do think javascript is an important language to know for html5-style development, and also event-based programming on the web (a la node.js)

  • Really cool. Keep posting charts like this.

  • while RoR might be a nicer programming language, failing to mention PHP with regards to web is a massive omission, given the sheer number of sites built with PHP…

  • yeah but it isn’t actually a very good language. Hence the recommendation of Ruby 😉

    Also RoR isn’t a programming language. It’s a web framework for Ruby.

  • Pingback: Aereivir » Quel langage es-tu fait ?()

  • 123


  • Anonymous

    Ruby is not that better.
    If you want job security, PHP is pretty much the only safe bet in the web.

  • john

    cool post but you missed “Scientific Programming” for which Fortran (77, 90, 2003,….) is mostly used

  • Asdf

    What kind of flow chart is this?

  • J24

    You guys are taking this chart too seriously.

  • sure – I know RoR isn’t a language, but when folks talk about Ruby, it’s generally in the context of Rails

  • edlich

    No it’s not. Ruby enables Rails and Groovy enables Grails.

  • No F#? I am disappoint.

  • Anonymous

    Haha. So much is wrong. Lua isnt a programming language. JS xD 😀 haha I learn c++ after objective c and cocoa.

  • Bakersemail

    obviously ruby was written for web just because of rails… 1+1=2?

  • Bakersemail

    i would argue ruby isnt a good language. it’s all opinion.

  • 842

    where is prolog o-o

  • Fuck

    You’re a fucking idiot and don’t know what programming is.

  • Guy

    You’re a fail troll and a fucking tool.

  • Dude

    Job Security, not a better language. Herp derp you tool.

  • Bakersemail

    chill. this post has obviously brought out a lot of strong opinions but there is no need for that

  • Many many thanks… I wanna learn “RUBY”

  • You miss Desktop development. using languages like Delphi and C++

  • Everyone, lets try and keep the discussion civilized. I’ve had to remove a few comments that weren’t appropriate.
    It could be interesting if you try to explain why you prefer a language. I know it isn’t always easy and a lot comes down to personal choice.

    For example, are there other reasons besides job security to choose PHP over Ruby? I have to admit I only have limited experience with PHP. I’ve written a basic CRUD application, created small WordPress plugins, tried to create Drupal plugins and have also seen code based on the Zend framework (never written any). I thought the Zend code was very clear, but a little lengthy (something that really bothers me in Java).
    Does PHP have certain language features that set it apart from Ruby?

  • LotusLand

    >I realized that the wealth of programming language choices
    >might be the reason why few developers venture out of their
    >familiar turf and try on a new language.

    I’m a software developer and have been programming for fun since my teens.

    However, I didn’t program because I loved any language but because of what I was programming, such as learning 3D graphics in QBASIC in my teens, writing physics simulations, games, utilities etc.

    I’d try a new language if there was a market for it but I definitely won’t be wasting my time learning programming language as a hobby, there’s just so many better things to do, such learning to play a piano or learn a foreign language. Or becoming involved in a sport, etc.

  • There’s no best computer language, the power is relative to its developer. 🙂

  • Works on every platform but not well known…. haXe.
    It compiles to Flash/JS/PHP/C++/Neko, and C#/Java coming soon 🙂

  • Bryan

    No Visual FoxPro?! 😉

  • Becca

    It’s good =)
    But now you need to add “Did you learn Qt?” => “any .NET”

  • I often see this question asked from an academic context. This is a VHS vs Betamax question (or Xbox 360 vs PS3). PHP is an ugly language (object notation = ->? yuk).
    The technical merits of a language are of little consequence if you can’t find a job writing it (which will ultimately result in the language becoming irrelevant – beautiful but irrelevant). English isn’t the most elegant language in the world, but accidents of fate have led to it’s supremacy as the global lingua franca.
    So when asked “what language should I learn next re: web dev” – to exclude PHP, arguably the “english|VHS|X360” of the web is a major oversight from a commercial perspective. From an academic perspective, Ruby and Python are undoubtedly far more elegant (although personally I think Python has a broader scope)

  • Pconn

    Power Builder still kicks a$$

  • Buzzby

    Ruby written just for web? No. Written just to be a pure OO scripting language. Rails came after. Hey that reminds me, any place for Smalltalk and (ugh) Perl?

  • Swensens

    I second Richard Minerich disappointed! Where is F#?!

  • Buzzby

    By the way, it’s a fun chart. I say grow it until it is all encompassing and takes over the world.

  • Visitor

    Well, I love this flowchart as, after answering No to everything else, I got to the bottom and found, to my delight, the very languages I’ve already focused my radar on: Haskell and Python. 🙂

  • I prefer VBA…especially for calculation intensive apps

  • Please update your chart (yes, that means 8 weeks) to include C / C++ for Embedded (very cool robotics stuff!) and PHP/JavaScript for Job Security = Web. Then we can slashdot your site…

  • Paul Barrett

    I don’t think PHP has anything that Ruby doesn’t, though I know very little Ruby so far. I do know you can do a lot with PHP that people think you can’t; for instance I’ve worked on an intelligent distributed system which uses long running cli processes which are capable of shutting down gracefully and even recovering gracefully from fatal errors and getting themselves back up and running when appropriate (yes, without manual intervention,) and letting us know what happened if exiting is appropriate. PHP might not have been my first choice for this – I’d prefer C++ or Python – but we’re a primarily PHP based company, and there’s nothing we’ve wanted to do that we couldn’t do in PHP. The language is very capable as long as the programmer is very capable.

    Most of what people say is bad about PHP is actually them not understanding the language and what it can do or judging it on the worst code they can find (as though bad English authors means James Joyce’s prose is also ugly,) or on what a standard website needs to do, which is such a tiny portion of its capabilities. Java’s syntax is uglier (it’s the ugliest language I’ve used, in my opinion,) and yet people agree it can be used to create good programs, so beauty is pretty much irrelevant to people who care about functionality first.

    My PHP code is as well structured and readable as anyone’s C++ or Java or Python or what have you.

  • Paul Barrett

    I’ve been learning how to write javascript properly, and even without jQuery etc it is amazing how good it actually is. It’s definitely helping me grow as a programmer, because of the use of closures, but I know you get those in other languages also so I wouldn’t say you have to learn it to learn anything particular.

    Yes, it is easy to write crap javascript, and it is also easy to write crap PHP. Then again some of the crappiest code I have ever seen was in C, C++ and Java. There was a C++ program that had memory leaks, but was so badly written we couldn’t fix it and we just rewrote from scratch and had no memory leaks and beautiful easily maintainable code.

    If nothing else, doing Javascript or PHP as a first language is actually a great way to teach someone to write good code, because the languages don’t force you to, you have to *want* to.

  • Tingleylake

    How about APL? Do a whole web site in one indecipherable line. Even better than Perl.

  • I don’t see JavaScript at all there, should I say that with it, you can develop very easy and fast web applications, extensions for FireFox and Chrome ?

  • Shimshai

    DB Programming = OpenEdge from Progress.

  • guest

    My pick for this year :
    More Java stuff(Android for Mobile, Scala (and Lift) for the web),
    More ActionScript and JavaScript (just cause they both rock)

  • MS

    Hello friends, I am new to programing. I have learnt C language and learning C++ & java now.
    Please suggest me which language will be best for me to learn and are reqired to make a career.

    PHP,JAVA,python,ruby or asp.net/c#.net?
    I am not able to decide.
    Please help me.

  • Source Compiler

    thats right 😉

  • Arraymac

    Perl is the write only language. APL does everything above board.

  • Asdasd

    nice option will be there

  • Alex Finn

    Not sure why Ruby is considered to be a better language to learn for web developer then python. Just take a look at trends and you’ll see the reality: http://www.google.com/trends?q=django,+ruby+on+rails&ctab=0&geo=all&date=all&sort=0

  • mehar

    People always under estimate the power of C#. Have you look into C# 4.0?

  • Jeffery

    Try some of the old languages as 4TRAN is still used and is increasing same with cobolt, Progess, 4glp (mainframe), they have been turned into dotnet app (easy to download to learn). Learn technique, not a language. As for PHP, ASP, RoR they all have good and bad points and I prefer PHP.

  • Sripathipai85

    It’s sad that there is no mention of javascript. as more n more things are going to web js will play a dominant role

  • Anonymous

    Want to work on Linux and need a language to make chores easier -> perl?

  • Zvika Dror

    Wonderful post.
    It engaged conversation and probably triggered developers and enthusiasts to check what others are using for any sake – not just commercial.

    PHP is indeed missing from this chart for being practical, extendable, useful and community oriented.
    I do not know any other scripting language with so many frameworks (big and small), forums, blogs, online reference comments and examples, and most important developers from all levels and server deployments.

  • Zvika

    PHP for business (and lots of it), Python when possible.
    The English analogy is hilarious (and true).
    Thanks Marcus

  • Pingback: What Programming Should You Learn Next? | ChurchCode()

  • Amusing to see how wrong one could be… Lua is a programming language, for sure, and one of the bests in its category.

  • Pingback: What Programming Language To Lern (Next) « Nerdfabrik()

  • MII

    am in interested in software development ans web applications please can you give me a tip or steps i need to develop the skills. am currently studying computer engineering please i will glad to receive your advice.

  • Pingback: QuickLinks for February 2011 | (Agile) Testing()

  • SteveDBS

    C-Net 0.5 Codename : “WinChester”

  • SteveDBS Twitter
  • Steve

    Languages are like guns – everyone likes the one that kills what they are hunting. PHP is widely used, but not a good entry option. Javascript is similar to Java which is similar to C# which is similar to C-whatever. Everyone needs a solid compiled language and a solid interpreted language. after that , use whatever language solves the problem.

  • Thanks for the great post, Peter!

    For mobile development, I would add C# since it can be used for iOS (monotouch), Android (monodroid), and also for windows phone 7. It is one programming language supported in three different mobile platforms.

    Although Microsoft supports only its own platform, the open source project Mono supports C# development in iOS, Android, Linux and MacOS.

  • Good tip, Rocha. I didn’t know C# can also be used on Android and iOS. Do you have any idea how feasible it is to use the same code across all devices?

  • Pingback: ?? ?? ??? ??????? ???? ???? ?? ??????? ????? | ??? ??! – 0.5bit !()

  • Pingback: ???????? | ???()

  • Could you please post the joke version of this (funni-fied?)

  • Jens

    It’s in a proof-of-concept stage. Unusable for anything.

  • Pingback: Technical Related Notes » Blog Archive » links for 2011-04-30()

  • Anonymous

    As for PHP, ASP, RoR they all accept acceptable and bad credibility and I adopt C,C++.

    toshiba coupon codes

  • Pingback: ¿Cuál es tu próximo lenguaje? | aninki.net()

  • Pingback: What Programming Language Should You Learn Next? | Church Mag()