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.
Read more...
Source: ZDNet