Hacker News new | ask | show | jobs
by Palomides 3472 days ago
spoiler: "Python is still the leader, but C++ is now second, then Java, and C at fourth place. R is only at the fifth rank."
3 comments

It's important to distinguish between the API language and the core language used for large-scale computation. Every single deep learning library exhibits that division. The API language(s) indicate the communities the lib seeks to serve. The core languages are lower-level, faster, and help optimize on the hardware. The core languages are always C/C++/Cuda C. The API languages tend to be Python, Java, Scala, R. Conflating the API languages with the computing cores is comparing apples to oranges. http://imgur.com/a/Z6fGr
The higher level languages are also used to munge the data into lib-readable format. Python and R's standard libs are especially good at putting out various tabular and database formats in preparation for ML input
You're absolutely right, and the data doesn't allow to split between api vs core implementation.
That's the ranking when they queried for deep learning specifically.

For machine learning it was: Python, Java, R, C++, C. I have to wonder if that difference in ordering is actually real.

TensorFlow is written in C++ so I'd expect it to impact the deep learning result.
Every serious lib was written in C/C++ under the hood long before TensorFlow came along.
True, at least to some extent. But I think TensorFlow treated C++ as a first class citizen and not as a tool to improve performance.

You wouldn't use sklearn as a C++ developer, for example. But you could totally use TensorFlow.

I'm guessing Python for research and prototyping with C++ for production-izing and scaling.
Some of these Python libs call out to C for heavy lifting, which can be very performant.
You lose quite a bit of optimization opportunities along the FFI boundaries.