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, Informative) by Anonymous Coward on Monday June 01 2015, @07:44PM
Whilst Octave is nearly code compatible with Matlab, Julia is a fresh look at a faster, better numerical computing language. Seriously, look at Julia.
(Score: 4, Informative) by AnonTechie on Monday June 01 2015, @08:09PM
Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. http://julialang.org [julialang.org]
Albert Einstein - "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."
(Score: 2) by FatPhil on Tuesday June 02 2015, @10:54PM
Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
(Score: -1, Flamebait) by Anonymous Coward on Monday June 01 2015, @08:12PM
Because it's "for the cloud"!! Oooooooh.
(Score: 0) by Anonymous Coward on Monday June 01 2015, @09:21PM
I know you Julia guys have a huge R chip on your shoulder (pretty much every web page has something to the effect: "See, we really are better than R!"), but geez, why not grow up and grow a pair instead of modding me down?
I know. How about you just STFU until you've stopped fucking around with basic functionality and you actually are something useful to use? Want to do some curve fitting? Well, you need to call "curve_fit" from the Optim package. Oops! My bad! It is in the LsqFit package, and we've decided to change what the function returns. I hope that didn't fuck up any of your code. It's easier for me to just slap it together in Octave than to try to sort out your dicking around. What, is Julia written in PHP or something, that it has to fundamentally break shit on version releases?
(Score: 2) by physicsmajor on Monday June 01 2015, @10:00PM
If you like Julia but want more maturity/stability, check out the Scientific Python Stack (SciPy, NumPy, Pandas, Simpy, Matplotlib, and Nose) plus scikit-* for more specialized tasks like machine learning or image analysis.
(Score: 3, Funny) by kaszz on Monday June 01 2015, @11:42PM
And if you don't like Python tabulation nazism? ;-)
(Score: 4, Interesting) by physicsmajor on Monday June 01 2015, @11:58PM
For a language that deliberately decided to do away with braces or other markings of scope, using tabulation is just... prudent in Python. PEP8 isn't always a perfect standard, but simply having a standard makes the majority of code more readable/accessible/maintainable to the rest of the community.
I will admit I have a soft spot for standards that tell you to ignore the standard if you think it makes things worse ;)
I do understand those who don't like it, but personally I find the result incredibly clean and readable. The only valid criticism I've heard is that one can get "lost" with multiple tab levels, but with a quality editor you get a subtle mark at each stop. I know I'd much rather track indentation than attempt to hunt through and verify brace closures...
(Score: 3, Informative) by Anonymous Coward on Tuesday June 02 2015, @03:00PM
Scipy/Numpy/etc is really useful. However, the Julia syntax is much slicker for numerical tasks, since that was the original purpose. I've been using Julia for quite a bit of my own work. Since it can be nearly as fast as C, development is sped up by not having to write things in Fortran/C.
Critically, there is a package, PyCall, to call Python code. To do a simple plot with matplotlib:
using PyCall
@pyimport matplotlib.pyplot as plt
x=rand(10)
y=rand(10)
plt.plot(x,y)
plt.show()
You can barely tell the matplotlib parts are calling out to python. Lisp-style homoiconicity really allows for some pretty cool stuff.
(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
(Score: 0) by Anonymous Coward on Tuesday June 02 2015, @01:22AM
I really want to like Julia but the problem with it is, it always ends up looking like C++.