Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Software Science

GNU Octave 3.0 Released After 11 Years 222

Digana writes "GNU Octave is a free numerical computing environment highly compatible with the MATLAB language. After 11 years of development since version 2.0, stable version 3.0 released yesterday. This version is interesting because unlike other free or semi-free MATLAB competitors like Scilab, specific compatibility with MATLAB code is a design goal. This has manifested itself in goodies like better support for MATLAB's Handle Graphics, a syntax closer to MATLAB's own for many functions, and many functions from the sister project Octave-Forge ported to the core Octave project for an enriched functionality closer to the toolboxes provided by MATLAB. GUI development is underway, but still no JIT compiling, which is a show-stopper for Octave newbies coming from MATLAB with unvectorized code."
This discussion has been archived. No new comments can be posted.

GNU Octave 3.0 Released After 11 Years

Comments Filter:
  • 11 years? (Score:1, Insightful)

    by Anonymous Coward on Saturday December 22, 2007 @07:58PM (#21793954)
    Why is 11 years significant? 2.0 and 3.0 are just version numbers.

    It's been over 11 years since Linux 2.0, and Linux 3.0 is nowhere in sight, but I don't see anybody complaining about its version number.

    OTOH, GNU Emacs is at version 22, and I don't see either its proponents or its detractors claiming this is a good or bad thing.

    Or maybe I'm just amused because it's on Slashdot. I mean, releasing a new major version of some numerical analysis software must be really easy, right? It's not rocket science, like, say, using CSS for a webpage, huh? Huh? *nudge*
  • Good and bad news (Score:5, Insightful)

    by mangu ( 126918 ) on Saturday December 22, 2007 @07:59PM (#21793958)
    The good news is that they are doing in a free way what the Matlab Co. has been charging (a lot!) for, which is distributing an API to use all those libraries the US Federal Government labs give away for free [netlib.org].


    The bad news is that they are wasting their time using the Matlab syntax, while there is a much better alternative [scipy.org] for doing exactly the same thing. Python [python.org] is universal, if there's anything you can do with a computer, the simplest way to do it is with Python, so why do it the hard way?

  • by Anonymous Coward on Saturday December 22, 2007 @08:10PM (#21794028)
    One of the reasons I haven't moved my students completely to Scilab or Octave is an excellent implementation of 802.11 in Matlab. It uses a bunch of toolkits and blocksets. I'm not even thinking of translating it.
    http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=3540&objectType=FILE [mathworks.com]

    I wonder how many other such applications there are.
  • by betterunixthanunix ( 980855 ) on Saturday December 22, 2007 @08:32PM (#21794138)
    Matlab syntax is weird, but sometimes you are forced to work with other people who may be using Matlab. Python is not universal, 95% of the world's computers (that is to say, the ones running the most popular desktop OS) still do not ship with a Python interpreter, and many engineers are using Windows systems with Matlab and neither Python nor PERL environments.

    Like Windows, Matlab has become too popular for everyone to just drop and move on to some other platform. Python may be great, maybe even for scientific computing, but Matlab is just what people are used to. It is good that Octave exists as a free software clone of Matlab -- a great way to show people (my fellow engineers included) that it is entirely possible to live without proprietary software, and a great way to bring non-programmers into the free software movement.

  • Re:11 Years? (Score:5, Insightful)

    by betterunixthanunix ( 980855 ) on Saturday December 22, 2007 @08:53PM (#21794248)
    Features? Maybe I can't beat you there. Reliability? Absolutely (GNU code is at least on par with BSD and other Unixes, and far more reliable than other systems, in my experience). GNU won't waste your time with a license check; when my school's Matlab license server went down, me and my peers were left out in the cold, with final projects looming over our heads.

    My school will not give students a copy of Matlab for any purpose, because of license restrictions. We can either use a school terminal (ever wonder what a crowded computer lab looks like?), or run it off a Solaris server (X11 forwarding, leaving Windows and most Apple users out of the loop) which has strict resource limits imposed (forget processing anything big). Of course, with this setup, it is completely impossible to hook up any specialized hardware to the system running Matlab, so to process data from the real world, we must first collect it on one computer, then copy it over to a computer with Matlab installed (which is rarely in the same room as the equipment in use), and no, you cannot process anything as it happens, and yes, our disk space on the Solaris server is limited to 100MB, so your data can't be too large (not that you get enough CPU cycles to process anything large).

    Octave? Right on my system. On any system I want, actually. I miss a few features, and bit of Matlab compatibility (not nearly as bad as it sounds, I have yet to have it be an actual problem), and a GUI (which I am not at all concerned about -- I'll take a functional CLI over a dysfunctional GUI any day), but in the end, I get what I needed: Something that allows me to work with other people's Matlab code, without having to wait in line for a computer or worrying about a resource limit on a Unix server. If Mathworks stopped screwing around with license restrictions, that are even worse than Wolfram (the maker of Mathematica, which is also mangled in license restrictions), I would never have even looked into Octave.

  • by samkass ( 174571 ) on Saturday December 22, 2007 @09:20PM (#21794382) Homepage Journal
    The good news is that they are doing in a free way what the Matlab Co. has been charging (a lot!) for

    But taking their time at it. Don't get me wrong-- I'm glad open source exists. But this project kind of supports the idea that open source can't really innovate, only follow (sometimes far) behind what proprietary companies invent. It would have been really interesting to see what some of the open source folks could do if their goal was to surpass MATLAB instead of be an almost-free version that's almost as good as something that people almost like to use.
  • by CaptainPinko ( 753849 ) on Saturday December 22, 2007 @09:45PM (#21794544)

    I suppose you mean the spaces vs. tabs thing, maybe you're right, but no one can deny that Python has an extremely simple syntax. You can do anything with it, from HTML parsing to a game physics engine to 3d graphics to Excel spreadsheets to... you name it.
    You've also just described Lisp/Scheme (i.e. simple syntax and (a) languages(s) you can do anything with))... but switching to their syntax would be quite contentious. If you are gonna argue for a syntax switch you are going to have to have better points than that, especially when the default is (near-)compatibility with a popular product with a large codebase out there.
  • by r00t ( 33219 ) on Saturday December 22, 2007 @09:54PM (#21794588) Journal
    Python is about equally bad as far as syntax goes. Python behavior also presents difficult obstacles to optimization; the Matlab system apparantly does not (one can convert to C).

    The LISP guy has a point, though that syntax is even uglier. (like being in a sensory deprivation tank)

    If you really do want to crunch numbers, you don't screw around with any of the above. You use FORTRAN. Maybe that isn't cool, trendy, hot, exciting, whatever... but it works damn well. Assuming your idea of the C language doesn't include heavy use of the "restrict" keyword, FORTRAN optimizes even better than C. FORTRAN has a genuine international standard; it won't suddenly change because Guido gets a random urge. For number crunching, the world is full of FORTRAN code. Really, you can't do better.
  • by ScrewMaster ( 602015 ) on Saturday December 22, 2007 @10:44PM (#21794870)
    Okay, I'll define it. The math man at our company only uses Matlab intermittently (the occasional R&D project) and for the past few years it was decided that we couldn't justify buying support or upgrades. This year he was asked to look into what it would cost to upgrade. He was told that we'd need to make up all the money that Matlab didn't get all those years first, before we could even be considered for an upgrade, and conveniently just purchasing a new copy would be even more expensive. Now this was in spite of the fact that they had provided no support or services in that period. Ended up being about fifteen grand for one seat. Let me tell you, that's a sense of entitlement with a vengeance, one that even the RIAA could appreciate. In other words, play our game and pay us our yearly juice money or we'll shove it up your ass.

    I know Matlab is a complex product that took decades to develop, but demanding money for services not rendered, just because you know the customer has nowhere else to go, is usurious at best. I presume you've never had to deal with them in that vein because you've obviously bought into their system and it's worth it to you to keep paying them. I have no problem with that. But their attitude left a very bad taste in our corporate mouth, and given that our needs are simplistic compared to yours, we'll be evaluating what else is out there. Their behavior in this regard is not what I expect of a truly customer-oriented operation, but it is what you expect when a single company achieves a de-facto near monopoly.
  • by ScrewMaster ( 602015 ) on Saturday December 22, 2007 @11:15PM (#21794984)
    I didn't say it was the price for one seat. It was the cost to pay for the software maintenance that we had chosen not to pay for the past few years. I wish people would read what I post instead of just the first line. And there was no negotiation involved: just a simple email request for current pricing. I saw the response from Mathworks. We were all kinda surprised at the amount.
  • Re:11 Years? (Score:3, Insightful)

    by lm317t ( 971782 ) on Saturday December 22, 2007 @11:40PM (#21795132) Homepage
    Well I've been a matlab and octave user for 10 years and I think I used the matlab GUI once, but its so much slower than vim that I ditched it.

    Octave needs a gui like python or bash does.
  • Re:11 Years? (Score:3, Insightful)

    by Gerzel ( 240421 ) <brollyferret@nospAM.gmail.com> on Sunday December 23, 2007 @02:20AM (#21795988) Journal
    Yes. Sure. Lets base judgment of an entire paradise on a single relatively small bit of software in that paradime.

    Just like closed source, open source has some lemons too.

    I mean after 5 years of development by the biggest software company in the world Vista shows that closed source isn't that great either.
  • by insignificant1 ( 872511 ) on Sunday December 23, 2007 @04:00AM (#21796350)
    Wow. The leagues of uninformed.

    You think there are two things here, Matlab and Octave. Matlab is proprietary, and Octave followed it. It's as simple as that to you.

    But wait, where does much of the meat in Matlab come from? Netlib. OPEN SOURCE! HAHAHAHA (Some of the Netlib code has license restrictions, some does not.)

    http://www.netlib.org/ [netlib.org]

    What does Matlab use for optimized BLAS routines to run super-quick on your Windows/Linux/Mac? ATLAS. Check out the Sourceforge page:

    http://math-atlas.sourceforge.net/ [sourceforge.net]

    The really important thing for me is that now that Octave is out there (actually, Octave has been around since about 1994), the explorations that I made in undergrad in Matlab can be done entirely in Octave now and forever. A good tool doesn't get worse as it gets old, it just gets used more.

    If there was once a patent on hammers, there is no less usefulness in (but much lower prices on) hammers after the patent expires. Now we get much of Matlab's functionality completely free. Congratulations John Eaton, et al., for giving all who follow another tool to use freely to build bigger and better tools.

    And as others have mentioned, if you don't like Matlab/Octave, use another tool that tried to accomplish the task of a high-level numerical tool in a different way. To me, however, I can code up an algorithm, test out concepts, and produce incredibly helpful visualizations in a matter of minutes using Matlab or Octave. Any tool this powerful has a learning curve to get over before it is so efficient, and I climbed that learning curve with Matlab, but I was able to use Octave immediately because I had already gone through that process using Matlab.

    If you made a completely innovative new tool, it likely wouldn't be worth it for me to use for a while because I am so fast at coding Matlab/Octave, and the whole point in these tools is to make the programmer's job easy (if I wanted fast code execution, C or Fortran could be used).
  • by gbarta ( 139877 ) on Sunday December 23, 2007 @07:29AM (#21796870)
    The comment about lack of pointers in FORTRAN made by the grandparent doesn't mean what you think it does. It refers to indirect access to values and goes for references just as well as pointers. It has nothing to do with garbage collection and little to do with pointer arithmetic. The statement that "computer scientists find the lack of pointers terrible" is likely to refer to the algorithmic benefits of indirection, not a desire to shoot themselves in the foot with pointer arithmetic or the like.

    The reason it might be seen as a strength is that since FORTRAN doesn't have pointers, FORTRAN compilers generally don't have to deal with something called 'pointer aliasing' (which could just as easily be called reference aliasing, again it has to do with inderection and is nothing to do with GC or pointer arithmetic) and so can often assume that two different variables must have independent values and can make many low-level optimizations that other languages cannot make so easily.

    This includes pulling values from memory into registers and changing their values in the register without having to worry about the potiential other references to this memory (the aliases) becoming being out of date.

    It also includes being able to use hardware vectorisation without having to make as many checks that memory does not overlap in two array sequences.

    It probably includes other things as well, but you would have to ask a compiler writer or maybe a FORTRAN programmer, sadly I am neither.

    (PS I think this all refers to older versions of FORTRAN; I am pretty sure recent versions do in fact have pointers to allow enough indirection to keep the computer scientists happy.)

Saliva causes cancer, but only if swallowed in small amounts over a long period of time. -- George Carlin

Working...