Comment by senkora

Comment by senkora 2 days ago

5 replies

+1. I am a software engineer but I double majored in statistics and wrote a lot of R in undergrad. The library ecosystem is incredible. Essentially any technique in statistics has a well-documented R package that is one library() call away.

I keep wondering if I should learn the Python data science ecosystem at some point but it just seems like a waste of time. One of my personal projects is written in Python but calls into R for statistics/plotting.

The language itself however, incredibly cursed.

coliveira 2 days ago

The same thing can be said about Python. Python itself is not such a great language, especially in terms of performance. However they managed to have every simple package in the world of analytics and ML added to the Python ecosystem, so it is impossible to stop using it.

  • senkora 2 days ago

    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.

    • waveBidder 2 days ago

      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.

    • coliveira 2 days ago

      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.

    • senkora 2 days ago

      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.