Best computer programming languages for the next decade

Labor Day postscript: I am surprised to see that JavaScript and Python are now tied for first place in our poll (see end of this post). JavaScript is even beating Java by one vote (as this is being written: 20110905 14:40) as being one of the best programming languages for the next decade.

screenshot - computer programming with python
NOTE: As computer programming is now a subject of intense ongoing research, this post will be frequently updated. The dates of significant additions and revisions to this information are listed at the end of this post (after Resources).

I’m looking for solid answers to two important questions:

(1) What is the best computer programming language to learn first?

(2) Which computer programming languages would most likely provide employment opportunities for the foreseeable future?

This page represents an ongoing attempt to answer the second question. The ongoing analysis regarding which programming languages might be ideal for serious beginners is documented on a related page.

Here’s what I’ve been able to gather from a bit of recent research: a few of the top computer programming languages for the foreseeable future as far as I can tell, along with a bit of reasoning…

Programming languages of the future: Top choices so far

Java

logo - Java programming language, Sun MicrosystemsJava is extremely popular, meaning there will be lots of support needed for the foreseeable future. At present, Java is the #1 language in terms of the actual number of developers. Java is the language of the Android mobile operating system. Java ranks No. 1 on the TIOBE Programming Community Index for August 2011, as it has for many months. (According to the TIOBE stats posted on 8/8/2011, number 1 ranked Java had almost 4x as many searches as the number 4 ranked PHP. Java is incredibly popular.) [ Java training courses on Amazon ]

PHP

logo - PHP web/computer programming language

PHP is a top choice for web development and corporate applications. PHP is good for freelancing. PHP is ranked No. 4 on the current (August 2011) TIOBE Index.

PHP is high on my list because of previous web experience which should serve as a good foundation for a possible career or freelancing in PHP-oriented web and application development.

Python

logo - Python computer programming languageDynamic languages, especially Python, are being used to create cloud applications on frameworks such as Django. The Google App Engine is built with Python and originally only supported Python. The advantage of Perl and Python over PHP among the dynamic languages is that while PHP is a Web-only, server-side language, Perl and Python are both general purpose languages with usage in multiple industries, from aerospace and defense to sciences and to financial to hi-tech. Python is ranked at #8 on the most-recent TIOBE index. [ Python training courses on Amazon ]

JavaScript (along with CSS and HTML)

JavaScript is the language of the Web. It powers all of the popular Web browsers and that says it all. Recently, JavaScript has been ranked at #11 (July 2011) and #10 (August 2011) on the popular TIOBE Index.

JavaScript is on my short list for the same reasons as PHP: previous web experience might serve as a good foundation and head start. I already know HTML very well and CSS fairly well.

Poll: Vote on the best programming languages of the future

Please vote for the programming languages you believe will be among the best to learn for the purposes of future demand, future job security, freelancing, etc. The poll appears at the end of this post. (A separate poll is being created for the the best programming language for serious beginners.)

[ Please vote for up to three programming languages ]

TIOBE programming community index

The TIOBE programming community index is an ongoing monthly ordered list of the top 20 computer programming languages. The order of the programming languages is based on the frequency of web searches for the given programming language including Google, Google Blogs, MSN, Yahoo, Wikipedia, and YouTube. For example, the top 12 programming languages on the current TIOBE list (as of August 8, 2011) are:

  1. Java
  2. C
  3. C++
  4. PHP
  5. C#
  6. Objective-C
  7. Visual Basic/Basic
  8. Python (Python training courses)
  9. Perl
  10. JavaScript
  11. Lua
  12. Ruby

Technical background as a deciding factor

Obviously, one’s own technical/IT-related experience and knowledge will be at least one of the factors in deciding upon a programming language to learn for the purposes of future employment or freelancing.

The technical portion of my own background includes heavy HTML/XHTML coding, some CSS, and a little scripting (ColdFusion, JavaScript, ASP.net, PHP, and a few others). My actual programming experience is limited to BASIC, which I learned to use fairly well (many moons ago).

I have been involved in designing and modifying websites for just over a decade now. Although I’ve considered learning related programming languages such as JavaScript and PHP at various points along the way, I never did focus on programming for an extended period of time outside of ColdFusion. However, for the last couple of years I have been concentrating on what I love to do: writing-related tasks such as creating content, content-oriented SEO (search engine optimization), and other services that involve writing.

Conclusion

I’m still thinking about it. If I were forced into a decision today, I’d move toward Python (as my first language) and PHP (for my egg-laying goose in freelance programming).

Considering my background of delivering various web design and content related services, the most logical programming language for me to learn would be among those most closely related to web development. Programming languages most closely associated with web development include PHP and JavaScript; however, this is a growing category as web server standards become increasingly inclusive. I am still researching these things and will decide this after I’ve started learning my first programming language (either C or Python).

What is the best computer programming language to learn first?

A couple of programming languages keep coming up in current articles, forums, and posts as being the best “first programming language” for resolute beginners – for those who have decided they want a future programming career… programming languages that many believe best teach programming concepts… excellent foundation for learning additional computer programming languages in the future… [ read more ]

Resources: Best programming languages to learn for the future


Significant updates to this info occurred on:
Thursday, August 04, 2011
Monday, August 08, 2011
Monday, August 15, 2011
Thursday, August 18, 2011
Jump back to the top


Which programming language(s) would be best to learn in terms of demand, job security, etc. for the next decade or so (up to 3 choices)?

View Results

Loading ... Loading ...

Jump back to the top

[ Another poll: What’s the best programming language for serious beginners? Cast your vote! ]

24 thoughts on “Best computer programming languages for the next decade

  1. Harold

    OK, you’re postulating that the “Best computer programming languages for the next decade” will all be from a list of languages that are fairly well established today, with many of them already super popular???

    Well, at least you included one functional language (F#) although it’s trapped in the Microsoft ecosystem. Which brings up one of my objections: which, if any of these languages, is going to be really good at programming large, multi-processor SMP/cNUMA applications (the multi-core “future” that is here today)? With the possible exception of F# I don’t believe any of your list has a good story there.

  2. D

    What kind of a list is this, a quick glance shows that it is missing Ruby, SAS, and R, so I wouldn’t have much confidence in the results of the poll.

  3. Stephen Post author

    Stephen’s reply to comment from Gess@sj.com re: Poll for best programming languages for the future

    Hello Gess,
    Thank you for taking the time to leave a comment regarding the poll for the best programming languages for the next decade/ near future. Even though the list may not have contained some of your preferred computer programming languages, I hope you voted, anyway!

    Rather than being overly verbose and creating a lengthy reply here, I made a new post out of it (and was overly verbose there!). Please see the post dated Oct. 13, 2011: More on the poll: Best programming languages for the next decade.

    Thanks,
    Stephen Frasier

  4. Pingback: More on the poll: Best programming languages for the next decade |

  5. D

    While searching the web for information on programming languages I came across your response to my comment and was surprised to find such a detailed response in so short a time, thank you.

    I agree with your comments on SAS being a specialized language and with your comments on Ruby which maybe should have been included (although I don’t know much about it as a language).

    R is a language that has dramatically increased in users and modules over the past 3 years. While many do use it for graphing and statistical stuff, my understanding is that it functions very well as a general purpose programming language and can do many of the things that can be done in Python. It is also supposed to be flexible and powerful. There are now so many modules available that there is probably something for anything one could want to do. I haven’t heard anything about web development though, so you are probably right that it wouldn’t be a choice for someone interested in that. I am going to choose a language to learn and am trying to decide between Python and R. I also heard about Ruby recently from a friend but don’t know much about it.

  6. Stephen Post author

    I appreciate it! I’m glad you weren’t put off by my ridiculously long reply! After seeing that, it’s probably not too surprising that I absolutely love to research and write, and as a result, I can almost always snag top Google rankings for whatever content I’m hired to create and implement. If I could just learn not to give my work away for next to nothing, I might be able to afford some nice things!

    Thanks for your comments. BTW, can you happen to recall how you first came across the content here? If it appeared within Google search results, we’d love to find out what keywords/search terms you used and how we ranked. If not, no big deal.

    Python came out the winner in the majority of discussions, articles, and conversations about the best “first” programming language. Even M.I.T. recently started using Python instead of C to teach their introduction to computer science courses. That’s definitely a strong selling point! I’ve written posts about all that; should be easy to find.

    Take care,
    S

  7. Stephen Post author

    I also meant to comment on what you said about the R language. Honestly, your mention of it was my virgin exposure to the R programming language, so I know nothing about it, other than what you stated – which, BTW, sounds quite interesting and definitely worth looking into. The more I learn, the more I realize I don’t know. (Isn’t that a bitch?) :)
    Thanks,
    S

  8. D

    I don’t remember exactly what I searched but your response was on the first page on Google, I think around the middle, the search term was probably something like best computer programming language. I’m pretty sure I limited the search to the past year. I might have used r or python in the search terms. Definitely when I was searching on r vs. python in a later search your comment/article came up.

    Decided to go with Python for now since it seems more flexible for most things (including web) but if I get into any heavy duty data analysis I can use R.

  9. Ed

    As a programmer, it’s important to be well rounded – you can’t just pick ONE language.

    For web, you need to know HTML & CSS from memory (note these are not programming languages, they are markup). To go along with that, you need to know javascript for client-side scripting, as well as a server-side scripting language ( PHP for open-source, C# or VB for Microsofts .Net suite)

    It’s also good to be familiar with an object-oriented language like Java or C++ (they are similar), as well as know about C and memory management and garbage collection.

    Finally you need to be familiar with a variety of database systems, and need to know how the theory of creating normalized relational databases, as well as how to use SQL to write efficient, complex queries from memory.

    There is no one best language anymore, you need to be good in all areas so that you can quickly adapt and be prepared to use the best tool for whatever task you are facing.

  10. Stephen Post author

    Very few people take the time to leave even a brief comment, so I really appreciate your words. It’s nice to hear that this information helped someone; you wouldn’t believe how much time it takes to blog. I hope you’ll return. Good times!

  11. SimonV

    Hello

    I have just read this article and I see a lot of similarities with the situation I’m in atm. These last couple of weeks , I have been reading about the “future” of programming and such. Most, if not all , languages tend to evolve from other languages, taking the “best” bits from others etc. ,evolution. What I have learned so far is that is that functional, parallelism and OO – programming will be the key. The biggest discussions around are, which part will be most dominant. Key languages keep popping up as the main ones with properties that work and will be built upon (and some cases are evolving as we speak). Main mentions are Lisp, C , Smalltalk as being building bricks for the future. Others are also mentioned, with some of them being derivatives of before mentioned, such as Scheme ,Self , F#, R , D etc, there are quite a few.
    All this is for the future, not yet, and it’s only theories, but .. they are based on the trends now and on what’s needed. And I mean trends in what direction they are moving, not which language is most popular now.
    My personal situation puts me here , where I want to choose something for an interesting hobby. And maybe use it for some fun freelance stuff :) I have started to look at Lua and io , last mentioned is a very young language based on Self, Lisp and Lua and some others, which is dynamic and strong typed. Lua based on Scheme , C++ among others is very lightfooted , easy for a beginner ie. me :) I would like to experiment on back-ends etc on web servers, due to its speed compared to python, ruby, perl etc . But only problem is that there aren’t many lib’s etc for server stuff , yet. It is a younger project for web use, while it’s infamous in the games world, for it’s speed , configurations and size. A I said before, it’s just a hobby so far :)

    Cheers

    PS. Sorry for my English, it’s not my native tongue, and not for using more techie lingo. I wouldn’t understand it anyway.

  12. Dot What

    It doesn’t make sense to include “.NET” as a language, as it is really more of a software framework or software platform. Languages such as C#, VB.NET, and F# have been designed to run over the .NET software framework, which is akin to the Java virtual machine and supporting libraries.

  13. Pingback: languages of computer programming

  14. Brian Hogan

    Computer languages are a joke. Trillions of dollars of the worlds economy rests on a Babel of murky polyguttarlisms. No language designer ever gets it right. Why? Because very small groups of people are just not smart enough ever (especially a group of one) – to put together a language that rocks. Large groups end up with GoDart!
    Tiny very smart groups end up with J or the latest Lisp. Programmers design languages for programmers without basic “efficient” array constructs. Who needs arrays…. Scientists design languages with array constructs but end up sucking the sugar right out of the language. Who needs sugar….

    The biggest stupidity is not making type checking optional but effective if it becomes worthwhile. Some languages have that but they suck anyway.

    My guess is that in around 10 years design specific languages enabled by enabling languages like Nermele will dot the landscape to the point where end users are finally doing their own maintainable and cost effective programming. JetBrains is banking on that. Those Eastern Europeans are very smart.

    Eventually you will be able to design your own SEO specific language. The problem is that you won’t be the only one.

    The only language on the planet that is not a joke is Livecode because it actually is written to allow “hobbyists” (and professionals) to write Terse, Easy to read, Efficient, Very useful code for a Wide range of uses. Once the company offers a single stack round trip web solution I will buy in. Currently Livecode is unique and isolated because it dares to be extremely readable and powerful at the same time. Programmers as a hivemind going concern are really good at supressing anything which might cut into their paycheck.

    The other language which is not quite not a joke is Opa.

    The world’s code base is a junk heap.

  15. Pingback: Blog #8 | Weblog for MIS 4153

Add your two cents here