I wasn't aware of the GNU Octave project until I saw a post on Reddit that it had hit version 4.0.0. If you're not familiar with it either, here's a brief overview:
GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation.
So why is this exciting? Aside from a Windows installer for all you people too lazy to switch to GNU/Linux, it apparently finally got a GUI (kind of a must for "modern" software):
Octave 4.0 is a major new release with many new features, including a graphical user interface, support for classdef object-oriented programming, better compatibility with Matlab, and many new and improved functions.
You can also get the full list of user-visible changes here.
Share and enjoy!
(Score: 2) by MichaelDavidCrawford on Monday June 01 2015, @09:53PM
I've never actually use it as I prefer to write numerical code in C++. Sometimes I write it in FORTRAN but I do so when working with someone else's FORTRAN code such as CERNLIB.
What leads me to regard MatLab as so bad is its programming language. While I haven't written any I have attempted yet strictly speaking failed to read some. While I can see the point of a Free Software clone, the clone of garbage is still garbage.
Ironically MatLab experience is a common requirement for embedded systems employment. That means I can't even apply for a lot of work I would otherwise be quite good at, as Computational Physics was my main area of focus during my studies both at Caltech and at UCSC. It's much like my recent gripe about being required to have a GitHub account - it doesn't count that one maintains one's own git repo; that's not the same as having an account that any damn fool can sign up for.
Yes I Have No Bananas. [gofundme.com]
(Score: 2) by novak on Tuesday June 02 2015, @09:39PM
As someone who has written matlab professionally, I agree entirely. The language is poorly made for general use and extremely slow. Just play around with named pipes on linux and you'll see what I mean. When analyzing non-trivial data sets who in their right mind would choose an interpreted language with java internals? Not a real numerical programmer. For problems involving dynamic allocation of large amounts of memory it clocks in (according to my benchmarks) about 2X slower than python and 100x slower than C or FORTRAN.
But because it has a nice GUI and is given to universities for free it is seen as a valid software language instead of a $20K desktop version of a graphing calculator. But how many undergrads even know what a runge-kutta solver is, let alone how to write their own? People tell them to "just use matlab" and they do, to the detriment of the entire industry.
novak
(Score: 2) by MichaelDavidCrawford on Wednesday June 03 2015, @01:32AM
I told my students to use any language they pleased. Most used either basic or fortran; I learned C when I took the course myself. Someone I call "Cipher" used APL, went on to get a PhD in Math and is now an NSA cryptologist.
But now that same class uses MATLAB. That doesn't make a whole lot of sense to me; I'd think that they'd want to teach people to create programs like MATLAB. For Caltech's Computational Physics to use MATLAB would be like Ford Motor Company employing the United Auto Workers to ride around in taxicabs.
We were taught runge-kutta right from the start. My very favorite program - that I still have though not readily at hand - was a planetary orbit simulation, written in basic, in which a rogue star captures the earth then flings it into interstellar space.
You'd think a program like that, in basic on an 8086 would be quite slow, or at least inaccurate but no it was fast, and the orbits would stay elliptical for quite a long time if that rogue star didn't turn up.
Yes I Have No Bananas. [gofundme.com]
(Score: 2) by novak on Wednesday June 03 2015, @04:13PM
Very cool. I did some orbital mechanics simulations myself, including a differential corrections algorithm for L1 halo orbits and a 3-DOF reentry simulator, and I usually program in C. I'm at a much lower level of education than you as I only have a bachelor's degree but there are still some of us who learn how to program properly, even with matlab everywhere.
novak