Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

[flagged]


I was talking with a coworker recently who was asking the question of why Ruby wasn’t the data science language of choice. I am still not sure the answer. Why not? Ruby seems like it would be great for math.


Python was the first programming language whose primary focus was not scientific applications, i.e. not MATLAB,Fortran or R, to have support for numeric arrays (matrices) via ndarray and then Numpy, while still being fairly approachable for the scientific community. If Travis Oliphant had picked Ruby for implementing ndarray, maybe would be the defacto language for data science.


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.


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.


My only USE for a notebook would be to use with my Ruby code. I have zero use for Jupyter with Python.


Jupyter is a decent REPL.

I use it when I want to try a new language. Or when solving adventofcode.

If I had the desire to learn Ruby, i would probably start by downloading a docker image of jupyter with a Ruby kernel.


Jupyter Notebooks can be useful for more than small snippets of code.

A Ruby Jupyter kernel would be useful if you've got a Ruby codebase, and want to run a Notebook using some of that code.


Zooming out, this is the case in a lot of the programming world in general. Massive, massive duplication of effort so that each language community can do the same stuff as everyone else, but in their preferred language. There's what, 20-30 different general-purpose languages out there with a sizeable library ecosystem?

Now don't get me wrong, I love programming languages. It's all fun and interesting. But it's a bit absurd too.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: