Hacker News new | ask | show | jobs
by danso 3629 days ago
> There are organizations that proclaim support for free software or the GNU Project, and teach classes in use of nonfree software. It's possible that they do some other things that really support free software, but those classes certainly don't. On the contrary, they work directly against the free software movement by promoting the use of the nonfree software. That increases the magnitude of the practical problem it is our mission to correct.

Just to throw out an extreme example for discussion: the Mozilla Foundation would seem to be one of the free-software organizations that RMS critiques.

One initiative they've supported is Software Carpentry: http://software-carpentry.org/scf/partners/

One of Software Carpentry's packaged lessons is for MATLAB: http://software-carpentry.org/lessons/

To be fair, the current MATLAB lesson plan includes asides for how GNU Octave can be used...but the fact that the curriculum is titled "Programming with MATLAB" certainly counts as promotion of non-free software.

Edit: by "extreme", I mean that Mozilla is in most people's minds a passionate advocate for free software, and the number of their affiliations with proprietary software lessons is extremely small as far as I can tell.

Edit 2: FWIW, RMS's definition of non-free software may be much more expansive than most people's:

https://stallman.org/airbnb.html

> Airbnb requires you to run nonfree software (an app, or Javascript). It puts you in a data base easily available to Big Brother (just like a hotel).

JavaScript is many things, but nonfree isn't one of them.

7 comments

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
> 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?
Maybe he means the JavaScript code executed on Airbnb's website is not licenced under a free licence and thus nonfree?
Yeah that's probably right: https://www.gnu.org/philosophy/javascript-trap.en.html

Ignore my tangent.

Here is RMS' piece on nonfree javascript:

https://www.gnu.org/philosophy/javascript-trap

RMS isn't talking about how easy it is to access the source and modify it. What he's saying that even though the source is there, it's covered by copyright and using that source code for any purpose other than running it unchanged in your browser is a violation of that copyright. Whether or not you choose to obey that rule is besides the point.

I certainly don't agree with RMS on many points, but the fact that most Javascript code on websites are "non-free" according to FSF's definition is pretty clear.

> JavaScript is many things, but nonfree isn't one of them.

Javascript is often minified, and it's generally important to the Free Software movement that you get the original source. Otherwise, a company could comply with an open source license by providing you with a compiled binary, which does have all the functionality the source code describes.

The other issue might be that you get to view the Javascript source, but might not be able to redistribute it or modify it.

He's thinking of it like a brand or certification.

An analog could be claiming to support vegetarianism, but running a minor course on butchery.

Software written in JavaScript may be free or non-free, like software in any other programming language.

In this particular case the code is not freely licensed and so (by rms' definition) is not free.

> JavaScript is many things, but nonfree isn't one of them.

I believe he is referring to the license to use/modify the JS being delivered by Airbnb specifically in this case, not the language itself.