Hacker News new | past | comments | ask | show | jobs | submit login

There's definitely a lot of similarities.

I think of MATLAB, Mathematica, R, and Python together as "practitioner's languages". These are languages that are designed from the core to be highly productive to a specific kind of technical worker (in the sense of developer velocity).

MATLAB for engineering. Mathematica for mathematics. R for statistics. Python for software engineering.

You could also say "Python for ML", of course, and that would be true, but Python is also used for general purpose programming much more than the other three. I think that "Python for software engineering" is more correct.

I think that each of the languages is shaped to the way that its users think about the problems that they want to solve with it.

MATLAB is shaped around linear algebra. Mathematica is a term-rewriting system. R has lots of magic around data and scopes to make the surface syntax for stats nice. Python is shaped like a traditional OOP language but with a pseudocode-like syntax and hooks so that libraries can act magically.

This is kinda half-baked, I'm trying to express this for the first time. But essentially I think that Python is what you get when you have real programmers (^TM) try to create the programming equivalent of something like MATLAB, Mathematica, and R.

And so of course ML, which is a field dominated by real programmers, adopted Python in order to create their ecosystem.




Generally agree, though Mathematica is for physics, I rarely saw it used by mathematicians, especially compared with MATLAB, which was closer to the programming language of choice. That or Julia were both more common.

> I think that Python is what you get when you have real programmers (^TM) try to create the programming equivalent of something like MATLAB, Mathematica, and R.

I think this is a better description of Julia tbh, at least relative to MATLAB.


I believe the advantage of Python for the domain of ML is just how easy it is to take tested C and Fortran code and add it as a bona-fide software engineering package. In other words, it is a language that allows standard scientific software to be consumed according to the latest software development trends.


I guess I should also mention Inform7 for interactive fiction as another example. That is an extremely weird language. It's shaped to the minds of fiction authors, who are very, very different from software engineers.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: