|
|
Log in / Subscribe / Register

GNU Octave 4.0.0 Released

From:  "John W. Eaton" <jwe-AT-octave.org>
To:  help-octave-AT-gnu.org, octave-maintainers-AT-gnu.org, info-gnu-AT-gnu.org
Subject:  GNU Octave 4.0.0 Released
Date:  Wed, 03 Jun 2015 16:44:47 -0400
Message-ID:  <556F673F.4060804@octave.org>
Cc:  jwe-AT-octave.org

The Octave developers are pleased to announce a major new release
of GNU Octave, version 4.0.0.

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.

An official Windows binary installer is also available from
ftp://ftp.gnu.org/gnu/octave/windows

A list of important user-visible changes is available at
http://octave.org/NEWS-4.0, by selecting the Release Notes item in
the News menu of the GUI, or by typing "news" at the Octave command
prompt.

We hope you find Octave to be useful.  We could also use your help to
make Octave even better for the future, and further improve the user
experience for both novices and experts alike.

   * If you are a skilled software developer, you can help by
     contributing your time with Octave's development.
     See http://octave.org/get-involved for more information.

   * If Octave does not work properly, you are encouraged to report the
     problems you find.  Bug reporting guidelines are available at
     http://octave.org/bugs

   * Your contributions help to make Octave better.  Please see
     https://my.fsf.org/donate/working-together/octave

Commercial support options are also available.  Please see
http://octave.org/support for details.


The source code for Octave 4.0.0 is available for download at:

   http://ftp.gnu.org/gnu/octave
   ftp://ftp.gnu.org/gnu/octave

Please see http://www.gnu.org/order/ftp.html for mirror sites around
the world.  Or you may use http://ftpmirror.gnu.org/octave, which will
redirect automatically to a nearby mirror.

Links to binary (executable) versions for various systems will be
listed at http://octave.org/download as they become
available.

As always, many people contributed to this Octave release.  A complete
list of contributors may be found in the Octave manual.


About Octave:

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.  Octave
is normally used through its interactive command line interface, but
it can also be used to write non-interactive programs.  The Octave
language is quite similar to Matlab so that most programs are easily
portable.  A full description of Octave capabilities is available at
http://octave.org/doc/interpreter

-- 
If you have a working or partly working program that you'd like
to offer to the GNU project as a GNU package, see https://www.gnu.org/help/evaluation.html.




to post comments

GNU Octave 4.0.0 Released

Posted Jun 6, 2015 9:17 UTC (Sat) by paulj (subscriber, #341) [Link] (13 responses)

Octave is an awesome, powerful numerical programming language and library of utility functions.

Thank you Octave project!

GNU Octave 4.0.0 Released

Posted Jun 7, 2015 3:49 UTC (Sun) by torquay (guest, #92428) [Link] (12 responses)

One of the bugbears in Octave is its much poorer performance (in comparison to Matlab) on anything with loops (ie. non-vectorized code). As far as I recall there was some experimental work towards incorporating a JIT to address this performance issue.

The Octave 4.0 release notes don't say anything about the JIT. Is there any news on the JIT development front?

GNU Octave 4.0.0 Released

Posted Jun 7, 2015 19:32 UTC (Sun) by paulj (subscriber, #341) [Link] (10 responses)

Yes, to get performance from Octave you need to take care to frame your problem in terms of matrix/vector operations, and use accumarray, cellfun() and friends. If you're hand-writing iteration over a vector/matrix in Octave, you should stop and think "Maybe I'm doing it wrong?". :)

In some ways this makes it hard for someone with a "normal" programming background to get the best out of Octave, because we will instinctively go and write loops over things. In other ways, it's really good as a "normal" programmer to get into Octave and learn to adjust to that different, more parallel way of thinking. Having to stop and explicitly consider the dependencies between operations on different matrix elements, and think "How could I specify those as a series of independent parallel operations on matrix elements?" I think can have benefits that carry back to more general programming too.

GNU Octave 4.0.0 Released

Posted Jun 8, 2015 6:38 UTC (Mon) by alexl (guest, #19068) [Link] (7 responses)

I haven't used matlab in years (since school) but this used to be exactly true for matlab too.
Did matlab become more performance at "regular" (non-matrix/vector) code?

Julia

Posted Jun 8, 2015 7:22 UTC (Mon) by danielpf (guest, #4723) [Link] (4 responses)

Regarding perfomance on vector/scalar operations, Julia is probably the language for scientific/technical computing having achieved the most progress, with speed comparable to C/Fortran (http://julialang.org/).

Julia

Posted Jun 8, 2015 13:39 UTC (Mon) by torquay (guest, #92428) [Link] (1 responses)

I'm not quite convinced by Julia -- it seems like a needless reinvention of the wheel. What does it offer over C++ coupled with a linear algebra library such as Armadillo ?

Julia

Posted Jun 8, 2015 15:57 UTC (Mon) by danielpf (guest, #4723) [Link]

Julia is more thought as a replacement of Matlab than C++, with the added bonus of C/Fortran speed.
The huge success of Matlab-like languages (including Python) is their interpreted nature
allowing an easier development process than compiled languages. Julia keeps this while
adding efficiency. The continuous success of interpreted languages comes from a real need
that compiled languages have not fulfilled.


Julia

Posted Jun 9, 2015 10:12 UTC (Tue) by Wol (subscriber, #4433) [Link] (1 responses)

What about APL or J? Although they seem to be very niche, I hear almost nothing about them.

(Somewhere, I should have the source for J on a backup tape/CD/whatever)

Cheers,
Wol

Julia

Posted Jun 11, 2015 3:34 UTC (Thu) by wtanksleyjr (subscriber, #74601) [Link]

Or you could download it -- the current version is GPL. :)

GNU Octave 4.0.0 Released

Posted Jun 8, 2015 13:30 UTC (Mon) by magnuson (subscriber, #5114) [Link]

Yes, I use Matlab actively and it still suffers a lot with loop heavy coding styles. You always want to vectorize your code to get any respectable performance.

On the other hand I view Matlab as really an overgrown graphing calculator. As soon as you need real performance and you aren't just doing design space exploration (at which it excels) then you are better of targeting some other language. The 'batteries included' stuff can be very nice though, provided you're willing to pony up for the appropriate toolboxes.

Julia looks very interesting along those lines although I haven't really had a chance to play with it yet. I think I would explore that for new projects and keep Octave around for 'must have Matlab compatibility' concerns.

GNU Octave 4.0.0 Released

Posted Jun 8, 2015 17:05 UTC (Mon) by andrel (guest, #5166) [Link]

Matlab has had a JIT for about a decade now, and in many cases loops run as fast as the equivalent vectorized approach. Code runs much slower if one turns the JIT off. Matlab also has multi-core implementations of many of the common vector operations, and runs much slower when restricted to only one core. For one project I'm involved with we saw runtime triple when JIT was off and only one core was used. (Four-core CPU.)

Why Matlab instead of Python for that project? Our OEMs and instrumentation vendors provide Matlab toolboxes, but don't support Python (nor Octave). Everybody on the team knows Matlab, but some key folks don't know Python. And when we started Python didn't have an equivalent of Matlab's gpuArray. (Numba may provide that now.)

GNU Octave 4.0.0 Released

Posted Jun 8, 2015 13:32 UTC (Mon) by torquay (guest, #92428) [Link] (1 responses)

    In some ways this makes it hard for someone with a "normal" programming background to get the best out of Octave, because we will instinctively go and write loops over things.

I do understand the need to frame operations in terms of vector and matrix ops, however in many cases you simply cannot get away from using explicit loops. This often comes up in any non-trivial algorithm that needs to directly manipulate matrix elements.

Matlab has realized this deficiency and for quite some time it has included a JIT. A JIT is of course not a full replacement for rewriting speed-critical parts in C++ (via the MEX interface), but in many cases it does an adequate job. It certainly puts the performance of Octave to shame.

GNU Octave 4.0.0 Released

Posted Jun 8, 2015 16:26 UTC (Mon) by dashesy (guest, #74652) [Link]

MATLAB is good to write small scripts for some DSP college course. I used MATLAB a lot before I learned how to use iPython and SciPy. For any *real* application MATLAB is a horrendous choice in terms of both performance and productivity. The editor (that they take so much pride in) is the worst, stuck in 80s when it comes to IDE and Project management (compare that to PyCharm+iPython+Notebook web interface, ...).
The language has a hack as OOP like a wart that does not look like the rest of it, data structure is poor and MEX is not even comparable to Cython in productivity and performance. Passing a global cell array to all functions is so common in medium-sized projects (all I have seen related to communications) that is not even funny. Maybe 14 years ago without today's MATPLOTLIB, when filter design and signal processing did not have as many easy-to-use libraries in Python it would have made sense to write scripts in MATLAB but now it is just a waste of students time that will not teach them a real-life language. </end rant>

R/CRAN arguably more powerful than MATLAB

Posted Jun 9, 2015 6:17 UTC (Tue) by gmatht (subscriber, #58961) [Link]

The open source R language is also considered quite fast, and has a truly massive library of functionality (CRAN). While Octave felt like a cut down version of MATLAB, R actually seemed more powerful to me, even with MATLABs expensive toolboxes. MATLAB did seem a little more polished, however.


Copyright © 2015, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds