Hacker News new | ask | show | jobs
by engine_y 654 days ago
Well maybe it should be. I was thinking the same about languages which are better suited for data wrangling. But to me, the reason python is the DS language shows how good evolution is and survival of the fittest. You and I would probably argue that a DS language should have strong static typing but in nature what prevailed was the opposite. A nimble, easy, no fuss, comedy oriented named language.
1 comments

From my experience, python won out the research crowd exactly for the reasons you mentioned, but also because it is a bit of a swiss army knife platform. Python has plenty of libraries for doing pretty much anything these days. Computer Vision? Can do. ML? Can do. Dashboards? Can do. And the list goes on. This means that a researcher can do their research in python and then also do the implementation in the same language and platform they are familiar with.

If someone told me to use rust for doing any sort of interactive/iterative numerical research, I'd send them for the hills. And I love Rust. But when I want to quickly learn about the properties of some data, or try to use dataset A to predict dataset B, I don't give a rats ass about types, or type safety, or proper programming idioms. I just want to look at my data.

Then, if I convince myself that I have some sort of model that I want to use, I could theoretically reach for Rust, but generally I don't need to. I can just take the output of the research - more or less verbatim - and start using it in production. Often with minimal changes.

Yes, sometimes circumstances require to use something more performant, but these days you also have Numba or Nuitka to optimize some hot loops.

For the longest time I wanted Julia to become a success, because I felt that it combined in one language and platform the possibility to write easy no-fuss, scalable, performant and robust code. A language which could evolve a codebase from initial research analysis to strongly typed production code. Unfortunately it never seems to have gained traction, so we are left with the next best thing: python. It's not really good at anything (as a language), but it's the least bad out of everything out there and the libraries are excellent.