18.06.2020

What Is The Best Language For Machine Learning In 2020?

Article by
author
Dawid Karczewski
7 min read

Machine learning is a great example of a technology that has recently come from academia and theoretical studies to practical applications and supporting business activities on a daily basis. With the critical mass gathered, the industry needs to fit the various needs and niches that use different tech stacks. 

 

The key effect of the versatility and applicability of the machine learning-based solutions is the rise in funding and investments. According to the PwC estimations, there are up to $15.7 trillion to gain by 2030 simply by applying AI in global business and economy. Also, the company predicts that the GDP boost by local economies can reach up to 26%. 

 

iLeux2ZP5WAxnCI3KBLQyX6JzeDGxH0HrbGaJJt6uIdalr7wq4e57UeufiSv8zQN_oH9RaI_VppZ-LCzwpUhah6HIii1SguUo816Q2FP4IMmT37iVJdSvpmCEHXDs6gyIgHoCHzd

Source: PwC’s Global Artificial Intelligence Study: Exploiting the AI Revolution

 

But all above can be gained only by a good implementation done by skilled engineers. And that’s not that easy to achieve. A data scientist, data engineer, and machine learning engineer are neither easy to find nor cheap. These are highly qualified specialists, who can currently cherry-pick their employer. 

 

Also, data science uses a slightly different tech stack than programming per se - but fear not, we will guide you through the best and most popular options when it comes to AI development!

Machine learning programming languages

In fact, hiring an AI-related specialist is even more challenging than finding a good software engineer. Both professionals deal with code and computers, but while programming is obscure-yet-understandable, data science can be seen as a black box with little to no knowledge of the process. In the end it is not about programming the computer but teaching the machine to program itself - a whole different story.

 

Also, while nearly every tech specialist has his or her own intuition about modern programming languages, yet the direct usage and the possible appliances in machine learning of a particular programming language are significantly different. As you can see below. 



 

Easiness and speed of coding

Developers' pool

Versatility

Python

Awesome

Awesome

Awesome

Scala

Could be better

Could be better/not bad 

Could be better

Java

Awesome

Awesome

Could be better

R

Could be better

Could be better

What?

Javascript

Awesome

Godlike

Awesome

Lisp

Could be better

Could be better

Not that bad after all

C++

What?

Very good

Very good

 

1. Python


 

Python is undoubtedly a leader with  57% of data scientists using it and 33% preferring it over other programming languages. The language is elegant, lightweight and as simple to use as a programming language can be. 

 

It is also a versatile language that supports various usages and when used in a proper framework with a good set of libraries it can also power web apps or some heavy scripting in business usage. 

Easiness and speed of coding

Being an easy programming language makes the development faster - the coder is not chained by strict procedures or sophisticated architectures embedded in the system - he or she can just code what he or she has to. 

 

Oh, just have a little example: 

 

C:

Java:

Python:

 

Simplicity itself, isn’t it?

 

Developers' pool

 

Python is easy to learn, increasingly popular and fast to code - what could one wish more for? That’s why it is currently the second most popular programming language in the world (according to RedMonk’s list). Considering that, the pool of talents is relatively high and considering the trends, it will also rise in the future. 

 

Versatility

 

Python is easy to use and supports multiple libraries and frameworks that make this language even more versatile. But it shines in two categories: 

  • Machine learning
  • Web development

 

One could say that there are multiple other appliances where Python cannot stand - for example, it would be really hard to program an operating system or hardware-level apps in Python and it can be challenging to deliver frontend SPA with this language. But it will do pretty well on a backend. 

 

So is python the best language for machine learning? Apparently - yes, but not always and not in every case possible. Why? Find out below!

2. Scala


 

Many people hate Java for being bloated and annoying when it comes to coding - and that’s completely natural. If there is something in the universe, it also has it’s haters with Chuck Norris being a proud exception (seriously - you DARE to hate Chuck Norris?)

 

 

Scala is a good example of constructive criticism - the programming language was designed to avoid flaws of Java while keeping its advantages. It has a static type system with high compatibility with Java libraries and frameworks. 

 

Unlike Python, Scala is a compiled language, making the executed code working much faster. 

 

Easiness and speed of coding

 

Scala and Java address the same needs and are designed to fulfill similar roles - so in spite of being different, they share philosophies and requirements. The foundation of Scala is in working with enterprise apps, on a large database within a scalable solution. Thus, the language lacks flexibility and freedom provided by Python while delivering stability. 

 

Developers' pool

 

Scala is rarely the first language of choice, yet it can be relatively easy to be mastered by the Java veterans. So in fact when you need a Scala developer it can be easier to find some coder eager to learn it rather than spot the talent outside. 

 

Scala is not one of the top programming languages, yet it is getting noticed due to machine learning. Why - find it below. 

Versatility

 

Scala is an enterprise programming language and it shines when it comes to building big data-powered apps that chew some gargantuan amounts of data. Where Python finds its muscles sore, Scala hasn’t even got warmed up yet. 

 

It is a solid backend programming language, no more, no less and where Python can deliver shiny and fancy models, Scala can do a lot of hard work. 

3. 

Java


Java is yet another language being around for long in spite of criticism and multiple hates in the community. It is a solid multi-purpose programming language. It is similar to C and C++ with significantly less lower-level commands. So it would be really hard to deliver an operating system in Java, but one can easily use it in a client-server architecture - and that’s basically where Java is used the most.  

 

Easiness and speed of coding

 

Java is designed to be stable and reliable. It has also a strong paradigm of object-oriented programming, that is in fact forced into the language. The language is also vulnerable to bad practices that can make the whole code unstable. 

 

The language itself is heavily criticized for multiple reasons. But straight to the point - Java is complex and has multiple policies implemented, which makes coding significantly slower. 

 

Developers' pool

 

Despite many Java-haters, the language remains popular and it is favored by enterprise software developers. It shines on servers and in heavy data-processing. So there should be little to no problem in finding a developer. 

 

Versatility

 

Let’s put it straight - Java is NOT a machine learning-oriented programming language. It is a working horse of enterprise apps with an aim to process data-heavy operations of ERP or CRM-class systems. But there is a good (some users call it excellent) Weka framework that supports machine learning in its basics. One can run decision trees, regression, or feed-forward algorithms with it easily. When combined with the data-heavy environment of Java apps it can deliver a killing enterprise-level combo. 

 

But forget about deep learning or other neural networks in Java in the same way you would rather forget about hammering the nail with a screwdriver. It is just not the proper tool.  

4. R


There are some malicious haters who call the cutting-edge-world-transforming technology of machine learning a “statistics on steroids”. Although this amount of steroids would have killed even a young Arnold Schwarzenegger, the connection between statistics and machine learning remains strong. 

 

R is a statistical computing and data visualization-oriented language that finds interesting popularity in a machine learning environment.

 

Easiness and speed of coding

 

Contrary to multiple languages described above, R is aimed to be used by non-programmers including analysts, data miners, and statisticians. It supports not only a command line but also multiple user friendly IDEs, like Jupyter and RStudio, which focus on ease of use (Jupyter is even web based) and provide multiple tools e.g. tools to manage your libraries or to draw sophisticated graphs.

 

Developers' pool

 

According to TIOBE Index, R is currently the 13th most popular programming language and thus there should be a good talent pool to search in. On the other hand, it is rarely the first language of choice, so encouraging a python-trained data scientist to learn R can be a good idea. 

 

Versatility

 

R used to be the most popular tool to build machine learning apps and it remains a popular tool due to the heavy and versatile tools implemented to handle data-processing easily. Looping back to the beginning - it has been used for data and statistics-heavy computing by academics since the last decade of the previous century. Assuming the knowledge of other programming languages (or strong support from someone who knows them) one can easily deliver sophisticated machine learning solutions. 

 

R is not as flexible and versatile as Python and building a standalone app with R sounds like a joke. But when it comes to data exploration, prototyping, and exploring what/if scenarios on a large dataset, this language shines brighter than a thousand suns. 

5. Javascript 


There is no good programming language comparison article without mentioning Javascript, probably the most popular language in the world. It can be assumed that it powers the internet along with  CSS, PHP and HTML. Funny thing is that the language was created not to be web-oriented but to support delivering macros. 

 

In the end, it is used by all web developers whether they want it or not in the way wheels are used by car drivers - there is no other option available, to be honest. 

 

Easiness and speed of coding

 

The language is easy to learn with countless tutorials, FAQs, and problems solved online. It is in fact one of the easiest programming languages existing and coding can be both fast and convenient. Also, one can be a good and highly sought programmer when knowing only JavaScript, a relatively rare situation in the software development world. 

 

Developers' pool

 

The language is also a popular first choice among programmers due to the high demand for people skilled in this technology. 

 

To be honest - is there ANY coder in the world that knows no JavaScript at all? I doubt. 

 

Versatility

 

Being the language not designed to support web apps it is surprisingly good at it, being used both on the front end and the back end. But why use machine learning in it at all? 

 

Apparently, sometimes there is a need to use these techniques on the client-side. And that provides some cool abilities including access to the device sensors like a camera, accelerometer or GPS. A smart company can harness that to deliver multiple cool features - and that’s why JavaScript and Machine Learning can form a surprisingly good team. 

 

So good that the most popular machine learning library TensorFlow has also a JavaScript implementation. 

6. Lisp


 

Here comes grandfather Lisp. It is the second oldest programming language that is still in use - Lisp has been around since 1958. What’s even more impressive, Lisp has been designed as an AI-centered programming language delivered to work on artificial intelligence development. 

 

Just think about that - the language designed to build artificial brains was designed seven years after people figured out that the keyboard can be a more convenient way of input that punched cards or paper tape. The researchers’ desire to make computers emulate our brains is nearly as impressive as a bit disturbing…

 

Easiness and speed of coding

 

Lisp is neither easy nor fast to code. But it used to be in the times it was designed. The language itself evolves of course and there are constant revisions and updates to it, yet it is far from Python or JavaScript when it comes to building apps. 

 

On the other hand, Lisp is highly renowned for the architecture it forces and practices it is founded on. There are multiple opinions that underline this language’s elegance and multiple modern programmers consider it “eyes opening” or even “enlightening”.

 

God wrote in Lisp code

When he filled the leaves with green.

The fractal flowers and recursive roots:

The most lovely hack I've seen.

Bob Kanefsky, "Eternal Flame" [1]

 

Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.

 

You can use C++ if you want with GNOME, but we don't assume that you're going to write C++. It's to a large extent based on Scheme, which is a dialect of LISP. LISP being the most powerful and cleanest of languages, that's the language that's the GNU project always prefers.

Richard Stallman in: "GNU's Not Linux"

 

Of course not all opinions are so favorable:

 

Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.

Larry Wall, "Wherefore Art, Thou?", The Perl Journal 

 

Nevertheless, Lisp delivers an impressive deal of overall impact, both cultural and technological.  

 

Developers pool

 

Despite rising popularity since 2000 Lisp is still far from leaders like Java, Python or Javascript. In fact it has lost popularity in the 70s, when C became highly renowned and Java was heavily marketed. Thus, the language is currently unpopular and challenging when it comes to finding the coder. 

 

Versatility

 

When it comes to the versatility of the Lisp itself there is only one word - extremal. Lisp delivers nearly infinite possibilities for the coder, including building owners, domain-specific programming language embedded within the code. Also, due to the natural architecture of the language, there are countless possibilities of usage. 

 

Greenspun's Tenth Rule: Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp

 

Nuff said. 

 

On the other hand, though, Lisp suffers from a limited number of frameworks, libraries, and other tools, common in more popular programming languages. Thus, in fact, the versatility is limited by the lack of proper tools to boost the speed of implementing the idea. 

PP1XDDf8XcDHG55s9kYrtvcpS0HCrHEJ877iTT72o9yOLdp5jjdWTU8nDpfsYVDuEF-EEp9RGKB0No6jzR3nHZ_zCNIwM7lzz5PNHsQWwZxt1Vfr97hH7U2pVGLbcEEBdlULwUGb

Source: https://xkcd.com/224/

7. C++


Popular, versatile, powerful and annoying to use - that would be a short description of C++. The language is around for long and delivers a stable and reliable platform for multiple appliances. Also, it is praised for its performance, making it a weapon of choice for game developers and programmers who look for fast execution of their programs. 

 

Easiness and speed of coding

 

Guys who praised Lisp above have often criticized C++. One can name Linus Torvalds and Richard Stallman among the most resilient haters of the language. They point high complexity of the language as the main draw. The language is so complicated and bloated with functions, that some programmers openly remark that they do develop in C++ but they don’t use certain features. 

 

Developers' pool

 

Despite its draws, C++ remains one of the most popular programming languages. Also, it remains popular among university courses and usually software engineers after universities know it. 

 

But it doesn’t mean they like it. 

 

Versatility

 

That’s where C++ shines. It is considered a lower-level language than most common machine learning languages, thus it is easier to read for the machine. That makes it suitable to deliver hardware-level features like OS or similar. Thus, if there is a need for a machine learning model running on IoT, C++ can be a possible weapon of choice. 

 

Also, C++ runs fast. And that means that algorithms delivered in C++ also run fast. One could say that it is the best programming language for machine learning, but the worsrt one for learning machine learning. 

Summary

Contrary to the popular belief and bold statements from the literature, the most common and accurate answer is not 42. It is “It depends”. In this particular case, the choice of programming language and tools depends on the project to deliver.  Considering the list above, picking up the right one is not as easy as it sounds (pro tip: Python is not the best pick in all possible cases). 

 

So What Is The Best Language For Machine Learning In 2020? This one that suits your needs the most. You don’t precisely know what your needs are now? Fear not - you are not alone! If you want to pick the right ML technology for your next ML-based project, get in touch with our ML consultants and we will help you!

author

Dawid Karczewski

Full stack developer experienced in creating Ruby on Rails and React Native apps from naught to implementation. Technological superhero, delivering amazing solutions for our clients and helping them grow.

Did you enjoy the read?

We highly recommend to check out our other articles. If you are looking for a career opportunity, feel free to browse our job offers. Do you want to have your digital project estimated? Just click on a button below.

Estimate project Browse job offers
im-logo We are IDEAMOTIVE

We are software developement house located in the hearth of Europe - Warsaw, Poland. Our main areas of expertise include Ruby on Rails, React and React Native.

Recommended & popular articles

Pros And Cons Of IT Nearshoring And Offshoring

Ideamotive Weekly Digest #1

Ruby on Rails vs Django – Which One To Pick For Your Web Project?

Consult Your product with our experts

Get an estimate or contact us