Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
GNU Octave 4.0 released with a new GUI (gnu.org)
131 points by jordigh on May 30, 2015 | hide | past | favorite | 32 comments


Source downloads:

https://ftp.gnu.org/gnu/octave/

Windows binaries, with source code:

https://ftp.gnu.org/gnu/octave/windows/

Earlier screenshot of the GUI, but very similar to the current version:

http://www.walkingrandomly.com/images/octave/octave_GUI_38.p...

The Windows binaries are partially due to commercial sponsorship. We are still selling more commercial support, and we are working on providing even more commercial options:

http://www.gnu.org/software/octave/commercial-support.html

Sorry, no Mac OS X binaries at this point. It has proven to be a much more difficult target than Windows, due to the impossibility of cross-compiling into it, plus several idiosyncracies in Apple's libraries. If you are comfortable with a CLI tool, Octave 4.0 is already in homebrew, which seems like the best option at the moment. If I could dedicate myself to this problem, I am confident I could put quite a dent into it.

If you are an Octave enthusiast, come to OctConf 2015 in Germany this September!

http://wiki.octave.org/OctConf_2015


Thanks for saving us the time! I'm going to try it out now.


Looks like brew is still offering up octave 3.8.2_1 (on osx).


The --head brew install option at the moment points to just a few commits ahead of 4.0. There has not been a lot of divergence. I expect the homebrew packagers will soon update the url to point to 4.0

I really wish I could dedicate myself to working on the Mac OS X packages. It really requires a lot of work.


The Windows binaries are partially due to commercial sponsorship.

What does that mean? Commercial companies paid to have the installers built for their use and are sharing, or you bundle adware in with the installers and call it sponsorship?


It means someone hired one of the developers in order to make the Windows binaries. He ended up forking MXE in order to accomplish this:

http://hg.octave.org/mxe-octave/file/default

There is no crapware anywhere. This is all GPL'ed, all GNU, all good for you. Commercial sponsorship does not mean we're out to screw you over. Quite the contrary, we're seeking commercial sponsorship in accordance with free software principles and to make Octave better for everyone.


I've never had to turn to Octave because I've always had an employer or University sponsored access to MATLAB, but I'm incredibly grateful this project exists. There is a ton of permissively licensed code written targeting MATLAB that is released for scientific and engineering purposes that would be DOA for many people without this project.

The origins of Octave are pretty amazing. Created essentially to support a single textbook and class in Chemical Engineering at UT Austin/UW Madison it is now nearly code compatible with a major commercial product and has been under continuous development for over 20 years.

Kudos to the developers/maintainers.


I did use Octave during my university time even though the course I was doing recommended and used Matlab. And I think for nearly the entire course, Matlab commands were an one-to-one translation to Octave. I personally feel science should be done using open tools.


I know some people who use Matlab to take data and every once in a while their experiments "break" due to forgetting to update their licenses.

Also for a long time Matlab broke on systems using the new Linux network interface naming convention (i.e. en0 instead of eth0) since the license manager was stupid.


The charge of stupidity could equally well be levelled at the gratuitous change to interface naming.


Even before, the interface names could be whatever one set them to, so it seems hacky to assume a certain form.


Well, I've no great love for FlexLM, but even less for changes to userspace that willfully break things in pursuit of this year's dubious concept of 'better'.


Well, you're right about not wanting to breaking things

But there was no 'naming convention' for network cards. And people can and will have more than one network card, with different names.

And it was changed for a very good reason https://access.redhat.com/documentation/en-US/Red_Hat_Enterp...

But of course people who do "license management" stuff only cares about this when it breaks.


I'd just observe that we can agree on the problem without agreeing on the quality of the eventual/current solution.


Even though I have University sponsored access to Matlab, I prefer Octave due to faster load time.


There are a few other minor perks to using Octave: it recognises more syntax than Matlab, it allows you to define functions anywhere, not just in function files, and slightly less insane semantics for some operations.

The biggest perk, however, is no license manager, and you can actually see all of the code, including the precise BLAS and LAPACK calls that we make. The backslash operator in Matlab is one of the juiciest secret sauces in mathematical computing.


Yes, I imagine the reason Matlab takes so long to start even with -nodesktop is the license manager. I mostly use Matlab/Octave as a glorified graphing calculator (anything complicated I do in ROOT) so the startup time really irks me. That said, I also of course appreciate that it's Free software.

And now that I realize that you're a (the?) core dev, I should say thank you!


Just a core dev. I actually have not been writing a lot of Octave code recently, and have faded into a more "managerial" or "support" role, helping with the website, the code hosting, and so forth. Other people have done a lot more coding than I recently.

Actually, most of my time has been spent talking to business people trying to grow our commercial support business so that Octave development can really take off.


Nope. it's the JVM overhead. Try -nojvm.


Thanks, that brings it closer in startup time to Octave. However, it disables the ability to make plots, which is a quite severe limitation.


For the people in my group, I have a stinking suspicion: they use matlab because it's called matlab. Also, they refuse to use octave, python, or anything else because they aren't called matlab.


Great, nice project! Timely for me also: I took Andrew Ng's machine learning class as a refresher a few years ago and enjoyed using Octave. I have been planning on making another pass through the class material again as a re-refresher so I appreciate version 4 being available.


I'm really glad people wrote octave and gave it to me for free, but I found a lot of unimpletmented functionality that kept me from getting things done, for example in image handling. I tried to port some code from matlab a couple of years ago, and ultimately had to start over with another environment after losing a lot of time. The basic stuff for things like math and plotting seemed to be present and complete in octave, but as soon as I got away from those kinds of things, I started finding stubbed functions and broken stuff. I hope that either I just didn't know what I was doing, or that octave is getting more well rounded...


Octave-Forge (http://octave.sourceforge.net/) is kind of a necessity to bring Octave closer to parity with Matlab, since a lot of the reason (at least for me) to use Matlab in the first place (as opposed to Python+Numpy+Scipy+... or Julia or in some cases R) is the wide variety of useful packages for whatever domain you're in...


Sorry if this is off-topic, but as someone who once sat through a four-hour compile of Octave several years ago and never touched it again, what exactly are the advantages of using Octave and R compared with the standard SciPy stack? (IPython, matplotlib, numpy, sympy, scipy, etc.)


4 hours to compile? I see you're using Mac OS X. This is why I really dislike source distribution in general, and I get very frustrated with Mac OS X users who praise homebrew. It really is not a very good distribution mechanism.

As to your second point for why Octave and not R or Python, my stance as an Octave dev is that you should use R or Python. But if you don't want to rewrite all of that Matlab code, tutorials, and papers out there and you still think they should run in something other than Matlab, that is when you use Octave.


From the changelog:

    ** The preference

          do_braindead_shortcircuit_evaluation

       is now enabled by default.
Yup, that put a grin on my face that is going to stay there at least for the rest of the day.


There's a GNU Octave PPA for Ubuntu but it's still at 3.8.

Is there a plan to update this to 4.0?

https://launchpad.net/~octave/+archive/ubuntu/stable


Of course. Give the packagers a bit of time.


Since I see it nowhere, I assume the OpenGL plotting library still has the limited range problem.


Are you reffering to something that has to do with the second bullet-point?:

> Octave now uses OpenGL graphics with Qt widgets by default. If OpenGL libraries are not available when Octave is built, gnuplot is used. You may choose to use the fltk or gnuplot toolkit for graphics by executing the command graphics_toolkit ("fltk") OR graphics_toolkit ("gnuplot") Adding such a command to your ~/.octaverc file will set the default for each session.


Not exactly. Unlike gnuplot, FLTK uses single precision internally to represent the data, which limits the range of values it can plot. If you try to print anything outside that range, it'll just print a blank graph.




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: