Web
Article

What’s the Best Programming Language to Learn in 2016?

By Craig Buckler

Craig’s Best Programming Language to Learn in 2015 article was a huge hit, and in this article he offers a fresh perspective on the programming landscape in 2016.


It’s the start of a new year, so it’s natural to start thinking about your future life and career choices. I’ve been analyzing ‘best language’ statistics for several years, and we’ve seen reporting systems rise and fall. GitHut — one of my favorites — has not been updated since 2014. There are still a few around, so let’s look at the most recent data.

Versioning. A slightly sarcastic daily email for discerning web people. Sign up today!

TIOBE Index, January 2016

TIOBE’s latest report assesses the popularity of programming languages using the number of skilled engineers and search engine rankings. The results:

  1. Java
  2. C
  3. C++
  4. C#
  5. Python
  6. PHP
  7. VisualBasic.NET
  8. JavaScript
  9. Assembly Language
  10. Ruby
  11. Perl
  12. Delphi
  13. VisualBasic
  14. Swift
  15. MATLAB
  16. Pascal
  17. Groovy
  18. Objective-C
  19. R
  20. PL/SQL

TIOBE states their chart is not an indicator of suitability or the number of lines written. Some languages rise because they’re still used and are relatively older than others. There are a few surprises: is VisualBasic still popular? It’s rarely used by professional developers, but it could be that many people use it for simple ad-hoc applications. That said, I don’t know of anyone who’s used assembly language for many, many years?

DevPost Student Hackers Report, January 2016

The DevPost report analyzes the work of 13,281 students participating on almost 10,000 projects during the 2014-2015 academic year. The results show technologies used, although it’s intermingled with programming languages:

  1. HTML/CSS
  2. JavaScript
  3. Python
  4. Java
  5. C/C++
  6. PHP
  7. Objective-C
  8. C#
  9. Swift
  10. JSON
  11. Ruby
  12. XML
  13. Ajax
  14. Shell
  15. Processing
  16. Lua
  17. CoffeeScript
  18. Go
  19. MATLAB
  20. OpenGL

The results mostly highlight what students are working on in their spare time. The projects tend to be dominated by native apps, embedded micro-controllers and wearables, which can be fairly niche technologies in the business world. In addition, these are languages the students wanted to use. Whether they were viable or pleasurable is another matter!

Learn to Program Today!

I’m going to state this clearly. Again:

never choose a language from survey results

It would be like choosing to live in a particular town because it has a higher population than others. These statistics are interesting, but they don’t help you pick the most appropriate language for your situation, project requirements or career objectives.

Forget choosing a language and start coding in something. It doesn’t matter what you choose. Learn the basic concepts and the majority of other languages become just an alternative syntax.

…but Don’t Expect to Become Proficient Immediately

Developers often make coding look easy — but anything seems easy once you’ve learned it. Unfortunately, our industry has a tendency to underestimate the challenge.

Have you ever seen books or courses titled “Learn Aeronautical Engineering in 21 Days” or “Bridge Construction for Idiots”? Of course not, yet good developers will spend just as long learning their craft. The primary difference is that development has a lower barrier to entry, and you’re less likely to hurt anyone with shoddy code … unless your software is used to design aircraft or bridges!

Coding is difficult. You’ll be able to create a few simple programs within days, but you’ll need many months’ knowledge to confidently tackle a large application. Most professional jobs require several years of solid experience. Even then, you’re always learning. We all look back at carefully constructed programs developed six months ago and think “who wrote that nonsense?”

Can You Become a Developer?

Absolutely — but relatively few people will. If the job was easy, developer demand would never exceed supply. However, I do not believe developers are born with innate coding skills. Anyone can learn to program. Just like anyone can learn to play the guitar or speak Japanese … if they’re prepared to put the effort in.

The key is passion. If you’re excited about seeing your name on-screen or moving a green blob from one point to another, programming could be for you. The best developers are motivated by tasks and are mostly self-taught. Education, books and courses will help, but you only learn coding by doing it.

Where Should I Start?

SitePoint is primarily a web development resource, but the web is a hostile environment for beginners. Even if you concentrate on client-side development, you won’t get far without some knowledge of browsers, HTML and CSS (they’re not programming languages and are considerably more quirky!) Here are solid introductions to HTML and CSS from our Premium content collection.

Native OS development in something like Java or C# isn’t much easier. There may be fewer dependencies, but many novices are bamboozled by the IDEs and tools required to get going. A lengthy compile step — which translates your code into something the computer can understand — isn’t conducive to learning.

An interpreted language such as Python, Ruby (we have a great intro) or JavaScript (in Node.js) (ditto) may be a better option, but some are daunted by the command line. It’s also difficult to create anything graphically interesting to hold your excitement.

Modern development environments are complex, and the initial learning curve is steep. I’m showing my age, but I consider myself fortunate to have learned coding on a ZX Spectrum in Sinclair BASIC. The choice was limited — as was the memory and capabilities — but it allowed me to grasp the basics (of BASIC and coding) without getting bogged down in a stack of related technologies.

We’ll never return to the simpler 8-bit days, but there are a number of BASIC environments which could help introduce you to the concepts of code structure, variables, looping and branching, e.g. Basic for Qt, SmallBasic, Basic256 or the ancient QBasic. Snobbier developers berate BASIC because it can teach bad practices, but writing a few lines of terrible code will teach you more than writing none.

Can I Become a Great Coder?

Yes — in time. The best coders go through several phases on their programming journey:

  1. The “I know nothing” phase
    Everything is new, nothing is easy.
  2. The “it’s starting to make sense” phase
    You’ve written a few programs and are making fewer mistakes.
  3. The “I’m invincible” phase
    Your confidence matches your competence. No challenge seems too difficult.
  4. The “I know nothing” phase, part II
    The sudden realization that development is infinitely more complex and you begin to doubt your own abilities.
  5. The “I know a bit and that’s OK” phase
    You have decent coding skills but recognize your limitations and can find solutions to most problems (even if that means hiring another developer).

In my experience, the primary difference between good developers and great developers is curiosity. A great developer is never content to glue pre-written components together. They want to understand how things work. Completing a task in the quickest possible time is of lesser importance.

Consider writing your own libraries before using someone else’s work. For example, write your own JavaScript DOM manipulation functions or PHP database connectivity objects. Using jQuery or an ORM will allow you to produce something faster, but understanding the underlying technology is invaluable. Code re-use becomes increasingly important, but don’t be afraid to delve deeper while you’re learning.

Finally, never be afraid of picking the wrong language … there are no wrong ones. There are those that aren’t best suited to a specific project, but you’ll only discover that by trial and error. Pick an interesting project, choose any language and get going.

Best of luck!

Here at SitePoint, helping people learn web development is kinda our thing. If this article has sparked a passion to get learning, head on over to SitePoint Premium and start your journey with us!

  • http://innovationindustry.in/ seocompanyinindore

    Great information you shared here! Newcomers always face this kind of problem of choosing an all in one programming language, but it depends upon too many things.

  • http://innovationindustry.in/ seocompanyinindore

    Great information you shared here! Newcomers always face this kind of problem of choosing an all in one programming language, but it depends upon too many things.

  • http://innovationindustry.in/ seocompanyinindore

    Thanks for the information! It is wise to master one language first and then going after others.

    • Craig Buckler

      Few ever become a “master”! Understanding the syntax is a small part – you’ll never know everything.

      It’s sensible to become familiar with one language while you’re learning, though. For example, JavaScript has a few dozen core statements which you can understand quickly.

      Implementing and creating your own algorithms is the toughest concept but the techniques are similar in most languages. Stick to a single syntax in the early days so you can concentrate on more challenging tasks.

  • Alex

    I do think you could have mentioned that alot of languages, especially OOP languages, have these concepts and techniques that can be shared through different languages. Take design patterns as an example, they can be used in many languages. Even tho the implementation can differ slightly.

    • Craig Buckler

      Isn’t that exactly what I said?!…
      “It doesn’t matter what you choose. Learn the basic concepts and the
      majority of other languages become just an alternative syntax.”

      • Jude Hariot

        Greetings. I am new to programming, and don’t have a spec experience in it. Think of my brain as a blank sheet of canvas if ever you wanted to look at the programming experience i might have. Therefore, i would humbly like to ask on your opinion on how best a beginner should start learning to program. How would you recommend i should go about and as you said,
        ” “Learn the basic concepts and the majority of other languages become just an alternative syntax.” “? I would be forever grateful if you could take a moment from your valuable time, to instruct me on this. Thank you

        • Craig Buckler

          The best way to learn programming: start doing some!

          • Jude Hariot

            Sure that’s true but what i’m really asking is which language would be the best to start with. May i assume that its like math, where you start off with some basic elementary arithmetic and move on to some algebra, then pre-calculus, before taking on calculus and maybe later on some pure mathematics. Thank you

          • Craig Buckler

            The point this article makes is that it doesn’t matter. Use anything: most languages have the same fundamental building blocks. Yes, you start with the basics and progress but they’re the same whatever language you use.

            No language is necessarily more “advanced” than another but choose one where you can find plenty of help and it’s easy to get going. For example, I’d avoid Android/iOS development to start because the steps involved in running code could slow you down.

            Find a simple problem and solve it with a program. You could choose a wholly inappropriate language but you’ll learn more discovering that out than fretting over choosing the “right” one.

          • Jude Hariot

            Great! Thank you so much. Will get started as soon as i’m able. Cheers.

  • martinczerwi

    The best programming language to learn becomes an increasingly difficult question to answer, the more you know about programming. I kind of envy the aspiring coders, getting into a language with a fresh mind, not confused by other languages’ paradigms/styles.

    I remember learning Pascal, and years later PHP without any pressure from outside, just for the sake of it. That was kind of fun, though I never thought I could make a living out of this. This I’d recommend to every new learner: Don’t do it for the money/career. Those things will come naturally if you stay on track.

    • Craig Buckler

      Totally agree, martinczerwi. I don’t know of any (good!) professional developers who didn’t start programming just for the fun of it. Those who enjoy it will eventually migrate toward a well-paid career. Those who don’t will find another niche.

  • Thomas Loyd

    Craig, I always like reading these posts and really enjoy them because they are good pointers for those who want to know what languages may be of interest or worth learning. Well, I’m going to throw in my $.02 into this. Honestly, I believe people should learn about databases and SQL first because just about everything is going towards backending data into databases. Once you learn that, then I would suggest that they cut their teeth on another language that plays with it in a web environment (PHP, Python, Ruby, CFML, ASP.NET, etc) so that they learn from the backend forward. Of course, the best thing about Sitepoint is that there are soooo many resources here to get started such that people shouldn’t have any excuses about not having any online resources. Plus, I everyone here is rather quite friendly and all about helping out with those who are learning or starting up. I’ve been lurking here for more than a decade and all I can say is positive things about Sitepoint and all that they sell and do.

    So, bottom-line, pick your path and commence with the learning and I’m suggesting SQL and databases first! Then pick something else and refine your skills! You really don’t have any excuses!

    Oh yeah, awesome article as always Craig!

    • Craig Buckler

      Thanks Thomas – appreciate the feedback.

      That’s an interesting suggestion but did you learn SQL first? From a purely logical perspective it makes sense; learn about data storage and manipulation before adding business functionality and UX. But…

      1. SQL is tricky – even for seasoned developers. It’s not a typical language (although stored procedures and triggers come close) and there are many concepts to understand before you get going.

      2. When starting to code, you won’t appreciate the need for a data store when writing simpler programs.

      3. What would hold your interest more: a SQL query which proficiently extracts data from two joined tables or watching your name bounce around the screen in different colors?!

      With hindsight, developers may agree that learning SQL first would have been practical. However, how many would have become developers if they had to learn SQL first?…

      • http://olivierpons.fr Olivier Pons

        First learn databases, principles, then try SQL. And then learn a programming language (whatever it is).

        Databases are the foundation of **all softwares**.

        • Craig Buckler

          No they’re not! You can write a program without a database or indeed any storage, e.g. a game which doesn’t retain high scores or settings.

          I don’t agree you should learn SQL first. It sounds sensible but it’s like trying to build a car before you learn to drive. Have fun driving first and you’ll appreciate how to build a better car…

          • http://olivierpons.fr Olivier Pons

            “A game which doesn’t retain high scores or settings.”. This cant exist (except for fun) nowadays.

            To be fair, SQL is not an actual programming language, it’s a “Query Language”.

            You’re right in a sense: having fun is the most important thing. But the main problem is that you dont have fun anymore when you have to rewrite your database because it’s badly designed, you dont have fun anymore when you have to rewrite all your queries, and you hate your job when you have to rewrite all display because you dont have those column anymore and the informations about some datas are organized another way.

            FMHPOV: data is the most important thing. Have fun, ok, but you have to learn right after, quickly, how to handle properly data and how to do a good database design (which implies SQL knowledge).

            And last but not least: if you have a very good database designed, you can display it with EVERY language you want: JavaScript, Python, Delphi, C, C++, Php, even (I did it) in 3D with a Unity 3D app and JSON queries.

          • Craig Buckler

            Games are supposed to be fun! But I’ve written plenty of apps, websites and utilities which didn’t require a database. Few were commercial grade but they didn’t need to be.

            No one’s saying properly-structured databases aren’t important (even if you’re using NoSQL). But it takes years to gain that knowledge. Most developers would admit to struggling with SQL and no database is ever perfect because things inevitably change.

            Your applications become better with one thing: experience. That’s experience of development languages, UIs, data storage options, OSs etc. You have to start somewhere but I don’t know of anyone who chose SQL! I’m not convinced they’d want to be a developer if they did…

          • http://olivierpons.fr Olivier Pons

            You’re right. Perfectly right. SQL is not for beginners. I just think its importance (with datas) is underestimated.

          • Craig Buckler

            Games are supposed to be fun! But I’ve written plenty of apps, websites and utilities which didn’t require a database. Few were commercial grade but they didn’t need to be.

            No one’s saying properly-structured databases aren’t important (even if you’re using NoSQL). But it takes years to gain that knowledge. Most developers would admit to struggling with SQL and no database is ever perfect because things inevitably change.

            Your applications become better with one thing: experience. That’s experience of development languages, UIs, data storage options, OSs etc. You have to start somewhere but I don’t know of anyone who chose SQL! I’m not convinced they’d want to be a developer if they did…

        • R M

          “Databases are the foundation of **all softwares**.”

          Completely wrong…

          • http://olivierpons.fr Olivier Pons

            Without any valuable argument your comment is useless.

          • R M

            Indeed, you are completely correct! Without any valuable argument your comment is useless.

          • http://olivierpons.fr Olivier Pons

            Acarat. Pretassur. Cogofly. Ergofip. Iwn. I’ve made all those things in either Delphi, C, Php, Python. Different languages, different method. Always one problem in the long run: database design.
            On the contrary, give me some examples of programs made for big companies that doesn’t need at all a good database design.

          • Craig Buckler

            Of course DB design is important and if you really want to learn SQL first then go for it. However, I think there are better options for novice developers which will hold their interest for longer. Similarly, I’d suggest you learn the basics of HTML and CSS before attempting JavaScript. Learn stuff which gets the biggest results first. Put it this way: you can create a useful application without database knowledge. Could you create one if you only knew SQL?

            Examples of programs made for big companies? What you’re actually asking is: name some database-driven applications which don’t require a database! However, there are big programs which (primarily) don’t use a (standard) DB? Windows. Linux. Mac OS. Microsoft Word, Excel, PowerPoint, Visio. Abobe Photoshop. Call of Duty. Grand Theft Auto. Sublime Text. Atom. Any browser.

          • R M

            Windows 10. Google Chrome. Photoshop. Tetris.

          • http://olivierpons.fr Olivier Pons

            If you think none of those programs dont need good database design I’m off because I’m loosing my time.

          • R M

            What the hell are you talking about?

          • http://olivierpons.fr Olivier Pons

            I’ve asked: “give me some examples of programs made for big companies that doesn’t need at all a good database design”.

            You answered: “Windows 10. Google Chrome. Photoshop. Tetris.”

            Then I said “If you think none of those programs dont need good database design I’m off because I’m loosing my time”.

          • R M

            And then I asked “what the hell are you talking about?”. Well?

          • http://olivierpons.fr Olivier Pons

            I was saying that if you actually think Windows 10, Google Chrome, Photoshop and Tetris dont need a good database design I will stop loosing my time (a thing I’m doing right now actually…)

          • R M

            Why on Earth do you think Tetris has a database?

          • http://olivierpons.fr Olivier Pons

            Keeping track of any data means creating structures to store them and code to do CRUD and ACID properties. Whatever the program is, is always has to store datas one way or another, and to read them. I dont know how to explain it better than what I’ve done…

            And nowadays if you want to be a developper you just have learn SQL.

          • R M

            A data structure is not a database.

          • Craig Buckler

            Almost every application needs data and structures but it doesn’t follow that it needs a standard database or that SQL is a necessary prerequisite. Most of these structures are custom-written for the task in hand.

            No one is saying databases aren’t important. Data structure design is a vital skill for any developer but it doesn’t follow it’s necessary for every application. How many command-line apps use a DB?

  • grant parks

    THIS! “In my experience, the primary difference between good developers and great developers is curiosity. A great developer is never content to glue pre-written components together. They want to understand how things work. Completing a task in the quickest possible time is of lesser importance.” I’m very weary of devs who are so proud of doing configuration work.

  • gazugafan

    It’s 2016, actually… not 2005 or 2015. And github is a perfectly fine measure, but will of course be skewed towards open-source projects and technologies. They used githut last year, but it’s out of date now. Using number of repositories would also skew the results towards languages with lots of small projects instead of fewer larger ones. There are pros and cons with all of these approaches, but Java and C/C++ are still super popular no matter how you slice it.

    • http://www.unitedworx.com Paris Paraskeva

      the article referers to 2015! not merely a month in 2016.

      Dont have a problem of java being there! dont forget that its used for android app development! But c and c++ are the languages people most used in 2015? measures are seriously wrong!

      • Craig Buckler

        The data has been collated during 2015 and remember they’re world-wide statistics. The survey methodology is described on the TIOBE website.

        I don’t believe the figures are wrong – they just don’t match your experiences and presumptions. But they won’t match anyone because they’re averages and can never account for an individual’s country, industries, etc.

        • http://www.unitedworx.com Paris Paraskeva

          on the other hand i believe they are severely wrong! What exactly do you think programmers were developing in 2015 and they were using c and c++? Any programmer that graduated the past 20 years will mention c or c++ on their cv since surely they were taught these languages back then. This does not mean these languages are widely used in 2015 and hence popular! Anyhow my own personal opinion is that Tiobi index does not represent the real world! :)

          • Craig Buckler

            Almost every game (including some browser-based ones) is written in C++. As are a considerable number of professional desktop applications and embedded device software. And don’t forget education and legacy software which is still being maintained.

            C/C++ has never been popular on the web but it’s still used.

          • BuckRogers

            Ya you’re right. I mean most of us aren’t banging out C code.. but it’s definitely indispensable. Linux, CPython, CRuby are written in C. I think Windows is written in C++ and probably the .Net CLR and various JVMs. Then there’s Rust that Mozilla’s new browser is being written in, and more in line with C/C++ than higher level stuff.

            I never really stuck with C when I’ve looked into learning a bit but if one has the desire to get beyond webapps and applications, C is the next stop and there really isn’t a crowned replacement yet or even anyone really gaining what could be considered “ground” on it.
            re: TIOBE is measuring many factors, including “lines of code written” over time and search queries. It’s pretty much accurate, C and C++ are still going to be long on those metrics, especially counting historically.

          • Craig Buckler

            Thanks Buck!

            While I stated that C/C++ was not popular on the web, without it, there’d be no web! It’s used for operating systems, web servers, browsers, language runtimes and more.

          • BuckRogers

            Ya you’re right. I mean most of us aren’t banging out C code.. but it’s definitely indispensable. Linux, CPython, CRuby are written in C. I think Windows is written in C++ and probably the .Net CLR and various JVMs. Then there’s Rust that Mozilla’s new browser is being written in, and more in line with C/C++ than higher level stuff.

            I never really stuck with C when I’ve looked into learning a bit but if one has the desire to get beyond webapps and applications, C is the next stop and there really isn’t a crowned replacement yet or even anyone really gaining what could be considered “ground” on it.
            re: TIOBE is measuring many factors, including “lines of code written” over time and search queries. It’s pretty much accurate, C and C++ are still going to be long on those metrics, especially counting historically.

  • Craig Buckler

    As gazugafan pointed out, using GitHub is one way but results will be skewed however you analyse it.

    Java remains “popular” because it’s relatively old, used in education, cross-platform and adopted on the server, desktop and many mobile apps. Yet JavaScript is used in billions of web pages and thousands of projects (including Java ones) – why is it lower?

    TIOBE analyse job vacancies and resources. A Java job will normally be advertised as such. There are JavaScript jobs but many will advertise for front-end developers or Angular/React/jQuery/insert-framework-here specialists. PHP roles are similarly drowned in WordPress/framework adverts.

    As I regularly point out, don’t take surveys or statistics too literally. Of course, Java remains popular but that’s not necessarily a reason to adopt it.

  • jimlongo

    Great article, thanks. However I have to disagree with the following statement, “However, I do not believe developers are born with innate coding skills. Anyone can learn to program. Just like anyone can learn to play the guitar or speak Japanese … if they’re prepared to put the effort in.”

    I do think it takes a certain innate skillset, logical reasoning, math, strategy . . . believe it or not there are a large number of people for whom those skills do not come naturally, and I wouldn’t recommend they try to become programmers.

    Maybe they can eventually prevail, but I bet they have another set of skills that they would be wiser to apply in another area.

    • Craig Buckler

      I agree some will find it easier. You’ll have a smoother ride if you can grasp mathematical and logical concepts without having a panic attack.

      But coders aren’t born despite what most people think. I expect you’ve heard this many times: “there’s Jim – he does computers” as if it’s some god-given mystical power.

      What they really mean is “there’s Jim – he spent many years learning IT skills and wasn’t prepared to accept computers as a consumer-only device. He read manuals and didn’t click YES on every pop-up. He might be able to solve my latest PC problem but that’s because he analyses the situation, isn’t afraid to try solutions, knows how to undo changes and can Google when necessary!”

      I still believe anyone can code just like anyone can solve differential equations. Some will take longer than others but whether they find it interesting is the biggest hurdle.

  • http://quran.2index.net/ Said Bakr

    In the second listing, how could they call HTML/CSS a programming language?! However, in the two listings, JAVA still the most popular high level programming language.

    • Craig Buckler

      As I mentioned, the DevPost survey shows technologies. Most are languages but not all.

      Java is at #1 in TIOBE and #4 in DevPost. JavaScript is not Java!

    • Mussaddiq Husain

      Now a days there is SAAS and LESS.where you can make a programme of css also.So now we can’t say that css is not a programming language.

      • Craig Buckler

        Well, we can. Even Sass and LESS have fairly limited programming constructs. But developers often equate “it’s not a language” with “it’s easy” and that’s a big mistake. Cross-browser CSS has given me some of the hardest development challenges I’ve ever dealt with!

  • Maciej Stankiewicz

    If you are not developer willing to learn how to code, Processing or similar tool would be a good starting point. Fast visual feedback will motivate the progress.

  • Jef Mari

    Great Article as Always From Craig!
    All in all, Picking language will always depend on what projects needs and what suit for it.
    But in my Opinion, You will excel in a language if it makes you happy and gives you thrill every time you code using it and for me, that’s the language suites me! hehe

    • Craig Buckler

      Thanks Jef. What language makes you happy? Thinking back, the only one which made me miserable was C++ … but that’s only because I was forced to use it at university and didn’t understand OOP at the time.

  • Ryan Hellyer

    Assembly is not going anywhere anytime soon. I’ve never used it myself, but it is still used quite heavily for low level development and presumably will be forever unless a viable replacement crops up.

  • Chirrazz

    Was Swift considered?

  • BuckRogers

    I like Python and it’s what I use. I agree, just using whatever is focused on what you want to do. If you’re a kid who loves his iPad and is dying to make iOS games? Swift. If you’re absolutely fascinated by distributed networking tasks as I am, Elixir. If you’re just fascinated by programs and computers in general, I say Python as a default. I always felt comfortable with it.

    I came to this post searching on DDG for “is go becoming more popular? programming 2016” because I was trying to research if my hunch that the honeymoon period with Go was over or not. It seems to be waning a bit in popularity since a few years ago. Not much info out there.
    So I’m coming in as a random person searching for what is going to be ‘the’ language for those of us who already are programming. I never thought it was Go at this point, but wanted to see where it’s at with adoption.

    But I do think the hot platform for people like me will be Swift. Apple nailed the open source launch and there’s already a web framework out there to use. Other than existing solutions, 2016/2017 will be the years of Swift.
    Go/Elixir/Rust have an uphill battle (but may succeed), while Swift’s future is guaranteed with its developer base.

  • BuckRogers

    I like Python and it’s what I use. I agree, just using whatever is focused on what you want to do. If you’re a kid who loves his iPad and is dying to make iOS games? Swift. If you’re absolutely fascinated by distributed networking tasks as I am, Elixir. If you’re just fascinated by programs and computers in general, I say Python as a default. I always felt comfortable with it.

    I came to this post searching on DDG for “is go becoming more popular? programming 2016” because I was trying to research if my hunch that the honeymoon period with Go was over or not. It seems to be waning a bit in popularity since a few years ago. Not much info out there.
    So I’m coming in as a random person searching for what is going to be ‘the’ language for those of us who already are programming. I never thought it was Go at this point, but wanted to see where it’s at with adoption.

    But I do think the hot platform for people like me will be Swift. Apple nailed the open source launch and there’s already a web framework out there to use. Other than existing solutions, 2016/2017 will be the years of Swift.
    Go/Elixir/Rust have an uphill battle (but may succeed), while Swift’s future is guaranteed with its developer base.

    • boriscy

      Currently Elixir has got my attention, for web development it really kickass

  • EmTee

    Do you know whats wrong with Tiobe in January? Take a look to pos 15 of February :-) Nice blog
    post!

  • http://www.ManishMotwani.com Manish Motwani

    I can relate to the points here with my programming experience, Thank you Craig, very well explained.

  • boriscy

    This is advertising from some BOT

  • Dan M

    I would say the best way to pick a language is to first pick the platform that excites you first. Desktop, Web or Mobile. The reason I say this is because there is really no ONE language that expands all platforms. In the 1990’s it was simple because Web and Mobile didn’t exist. At least not the web as we know it today. Back then it was mainly Desktop so your choices were mainly C/C++, Pascal and VB, each having strengths and weaknesses. Today the development world is so vast you almost have to specialize. But even still, reading books and watching videos will only get you so far. You have to code a lot. Like going to the gym, you have to just do it.

    Now, you have to decide what kind of programmer you want to be. Regardless of language or platform, the way I see it, there are two kinds of programmers. People who CODE software and people who ENGINEER software. Big difference!! Coders, type stuff and slap together classes, functions etc to make it all work together giving very little thought to design and extensibility. Engineers, follow design principles like SOLID, understand state machines, recursion, dependency injection, think about making things generic and don’t just pick the latest tool or library that sounds cool. So there is the computer science aspect of programming which many people simply don’t want to learn because it’s boring or difficult to learn. Trust me, those “boring” (although exciting for me) computer science principles are really what makes development fun and challenging in the end. Focus on the science first and then the politics of what language to learn later. Over the course of your career you will work with many languages but the same science will always apply.

    -Dan

  • sabudrey

    C# , Java and Swift is not that bad to learn for beginners. It’s free IDE… Go to youtube or subscribe Lynda.Com. Just keep your hands dirty for a months or two then you will grasp the concept.

  • VB6 Programming

    You say you are surprised that Visual Basic is still popular. Don’t forget there is a huge legacy of applications written in the VB6 programming language still in use and still being supported. Apps written for Windows 95 and 98 still run on Windows 10. A Gartner survey said there were 14 billion lines of VB6 code still in use and it would take at least 10 years and cost $11 billion to replace it.
    And the almost identical VBA programming language is used in Microsoft Office (despite several attempts by Microsoft to replace it).

  • shroomdizzle

    Hello Craig,

    First of all, great article. I have to admit I am a bit embarassed I had searched “best language to learn 2016” and your site came up on google. I am a Systems Administrator which kind of seems like a running joke these days, looking to make a transition into a more development role and while I do have some experience with C# and Java, I am not at all confident in my abilities to go out in search of a job just yet.

    I was hoping you might have some tips for someone who has been in the industry for 10 years but is looking for a change. There is nothing wrong with the languages I have a bit of experience in, it’s more of a figuring out how to get experience. I’ve wrote quite a few apps, some interacting with DB’s some not, but at the end of the day I have no idea what I “should” be focusing on during these labs and end up just writing software that I enjoy using.

    Thanks again for the great article!

  • http://www.skooppa.com s.molinari

    It is disappointing you didn’t mention PHP in the section about interpreted languages, since it is more popular than Ruby. It is also gaining momentum with PHP 7 being released, as the latest TIOBE report shows, going from 7th to 6th place this year. And being PHP is purely for web applications, the fact it is so high overall speaks for its popularity. I’d even say, if you want to build a web application backend, PHP is a goto language.

    Scott

  • nouha queen

    i think the bestest is python and java

  • Tem B AZ

    this is the thing that i was looking for……….thank you so much sir

  • Mohammad Sharaf Ali

    I like reading blogs and sharing my knowledge and help others get their tasks done. I have read most of the articles on Sitepoint and they were truly mind blowing.

    Is there any article about where the technology/languages trend heading towards? And what one should now get equipped with?

  • Amandeep Gill

    hey guys, good post, though i didn’t get most of it. Honestly saying, i dont have any actual interest in learning coding. I just want to make some money on the side, and if its good, perhaps full time. I belong to a mechanical engg background and as of now, i have 0 knowledge of programming. Given the kind of education i had, my knowledge in my field is not that great either. And job prospects in here (north india) for the same field are even worse.
    So to sum up, i just want to learn a language that is relatively easier (online sources) and can fetch me decent amount of money. And i dont know where to start, and where to head? Any help will be of much appreciation.
    Thanks.

    • Craig Buckler

      You should give programming a go and see if you like it. Start anywhere – perhaps with a small personal or community project. If you enjoy the experience you’ll want to learn more and, at a certain point, you’ll become a viable developer. Work opportunities will follow.

      However, presuming a programming career will lead to riches is doomed to fail. No amount of training will make you love programming. If you don’t enjoy it, you won’t be motivated to learn. And why would you want to do a job you hate?

      • Chan Songha

        I read your comments it’s too interested about that…. what touch my mind is my real situation opposite with Amandeep Gill because I am not programming developer, coder or IT certificate, just business development field. most all the times i really like IT field, especially coding. The question is how can i become a coder or programmer while i am got middle of my ages. will i start from A-Z of coding again while i am too busy with my current job? will i can find a good job with it while many people expert to it? however, i trust my true feel i love it-coding, like to see your comments, thanks!

  • billegge

    Is the heading a technical question, or are you asking what is the most popular programming language?

    To answer the question, I would say Delphi.

    • Basil Tamimi

      if it was popular i wouldv already known about it (learning a language doesnt mean you need to say its the best)

      • billegge

        I can’t make sense out of what you said. You want to learn a language that is not the best nor popular?

        Some people want to learn a language to get a job, while others learn a language to get stuff done. The one pertaining to getting a job would fall into the “popular” category while the one for getting work done (as well as best for your environment) would be the “best” language. So, when you say it is neither popular nor the best then it makes no sense to me.

      • Ravi Maurya

        East or West,,,,,, C# is the best.
        I like c# because with this language I can make…. Android Apps, iOS apps, Windows Phone apps, Windows 10 PC apps, Win 32 software, HoloLens apps, Microsoft Band apps, Apple watch apps, Google Gear apps, VR apps and games, IoT device apps, and more. So C# is the best…………

  • Stephen Campbell

    Hi Craig. I used to be a programmer – 28 years ago (cobol, basic and rpg). I’ve developed some reasonably sophisticated applications using Excel VBA for the school at which I teach, where half the staff have PC’s and half have Macs. But with Microsoft dropping vba from their latest (2016) version of excel for Macs I’m wondering about rewriting these applications. I assume I could use VisualBasic.NET, running under parallels on my mac, but would you be able you suggest any alternatives?

    • Craig Buckler

      Hi Stephen. I guess it depends on whether you still need that application to run in a spreadsheet or not? You could look at LibreOffice which still supports VBA and other languages.

      If the application can run outside of a spreadsheet, you could consider anything I guess. I’d recommend a web-based app but I’m heavily biased! PHP, Python, Ruby or Node.js could be ideal?

      If you want a desktop app, VisualBasic.NET is an option although there are plenty of others.

      • Stephen Campbell

        Thanks for your reply Craig. I’m now investigating LibreOffice in the short term and web-based apps such as Python for the future

        • Craig Buckler

          You’re welcome, Stephen. That sounds like a good plan. Presuming you move away from office apps I guess it will also depend on the type of user and project, e.g. is it…

          a command-line only app for reasonably expert users?
          a web app which can be shared and used without install?
          a desktop app which requires a very rich interface?

          Most languages support command-line and web. A desktop app will require an IDE and could be OS-specific which limits the choices a little more.

          • KABALI RAJANI

            hi sir… this is rakesh.
            i have completed my gradution in 2014…i’m in confuse what to do….i’m interested in web development php… but i don’t no anything about maths, maths is important for php….i can do static(html,css).. can i learn now maths with age 25…everyone say’s i don’t no anything….
            some times i go depression…i dont no anything….everytime my mind say’s you have one option “sucide”… plz give reply sir….

    • Ravi Maurya

      East or West,,,,,, C# is the best.
      I like c# because with this language I can make…. Android Apps, iOS apps, Windows Phone apps, Windows 10 PC apps, Win 32 software, HoloLens apps, Microsoft Band apps, Apple watch apps, Google Gear apps, VR apps and games, IoT device apps, and more. So C# is the best………… Go with c#

  • Usman Ijaz

    Hi, Loved the article but the thing is that I have learned HTML/CSS and also done Java. Now I’m really confused if I should start with javascript or Android development. Please give me some advise for this,
    thanks.

    • Ravi Maurya

      East or West,,,,,, C# is the best.
      I like c# because with this language I can make…. Android Apps, iOS apps, Windows Phone apps, Windows 10 PC apps, Win 32 software, HoloLens apps, Microsoft Band apps, Apple watch apps, Google Gear apps, VR apps and games, IoT device apps, and more. So C# is the best…………

  • Ammar H Sufyan

    lol this is cool. You are the best. #Respect

  • KABALI RAJANI

    hi sir… this is rakesh.

    i have completed my gradution in 2014…i’m in confuse what to do….i’m interested in web development php… but i don’t no anything about maths, maths is important for php….i can do static(html,css).. can i learn now maths with age 25…everyone say’s i don’t no anything….

    some times i go depression…i dont no anything….everytime my mind say’s you have one option “sucide”… plz give reply sir….

  • ehsan akbari

    No, Java is always popular and the best. Nothing can replace it! :)

  • billegge

    I use Delphi for everything. It has benefits such as it does not depend on a VM to run, does not require dlls to be scattered about. The main reasons VM are bad (.net and Java) is because they pose a huge risk in bad VM configuration, version compatibility, security holes, and what is not supported in the future (your application lifetime). DLL’s are bad just because of deployment headache. Most applications don’t need DLL’s but I can understand if they do.

    If I write an application in Delphi, it will probably be ok in 20 years without a recompile. It is immune to .net configuration, immune to java security updates. It will take a lot of effort to break a program made in Delphi.

  • Alistair

    Hi great read, thanks.

    I studied Software Engineering in University, graduating in 2004. I mainly studied Java, and I was actually pretty good at it for a while there, getting top marks in my final exam and ‘team’ project, which I ended up completing alone!

    Until about two years ago I never looked at a line of code again. Then I started learning SQL basics and some PHP. I’m now pretty confident with Object Oriented basic concepts again within PHP and writing some complex SQL queries.

    My problem is I do not know what to do next. My job involves some statistics, but no programming bar some little stuff I made in VBA within Excel. I looked at Machine Learning but it looks totally overwhelming. Now I’m thinking is Andriod development something I should think about, maybe taking up Java again as a first step.

    If anyone has ANY advice on what I can do to maybe apply whatever knowledge I have towards developing something worthwhile and improving my career choices please let me know :-)

  • Ravi Maurya

    East or West,,,,,, C# is the best.
    I like c# because with this language I can make…. Android Apps, iOS apps, Windows Phone apps, Windows 10 PC apps, Win 32 software, HoloLens apps, Microsoft Band apps, Apple watch apps, Google Gear apps, VR apps and games, IoT device apps, and more. So C# is the best…………

  • Ravi Maurya

    I think you should go with c#
    East or West,,,,,, C# is the best.
    I like c# because with this language I can make…. Android Apps, iOS apps, Windows Phone apps, Windows 10 PC apps, Win 32 software, HoloLens apps, Microsoft Band apps, Apple watch apps, Google Gear apps, VR apps and games, IoT device apps, and more. So C# is the best…………

  • Craig Buckler

    You should have SQL in your armoury of development weapons. But I wouldn’t recommend learning it first and you won’t use it everywhere. Using your own examples:

    Firefox uses SQLite for history and bookmark storage but few Gecko developers will have touched it.

    Photoshop has it’s own internal data structures but I bet it’s not using a SQL database.

    Does vim use a DB? It can attach to a DB as a client but it’s not using the DB for it own purposes.

    Every developer on those projects may be a SQL expert but, unlike a development language, they won’t use it daily – if ever.

Recommended
Sponsors
Because We Like You
Free Ebooks!

Grab SitePoint's top 10 web dev and design ebooks, completely free!

Get the latest in Front-end, once a week, for free.