IEEE Spectrum finally ranked the top trending programming languages.

For those who are not familiar, IEEE is a not-for-profit organization. And it's also the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity.







They decided to rank the popularity of a dozen programming languages. The rankings were created by weighting and combining 11 metrics from 8 sources:

CareerBuilder

Google

GitHub

hacker New

the IEEE

Reddit

Stack overflow

Twitter







Here's the list that IEEE Spectrum ranked the top trending programming languages:

Python Java C C++ JavaScript C# Go R Ruby Dart







Python

Python is one of the most widely adopted general-purpose modern scripting-languages. (Javascript is used more by pure volume, but is fairly rare for anything other than webpages) It seems a pretty safe bet that Python is here to stay over the next decade.

Longer-term there's no way to know for sure with any language, but it's not really worth worrying about because IF Python is ever supplanted by a newer shinier language, it's almost guaranteed that most of the things you learn in Python will transfer easily to the new language.

When you're learning Python (or any language) the specifics of the language is not where most of your effort will be spent anyway. Instead, you'll learn a lot of general principles, and those apply no matter what language you'll use for implementing them a few decades from now.







Java

IEEE Spectrum ranked Java second in the top trending programming languages.

It's used in a lot of areas including big data, business applications, embedded systems, web servers, mobile applications, etc (according to Oracle it's on 3 billion devices worldwide)

• Big Data

Java is used in big data because it's used in Hadoop (It's built on top so knowledge of java is necessary for developers)

• Mobile applications

The official development language of android is Java and as such most android applications are written in Java-based languages such as Kotlin.

• Embedded systems

Java is used in credit cards, SIM cards, blue-ray disk players, printers, televisions, routers, ATMs, utility meters, etc

• Business/ Enterprise Applications

Java EE(Enterprise Edition) is very popular because it provides the means to develop systems such as web services, network applications coupled with high scalability, speed, and performance. A traditional user in this area is banking systems with their full stacks built in Java

• Web servers/ application servers

There are a number of servers within the Java ecosystem including GlassFish, Apache Tomcat, Rimfaxe Web Server, IBM WebSphere, Oracle WebLogic, JBoss Enterprise Application Server (its safe to say there's a lot)

Overall there is plenty of reason to learn Java as this can provide an easier transfer into other useful languages such as C, C++, C#, Scala, Swift and Objective C

C

C is a very, very old language (45+ years old). It hasn’t really changed much over the years. C is still procedural; you won’t find any support for object-oriented nor functional programming. You won’t find things like generics or templates. C still relies on ancient techniques such as header files (for “modules”) and manual memory management (no garbage collection) and weak typing (free and easy typecasting). It is profoundly rooted in the past.

Nevertheless, I like the language. After all, it paid for my early retirement! C is still the principal language for systems programming, ie, writing OS kernels, device drivers, embedded applications.







While C has always been a general-purpose programming language, it is no longer used much for anything else. Computer graphics, image processing, video game programming, machine learning, etc. have been subsumed by C++.

So is C a good language now? It is if you want to do systems programming. It’s very useful for supporting higher-level languages that need low-level access, such as Java, Python, and Smalltalk.

If you’re really interested in AI, then C isn’t the most promising route.

C++

C++ is a reasonable old Object-Oriented language and the C++ standard is well-controlled. Unlike other languages, C++ compilers can be created by anyone who will comply with the standard, resulting in various options for your compiler and including the support of many different platforms. And because it is an open standard, it basically means that you should not have much trouble porting your C++ application from Windows to Linux or OSX as long as you limit yourself to using standard libraries or libraries that are available on all platforms.







Most C++ compilers will also be able to compile C code, which is important when you need to call methods inside the operating system or additional system drivers, like OpenGL. Most of those libraries will expose methods as C functions, not C++ classes. It can make C++ code a bit messy but in general, you should wrap access to those C methods inside C++ classes.

In general, C++ will have a good performance but the standard lacks a good graphical layer. The reason for this is because graphics are strongly related to specific platforms and C++ is created to be platform-independent at the code level.

Unfortunately, C++ is also used by developers without good programming experience. Those developers are capable of generating some very messy code. So, the quality of the C++ code is strongly related to the quality of the developer who used it. And it can be really messy…

Go

With an average of approximately $110,000/year, the Go language deservedly tops the list. It was developed by Google and released in November 2009. The fact that it is open-source makes it actively used for different projects within the corporation, and a couple of famous services such as SoundCloud, Netflix, and Dropbox.







Interestingly, in recent years the popularity of Go has grown tremendously thanks to the advantage of

Multithread tasks

Parallel processing

Fast start-up time

Using memory only when necessary

A lot of people are considering Go to be the server language of the future!

Some nice features of Go are:

It’s very concise, simple and safe

The compilation is very fast

It supports the interfaces with the embedded types

It doesn’t require any external dependencies for the production of the statically linked native binaries

R

The R programming language appears in statistical classes or classes that apply statistical methods. In comparison to general languages, R is more specialized and focuses on data analysis and statistical methods. It has a user-friendly interface in R studio that supports an interactive script. It does not have the same strength in programming as Java or Python, for software and object-oriented code. Thus, R gains advantages in scripting and statistical methods but withdraws on software development and integration with production systems. It does not share the same core concepts as general languages like C or C++.







For the usefulness of R, it serves an ad-hoc data analysis and application of statistical methods. It does not manage data on the level of SQL in terms of dataset creation, transformation, and storage. If one uses R, they apply the packages or libraries written by academics, statisticians, or people interested in statistical methods. It is the programming language of choice for academics in statistics. If one has studied statistics in school, they have almost certainly used, developed, and applied R in their coursework. This makes the transition to apply R during professional work easier, but it also takes away from software development in production.

Ruby

As others have stated, learning Ruby is dirt easy. I did it in one day — the fastest I’ve learned any language. I am now picking up Haskell and have done a bit with Erlang, which is a completely different paradigm, being fully functional languages, and it’s taking me the longest time ever to learn.







Learn Ruby. Ruby has a nice ecosystem, and it’s not just for Rails anymore. And Rails itself is coming of age. Do not dismiss it. It is being used less as a website service and more of a very powerful framework for doing REST interfaces, especially in today’s Mobile and single-page-application web world.

You can, for sure, pickup NodeJS and Go as well, if you like. There is strong demand for those and Ruby out there. As well as other mainline languages.

I basically use Ruby these days to do AI as well as nifty command-line tools and other non-web applications. Take a look at your community gem host to see what I myself have done, and peruse the many, many other Ruby Gems there. You can see the download counts for each. And you can, on the basis of this, make a very informed decision on whether or not it’ll be worth your while to pick up Ruby.











