Hacker News new | ask | show | jobs
by emp_zealoth 3627 days ago
I've tried to use Octave, I really did. Passed few classes with projects made in Octave. Then I nearly failed some classes because of simple, reproductible bugs no one gave a flying fuck about. None of PCs I've installed the thing on could produce a fully working figure with subplots. For example in 5 subplots number 3 would not render at all. Or the plot would not export to png if you had too many data points. Octave bug reports were shrugged off as "not our problem - it's GhostScript" (or whatever does the png conversion, I don't remember now) GhostScript didn't bother to answer. All I can tell you the whole modularity concept is broken in practice because it promotes playing pingpong with issues. "It's not module A! It's how module B uses module A!" Unless people get off their high horses and actually fix broken shit the whole cult of free software is just delusional. And let's not forget that apart from riddiculous bugs Octave is really missing A LOT of functionality, even without going to Simulink
6 comments

> Unless people get off their high horses and actually fix broken shit the whole cult of free software is just delusional.

I understand your frustration, but the cult of free software initially was about being able to fix the issue by oneself in any case involving software -- lots of us still value that aspect.

I don't get why people are still advocating Octave as a Matlab alternative.

The real alternative is Python + Scipy. It's A LOT better than Matlab. Depending on your application domain, you might also want to look at R or Julia.

> I don't get why people are still advocating Octave as a Matlab alternative.

Because it is the closest thing to a drop in replacement, which is what you need when taking a class or following a tutorial based on MATLAB. Trying to use a different language and follow along is a much more advanced challenge and can be borderline impossible for a MOOC with an autograder or a class with a dusty professor.

I wasn't very happy with octave and I wouldn't use it for an independent project.. but I can't say how much of that is the pesky little octave specific bugs and how much is that I wouldn't like MATLAB's syntax when it is perfectly implemented. I suppose I could make the same criticisms of R as much of its frustratingly odd behavior comes from its history in emulating an old proprietary language's syntax..

I did take a class which worked with MATLAB and was using Octave to develop for it.

Well, and I guess it already says enough that I actually had MATLAB installed, but still preferred using Octave.

Just the minor annoyances in MATLAB like it taking probably a minute to start up, being in general really sluggish and having an annoying (read: not particularly bash-like) command-line were already enough to make up for the just as minor compatibility-problems I occasionally had to correct before handing in.

So, at least up until the stuff that you can get to in one semester, the compatibility was pretty good and I only really once had a problem which couldn't be fixed by a simple find+replace.

And in that case, it was actually something where I didn't understand why it didn't work in MATLAB (if I remember correctly, you for some reason couldn't use `hold on/off` with multiple `ezplot`-instructions in it).

So, yeah, I don't think at all that it was Octave-specific bugs bugging you, especially also because the MATLAB-syntax is actually even more annoying than Octave's.

>I did take a class which worked with MATLAB and was using Octave to develop for it.

Well, and I guess it already says enough that I actually had MATLAB installed, but still preferred using Octave.

That is exactly what happened with me. And then we started doing more advanced stuff next semester and Octave fell flat on it's face.

It's been a long time since I've used Matlab (it was for a diff eq class), but isn't R, with vectors as its primary datatype, much more similar to Matlab than Scipy? Not that Scipy or Pandas is bad, but they have to work quite hard around the fundamentals of Python's syntax to emulate the same behavior of R/MATLAB.
I don't think this is the case. Most of numpy, which powers the vectorized operations that the rest of the scientific stack uses, is written in C anyway. The python part is simple, just python bindings to the C functions.

The matlab-like syntax for getting slices of arrays is the only really non-pythonic thing I can think of.

Genuine question: What do you use it for?
> I've tried to use Octave, I really did.

I understand your frustration, but Octave's problems are not because we're incompetent developers or because we have a broken shit cult of free software. We're doing the best we can, but it's hard when the talent we attract is mathematical, not language devs.

Maybe our real problem is that we don't know how to turn Octave into a business while keeping it free. It is disheartening when everyone tells us we should just kill Octave and make everything Python.

Could you link me to the bug tickets? I would like to take a look.
http://savannah.gnu.org/bugs/?44050 Thats the one I could find, sorry.
When Prof Andrew Ng first ran his Machine Learning MOOC, very many of us relied on Octave. An Octave dev showed up to help students and a fundraiser was organised in return.

In the cases you mention, surely it would be trivial to prove if the problem was Ghostscript or not by demonstrating graph 3 or the missing data points were output or not by Octave before Ghostscripts png conversion.

Surely modularity makes it easier to isolate bugs to a module ?

Were these bugs fixed ? You should go back and see.

> An Octave dev showed up to help students and a fundraiser was organised in return.

Hi, that was me.

There wasn't a fundraiser, just a thank-you card for jwe, Octave lead dev. We get some money from FSF donations but not enough to support a single dev. We mostly use the donation money to pay for travel expenses for the yearly Octconf.

I used to have an Octave job, but my current job is unrelated to Octave. I've been trying to court Enthought and Continuum Analytics to try to hire me or any other Octave dev to work on Octave again. My pitch is that while moving people off Matlab is a laudable goal, there's a lot of Matlab code out there that could be used as-is while they write new code in Python or Julia or whatever. With stuff like Pytave that glues Octave and Python, Octave could help their customers transition off Matlab.

http://savannah.gnu.org/bugs/?44050 I could easily reproduce the issue on a few different machines. I'm pretty sure it is ghostscript issue because it also hangs similarily when converting some images to pdfs. I can't remember if I even bothered to report the issue on GhostScript tracker - there are exactly the same issues being reported as early as 2008 all the way to today.
Hi, as one of the devs who commented on your issue (and the one who closed it as "not our problem"), I empathize with your position and agree that it can be frustrating to deal with large complex projects with a lot of dependencies. If any of our comments contributed to your feeling less welcome or less empowered to use or help improve Octave, then I sincerely apologize.

I have personally been affected by more than a couple of ghostscript bugs that have drastically impacted my use of Octave over the years, either crashing, busy waiting, or memory grabbing. My first response has always been to start digging into ghostscript to find out why it's screwing me over and try to fix it myself or come up with a workaround.

Not making an excuse, just offering that for myself one of the immeasurable advantages of working with completely free software is that I feel empowered to at least try to identify and fix problems when they happen.

Why not Python?