So all of this data is as of September 30, 2018, but it's also running over the last 5 years. So with each of these programming languages, we'll discuss where they rank now, where they ranked back in 2014, where I think they're going, and some general thoughts of mine about the language. For the most part, this is a pretty good guide for where you should put your focus. If you pick a language on this list, you'll probably have a pretty easy time finding a job. But before we get into the details of each language, here's the list:
Okay, now that we've spoiled the list, let's talk about them on a semi-individual basis. Some of these we'll discuss together either because of their higher-than-usual similarities or because of their shared space. Or both.
Man, talk about a fall from grace. Back in 2014, Ruby was ranked at #5. And before that, I'm sure it was even higher. This isn't surprising, considering how much it contributed to the world of web development as a whole. Ruby introduced the extremely popular framework, Rails, which really helped usher in a new era of web architecture. It helped popularize the idea of MVC with web applications, which will be mentioned a few times as we discuss the other languages on the list.
So what caused it to lose popularity? Well, it's not because the language itself went down the drain. It's really just how much other competing languages grew and gained in popularity. PHP has come a long way since then, Python got popular, so Ruby just had less room to grow in the web arena, which is where it was the most popular. Even Twitter, which was originally built with Ruby on Rails, was eventually rewritten in Java. But plenty of big companies still use it, so I wouldn't discount it any time soon.
As for where I think it's going to go, it's honestly hard to say. It could continue to decline, or Rails could come back with a vengeance and help it take back some of the market share. Either way, I don't think it will ever "die" as some people like to claim. Jobs with Ruby, however, are on the decline. So if finding a job in the industry is your end goal, then I would recommend learning a language higher on the list.
Python is a hell of a language. It's obviously super popular and has grown a lot over the last few years. Python's popularity is a sizable part of why Ruby has been on the decline. With frameworks like Django and Flask, you can build powerful web apps. And it's also pretty popular for AI. But it's not the best to get jobs with, and here's why. Python jumped from #4 to #3 a few years back and has stayed there for some time now. I expect this to either stay the same or possibly start to drop off. It all depends on how much of Python's popularity (if any) is up to hype rather than a genuine love for the language. I myself have a huge interest in the language but always reach for PHP for pretty much all my needs.
If you look for "Python Developer" jobs on indeed, you'll find close to the same number as say C#. But the thing is, a lot of them are in AI and data science, where you almost definitely need a degree to land the job. It's extremely easy to learn, which is why data scientists (where programming is a secondary skill) reach for it when they need to do some coding. But I'm not gonna go on much longer considering how much I've talked about it in the past.
I think Python will continue to grow, and may even outpace Java for general developer popularity. Either way, I think it's going to start leveling off pretty soon.
For the last five years, C has fluctuated between 7 and 9. It's the grandfather of almost all languages that are popular today, and definitely inspired every language on this list. It's used a lot with C++ (we'll talk more about that one later) and gets used for things like games or other software where performance is a HUGE deal. From Video Editing to building operating systems, C is very important.
C has ultimately declined over the last few years, and I'm willing to wager that it will continue to do so. C can be pretty difficult to master, so it won't be as popular as languages that read more like actual people language. It also has a (fairly) new competitor that some say (and I'm inclined to agree) could start taking C's place in some areas. That language is Rust. It is built to have the speed of C with the readability and ease of learning that languages like Python or Ruby have. That being said, C isn't going anywhere anytime soon.
C++ is essentially (for a high-level explanation) an evolved form of c. "C with Classes" is an explanation that's been used for years, but I'm not gonna bother explaining what that means in this post.
These languages will possibly, but not likely, fall out of the top 10, but I don't think they'll far too far behind. It all depends on what Rust does.
Linux has Bash, which it shares with Mac OS, and Windows has the new PowerShell. And if you really want to, you can even have Bash on Windows, too. It's had a slight increase in popularity, rising from #9 back in 2014. I think this is mostly due to the popularity of Dev Ops lately. More and more developers are starting to learn more than just the language they code with. Myself being one of them, more modern developers seem to be increasingly interested in managing the servers their applications sit on, and Bash is something that you almost HAVE to know to do this. You aren't going to find any jobs just knowing shell scripting, but it will definitely give a solid boost to your resume.
I'm going to skip on popularity with this one because it's not really in the same realm as the rest of the languages on the list.
Okay, now we're getting into the languages that can easily get you jobs in the industry. Also, I want to go ahead and mention for the hundredth time that yes, you can easily get a job without a degree. The self-taught route is actually what I did. I bother to mention this hear not also because we're in that realm now, but also because C# was originally my end-game goal. Working for Microsoft was the goal I was reaching for when I started. That's changed, by the way, but C# is still a solid language.
With the rise in popularity of .NET Core, a cross-platform implementation of the .NET family of languages, C# can now be run on Linux servers to build some pretty powerful web applications. This is probably why it's gone from #8 to #6 over the last few years, and I expect it to just keep growing. To be honest, I'd make more use of it if I was a Windows user. But until .NET Core gets a GUI library that works well with Linux and Mac, I'll stick with Java (more on that later) for non-web projects.
C# is also one of the top 3-4 languages for finding jobs in the industry. In fact, it's pretty common in Red Shark's home town of Greenville, NC. I've used it for a couple of simple console applications, but they were more for learning purposes than actual production level purposes.
Because of its cross-platform implementations, it can be used to make mobile apps with Xamarin, and games with Unity. Though it's worth noting that it's not the best solution for either of those arenas. C# is a jack of all trades, but a master of Windows. I'm not saying this will definitely happen, but I could see a future where Java starts to lose more and more market share to C#, causing it to move up in the rankings. I wouldn't be surprised if it hit #4 or #5 after .NET Core becomes the "only" .NET out there, and it becomes fully cross-platform (minus GUI libraries, of course) across the board.
This is no surprise. Java is known for the "Write once, run anywhere" mentality. From TV remotes to space stations, Java is all over the place. It's one of the best languages out there to find a job with and has maintained its #2 ranking for the last five years (maybe even longer) according to the statistics I'm using for this blog post. Java will likely maintain it's position as #2 for the next few years, but could probably start to drop off in popularity if languages like C# and PHP continue to evolve at a faster pace than Java.
You wouldn't be faulted for considering this a direct competitor to C#. If you asked me, it's a hard decision to make between the two. Java has more jobs, all of which pay about the same as C#, but C# is used for a wider array of purposes. There are also some things that make me just a LITTLE bit nervous about the future of Java, but I'm not really all that worried. PHP may be my bread and butter, but there's another language that I (as well as most developers) use on a daily basis that has stayed ahead of Java for quite some time.
As for its popularity, Java will probably continue to maintain it's ranking, possibly dropping a rank if C# continues to gain momentum through their open-source efforts.
Here we are, my home territory. PHP dropped from #3 to #4 a few years back and has stayed there pretty consistently. It's the 800 lb gorilla of server-side programming and isn't going anywhere anytime soon. With the popularity of software like WordPress, and frameworks like Laravel (heavily inspired by Ruby's Rails framework), PHP is continuing to grow in its capabilities. It's also growing at a much more rapid pace than it has in the past.
Speaking of the past, PHP has a bad rep, which I would argue wasn't really ever merited. PHP is a forgiving language that is easy to learn, which led to some bad developers writing bad code that still technically worked, but was a nightmare to maintain. Even today, I run into crappy PHP code from time to time, and even look at stuff I did just a couple of years ago with disappointment and embarrassment. But to be honest, the same will be said by most developers of every language.
PHP is a great language to go with if you're looking for a job. This is largely because it's so easy to host. Damn near any server you'll ever find will be capable of running PHP, and most of them will already have it installed and ready to go. Even if you have a self-managed server, it's easy to install the whole LAMP (Linux Apache MySQL PHP) stack in a matter of minutes. It's also the go-to for a lot of web freelancers. The only downside that I can see with PHP is you won't have a way to use it off the web really. But that's what other languages are for. And if you're the kind of person who only wants to use one language, then you're not gonna be very successful as a developer.
PHP will likely maintain it's position, possibly move up in rank, but I doubt it will go down too far in popularity any time soon.
It's hard to say where TypeScript will go in the long run. It was created to serve a purpose that I don't see waning any time soon. I don't think it's "needed" necessarily, but adoption is what matters. If more and more companies start making it a part of their development process, it'll just keep getting more popular. That being said, I've never used it and probably won't ever use it unless I end up working on a project built with it. I wouldn't be entirely surprised if it went up a little in popularity, but I'd say it's far more likely that it will start to even off pretty soon.