Translate into a different language

Thursday, July 19, 2018

The best programming language for data science and machine learning | ZDNet

Hint: There is no easy answer, and no consensus either, as ZDNet reports.

Arguing about which programming language is the best one is a favorite pastime among software developers. The tricky part, of course, is defining a set of criteria for "best."

With software development being redefined to work in a data science and machine learning context, this timeless question is gaining new relevance. Let's look at some options and their pros and cons, with commentary from domain experts.

Even though, in the end, the choice is at least to some extent a subjective one, some criteria come to mind. Ease of use and syntax may be subjective, but things such as community support, available libraries, speed, and type safety are not. There are a few nuances here, though.

Execution speed and type safety 
In machine learning applications, the training and operational (or inference) phases for algorithms are distinct. So, one approach taken by some people is to use one language for the training phase and then another one for the operational phase.

The reasoning here is to work during development with the language that is more familiar or easy to use, or has the best environment and library support. Then the trained algorithm is ported to run on the environment preferred by the organization for its operations.

While this is an option, especially using standards such as PMML, it may increase operational complexity. In addition, in many cases things are not clear-cut, as programming done in one language may call libraries in another one, thus diluting the argument on execution speed.

Another thing to note is type safety. Type safety in programming languages is a little like schema in databases: While not having it increases flexibility, it also increases the chances of errors.

In this thread initiated by Andriy Burkov, machine learning team leader at Gartner, Burkov argues against using dynamically typed languages such as Python for machine learning.

"You can run an experiment for several hours, or even days, just to find out that the code crashed because of an incorrect type conversion or a wrong number of attributes in a method call," says Burkov.

Source: ZDNet

If you enjoyed this post, make sure you subscribe to my Email Updates!