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

People who use MATLAB use it for the toolboxes.

The language itself is awful.



Matlab/Octave is great for numerical programs that perform within an order of magnitude of Fortran. If some things aren't fast enough, you can rewrite them in C or Fortran without too much trouble. If you're doing anything other than numerical computing, it's awful, and you should use a different language.

(Source: I did a PhD using a mixture of Octave for numerical stuff, Perl for text-processing and automation, and C++ for the parts that were too slow. Choose the right tool for the job.)


Modern Fortran is better all around. The compiler will check usage based on interface. It has a working and supported module system (unlike C++). A couple of openmp pragmas will parallelize it. Multidimensional dense arrays are first class objects. The compiler can emit code with array bounds checking. Keyword and optional arguments. Standardized C FFI. f2py inter-op with Python/numpy.

Most people encounter large FORTRAN IV or FORTRAN 77 heirloom codes, and assume that's what Fortran is like in 2025.


> The language itself is awful.

As a programming language freak, I must disagree... in what other programming language can you solve a linear system Ax=b in one line

    x = A\b
without any external libraries or imports, just with the base language?

I never used any official matlab "toolbox", but still love the language via the octave interpreter. It's so clean and straightforward!


> without any external libraries or imports

Why does this matter in the least? Like you must understand that this is a library call right? Like just put `import numpy as np` in your PYTHONSTARTUP and it's the exact same UX in python.

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONST...


Well, in Julia, for one.


Also APL: b ⌹ A


In Python you can use a library, then it is: x = np.linalg.solve(A, b). But yeah, Octave is nice, because it stays very symbolic.


GNU Maxima.

Not a general purpose one, but good enough.

Also, qalc from libqalculate for trivial stuff.


In R, this is: x <- solve(A, b)




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: