Live data from Hacker News

GNU Octave: A high-level interactive language for numerical computations [pdf]

octave.org

31–40 of 70 posts

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#31
post #15

I spent a few years writing software professionally, a large fraction of it in MATLAB (engineering tools development for gas turbine companies). With every project I lost more respect for matlab, which is very slow, and clunkier than the marketing material would suggest (for instance, IPC. Or accidentally passing a large data set to a vectorized O(n^2) operation). And they charge you $20k/year for a single license! I…

One thing that caught my eye was your $20k/year license fee for MATLAB. How many toolboxes did you purchase?! I maintain a commercial license for a single user and it's nowhere near that. I purchased a perpetual license originally: https://www.mathworks.com/pricing-licensing.html which is around $2k, but then pay a yearly maintenance fee to get upgrades, which is vastly less.

Toolboxes are in the $5k range (to me that is crazy), so if you get the database, optimization, and power systems toolbox with a license, you're not far from $20k.

This is one reason why if I had to pick commercial software I would choose Mathematica as they put everything in core as part of the standard license and don't require toolboxes for something the default software should have.

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#32

Earlier quoted context omitted.

just use Julia. It's faster than Matlab, and a better language.

It will be very hard to displace Matlab out of certain very important niches. For example, across both academia and industry, Matlab is king in control systems design/analysis thanks to its toolboxes, Simulink, and (at least in industry), its autocoder. Matlab is used to generate the flight controls software on a lot of today's aircraft. In a number of other engineering disciplines, Mathworks has been astute in devel…

Agreed. The academic part of my industry is starting to use Julia at the National Labs level, but virtually all University and National Lab code is prototyped in Matlab and textbook examples are Matlab. So it has a lot of momentum with researchers who never learned Python, Julia...etc. I don't think Octave or Scilab are seriously used anywhere unfortunately. When I ask, I'm the only one who has heard of them.

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#33
post #26

Earlier quoted context omitted.

The thing with Matlab is that, just as software, it's "great-terrible". It has an amazing number of cool little tweaks that allow quick development and it has umpteen convenient algorithms and allows one to work with matrices in a very self-contained way. But all this niceness means really that the software is more in the realm of spreadsheets than standard programming languages. Maintenance is guaranteed to be a nig…

I cringe every time that some engineering friend mentions how they has been programming an application with MATLAB. And next time the problem arises this "application" is not applicable anymore. Some manager types do not even realize that there's such a thing as technical debt.

In financial modeling, which is one of the primary applications of MATLAB, you generally throw away your code in 1-2 years anyway (unless it is a generic library that can exist for decades).

MATLAB is a tool for research, not engineering. In research, you check hypotheses; you write a lot of throwaway code. The 0.1% of validated models that end up in production can be rewritten in other languages, but nothing replaces the fast turnaround time of MATLAB. Or similarly organized R Studio.

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#34

Earlier quoted context omitted.

What do you use instead though? Octave is very slow, Julia is even slower and Numpy has an annoyingly verbose syntax because it has to be valid Python. Additionally I've not found a plotting solution that is as robust and fast as MATLAB. MATLAB seems to me to be one of those commercial programs that has no good FOSS alternatives. Maybe it's just too niche, like CAD and EDA.

> Julia is even slower Huh? This has definitely not been my experience -- most of the things I've ported over seem to run about twice as fast in Julia as in the original vectorized Matlab (and probably more like 10x faster than naive non-vectorized Matlab)..

Well written Julia should definitely be faster in most cases unless Matlab is using a specific well performing algorithm that Julia doesn't have built-in.

With that being said, there are a lot of Julia posts on the subreddit or stack overflow that go like "Why is this Julia code 10x slower than my Python code"? One issue is that getting good performance out of Julia isn't always obvious without a pretty good understanding of how it works. Thankfully, people are willing to help you tweak your code to make it much faster.

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#35

As somebody in an academic field where many scripts exist for MATLAB (mostly digital signal processing focused), there are few projects I want to succeed more than Octave. It's very hard to recommend that students and colleagues grow invested in toolchains involving proprietary software that they may not reliably be able to afford/activate/use in the future, particularly when some students may end up working in devel…

just use Julia. It's faster than Matlab, and a better language.

It is a better language indeed. Too bad that their IDE options are not par with it. Julia REPL is just that — a REPL. Julia IDEs are just editors for writing code. MATLAB integrated environment, where you can see all variables immediately, is what makes it popular; why not imitate it?

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#36

Earlier quoted context omitted.

just use Julia. It's faster than Matlab, and a better language.

It is a better language indeed. Too bad that their IDE options are not par with it. Julia REPL is just that — a REPL. Julia IDEs are just editors for writing code. MATLAB integrated environment, where you can see all variables immediately, is what makes it popular; why not imitate it?

This is what held me back for a long while too, but Juno (the Atom plug-in) seems to finally have all the features I was missing in Julia compared to the Matlab IDE, including a decent variable inspector.

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#37

As somebody in an academic field where many scripts exist for MATLAB (mostly digital signal processing focused), there are few projects I want to succeed more than Octave. It's very hard to recommend that students and colleagues grow invested in toolchains involving proprietary software that they may not reliably be able to afford/activate/use in the future, particularly when some students may end up working in devel…

Just out of curiosity, what is your opinion on other alternatives that are good with matrices such as Scilab, Python + Numpy, or Julia? Is your focus on Octave due to how close it resembles Matlab?

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#38

As somebody in an academic field where many scripts exist for MATLAB (mostly digital signal processing focused), there are few projects I want to succeed more than Octave. It's very hard to recommend that students and colleagues grow invested in toolchains involving proprietary software that they may not reliably be able to afford/activate/use in the future, particularly when some students may end up working in devel…

> Here's hoping that someday, Octave does to MATLAB what R has done to SPSS and SAS.

SPSS and SAS have horrible, horrible scripting languages. R is just ...slighly wonky. So as a language, R was a huge improvement on its alternatives. Whereas Octave is just a clone of the Matlab language, (almost) no improvement, just slower and less access to libraries.

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#39
post #4
post #2

What benefit does Octave have over the Python ecosystem? Esp as a clone of proprietary software? The only thing I can see is as a way of running Matlab codes in clusters on cloud w/o having to also run the license servers.

I work as an applied mathematician writing numerical codes and I prefer to prototype in MATLAB/Octave for a number of reasons: 1. I believe it to be far easier to debug an algorithm in MATLAB/Octave than Python. When I drop into the debugger, I can immediately check things like the eigenvalues of a matrix with a simple "eig(A)" or look at the sparsity visually with "spy(A)". Though this is possible in Python, I belie…

I only had short experiences with MATLAB/Octave as a student but found that writing MATLAB/Octave rather than MATLAB or Octave was tricky... (IIRC mostly with differently named library functions)

Is this a nuisance also for you? I would be interest in how do you overcome this (asking for a friend working in image processing in MATLAB)

Re: GNU Octave: A high-level interactive language for numerical computations [pdf]

#40
post #4

Earlier quoted context omitted.

I work as an applied mathematician writing numerical codes and I prefer to prototype in MATLAB/Octave for a number of reasons: 1. I believe it to be far easier to debug an algorithm in MATLAB/Octave than Python. When I drop into the debugger, I can immediately check things like the eigenvalues of a matrix with a simple "eig(A)" or look at the sparsity visually with "spy(A)". Though this is possible in Python, I belie…

That’s a well thought out argument and I appreciate it. I also use MATLAB/Octave quite a bit for numerical algorithm prototyping, and mostly hate it. The language has a shallow learning curve, true, but for complex software it gets ugly very fast. It’s just not a well designed language, and if you have any CS background that becomes very limiting. The thing that MATLAB brings to the table is the incredibly high quali…

> When you need Simulink, there’s nothing else out there that’s a valid alternative.

For simulation there is the Modelica standard for which open source implementations exist. But you don't code-generation for controllers, etc.

https://www.modelica.org/

https://www.openmodelica.org/

https://jmodelica.org/

Post reply on HN