GNU Octave 3.0 Released After 11 Years
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."
Tell me again why GNU FreeSoftware is a better development model if you don't mind. It may not be the best now, but just wait until HURD is released... then this development model's superiority will be obvious!
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
Indeed. I can't wait to play Duke Nukem Forever on my new GNU/HURD system...
The bad news is that they are wasting their time using the Matlab syntax, while there is a much better alternative for doing exactly the same thing. Python 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?
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
I wonder how many other such applications there are.
It turns out that Octave is one of the lesser-known products of 3DRealms. Also, Duke Nukem Forever/Hurd will be out next quarter.
You see? You see? Your stupid minds! Stupid! Stupid!
But it was under development the whole time.
I know some people might disagree with me, but I'm beginning to think some open source projects would benefit from using a year for the public version number:
Octave 2008 (3.0.x)
Thunderbird 2006 (2.0.x)
Firefox 2008 (3.0.x)
FreeBSD 2006 (6.0)
FreeBSD 2008 (7.0)
PostgreSQL 2006 (8.1)
PostgreSQL 2007 (8.2)
PostgreSQL 2008 (8.3)
While internally, the product could use the same version scheme it did before, I think many open source projects are far too anal about version numbers. The stubborn refusal to bump up the "big" version field doesn't help public image because if it never moves up people think the project is dead.
The only version number that matters is the build number and repository version, the rest is marketing. Granted the year scheme isn't perfect in the early stages of a product when functionality is drastically changing every 3 months, but on mature products, I think we could all really benefit from number schemes that use the year the product was release.
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.
Palm trees and 8
I have been using Octave heavily over the past few years (and done a little light development), and I can say for certain that development is accelerating. In the last few years, there have been several new large contributors. One of them has made significant improvements to getting the bleeding edge Octave running with all the bells and whistles and installers on Windows, another dedicated to putting out binaries for Macs. All the core distributions have fully optimized Octave packages available. Most of the handle graphics compatibility has been done in the last 12 months. I know there is a push by people who are not the core developers to make an IDE (some based on Eclipse, others on GtkSourceView/VTE, others on QT). There has been work to make the debugger better. I guess my point is that a lot of project like this can take time to develop critical mass and that I think Octave is well on its way. Just as an aside, I think the design and implementation of Octave is great. It is the first kindof big open source project that I have really been able to wrap my head around in terms of understanding the code base and where things are/how to hack on it.
Ah, but can it give me a larger penis and a rolex? Not that I need either, but I certainly wouldn't turn down the chance to get them.
(\(\
(=_=) Bani!
(")")
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.
Define not "not treating customers well."
I've called them with a fairly high level support problem. I got patched directly through to an engineer and within 7 hours (we had been pounding our heads against the wall for a week) we had a solution.
I've heard numerous other stories of similar fate (which is where I got the idea to call).
While Octave is fine for supporting *most* of the features of Matlab. There is a segment of the market that Octave is never going to touch. Simulink, most of the extra toolboxes, direct from Simulink to ECM Flash software. Some of the high level Power Sim blocks, hardware in the loop stuff (From dSpace). "Matlab" is just the tip of the iceberg when it comes to Mathworks software. We even have people writing S-Functions, I'm picking up MEX to speed up some data routines.
I live and breathe on Matlab and for most of the stuff I do, Octave won't touch it. For 'us' Octave will never be competitive.
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.
The higher the technology, the sharper that two-edged sword.
> Define not "not treating customers well."
.x.x upgrades for more than a thousand US dollars a year), I received several of the usual reminders to renew, followed by a very strange email:
OK, I'll define it for you.
I have been a Matlab user since my first graduate classes in control systems in the early nineties, when it ran on old PCs in our controls labs and didn't have the current integrated GUI. It was a revelation to be able to perform matrix and control system analyses in such a simple way, with the many built-in functions (lsim, step, bode, margin, etc.) There was nothing else like it and it taught me a lot.
In my subsequent work as a controls engineer in the astronomy field, I have used Matlab consistently for many years, occasionally requesting technical support - as you mention - and normally getting a good response. I have downloaded free evaluations of new toolboxes and sometimes we have followed up with a purchase, if the product is worth it. We use Simulink a lot for design, and this is also a really good tool.
Over the last two years or so, Matlab - the company - has been getting more unfriendly. When I decided not to renew my ongoing 'maintenance' package with them, after I saw we were getting poor value for money per year (a few
"September 25, 2006
Dear Mr. (Name Deleted):
(Company Name Deleted) is a valued customer of The MathWorks, Inc. and we appreciate your business. As you are probably aware from reading press and industry reports, software license compliance remains a challenge for the computer software industry. Like many of our peer companies, The MathWorks is implementing a license compliance audit process and has engaged an independent third-party auditing firm to assist us in performing this work.
This letter does not indicate that your company has been selected for an audit, but rather, serves as a general announcement of the program. While we are in the planning stages of the program, we wanted to take the opportunity to inform you of this activity. We realize it is very important to answer any questions you may have about the program and we want to work hard to eliminate any surprise if your company does get selected for review.
As we move forward with our program, we will begin to select various customers to conduct compliance audits pursuant to the terms of our software licensing agreement. If your company is selected, you will be notified in advance by a representative of The MathWorks. Our auditors will then contact your company to discuss the audit timing and procedures, and request documents to help make the process run as efficiently as possible.
The procedures our auditors will follow are designed to validate software licenses deployed and measure deployment against historical records. We understand that you are busy and every step will be taken to minimize the impact to your daily operations during the process.
If you have questions about your current usage of MathWorks products, please do not hesitate to contact the Installation and Licensing Team by e-mailing: support@mathworks.com
We value our relationship with your organization and look forward to your support.
Sincerely,
The MathWorks Licensing Compliance Team
To update your address, send e-mail to: service@mathworks.com
The MathWorks, Inc. - 3 Apple Hill Drive, Natick, MA 01760 - 508-647-7000"
I never heard more about this, but it looked suspiciously like applying a bit of pressure - 'if you don't want a visit - or the possibility of one - from our licensing compliance goons, why not just cough up that maintenance fee'. I mean, if piracy and so on is such an issue, then check out every single customer, irrespective of their maintenance status. What have you got to hide, eh?
What finally pissed me off was when I wanted to download a trial of a toolbox I was interested in purchasing. Here is the friendly reply:
"(Name Deleted),
Here is a quote to add the (Toolb
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.
The higher the technology, the sharper that two-edged sword.
Most Linux or BSD users, who happen to be using a GUI, will already have X11 running, and will therefore have a much easier time running Matlab off our Unix servers. There is certainly no problem running an X server in MacOS, nor is there a problem running it in Windows -- but these systems are not being marketed to people who have the technical skill to set that up. Not to start a flame war, but Apple just isn't trying to attract users who are aware of X11, Unix terminals, programming, etc. If anything, Apple has tried as hard as possible to remove the "nerdiness" from computing, and present there systems as intuitive, simple, straightforward computers that any idiot with no computing skills whatsoever can figure out how to use. That's fine, but when it comes to doing something that doesn't fit into the desktop computer model -- running a program on a server, and having its GUI rendered on your PC does not fit into the desktop model, at least not as Apple has implemented it -- they are not marketing to people who are comfortable, knowledgeable, or appreciative of such things. You don't have to be their target market to use Apple systems, but you have to be aware of what their target market is, and that the overwhelming majority of Apple users have no interest in anything beyond the desktop metaphor that Apple has created.
It is necessary for me to stress that I am not criticizing Apple or its users; I am criticizing my university and the Mathworks company, for creating an environment where only people who are involved in computing can access Matlab outside of our computer labs. My point is that, because of the terms of Mathworks' site license, the software must be on a specific number of university owned systems, and that while there is nothing stopping Apple or Microsoft users from accessing that software, the majority are not knowledgeable enough to do that. The university doesn't do much to educate or encourage students to set up X servers and run Matlab/Mathematica/Maple on our servers (can't say I blame them; the increased network and server load would probably bring everything to a grinding halt), and most students who use this software aren't even aware that they can access it in that manner anyway.
Palm trees and 8
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.
EOF
Or windows users for that matter. There are plenty of X servers out there for Windows including Xming. Putty even has an option for X11 forwarding, so no one can really argue that its remotely difficult to set up.
Each of these, to me, seem like reasonable solutions— if it's a major-version update, I'd have to pay for it anyway... and if it's just a recompiled version of the product I already have, it should be free to current users. It turns out, however, that there was a third possibility, which is what Mathworks chose:
3. Release a new minor-version Universal Binary update, and then make all current customers buy a new full-price license in order to get it.
So, in order to run Matlab on an Intel-based Mac, current PowerPC license holders have to re-purchase their expensive software from scratch. No upgrade path, no nothing— just a nice, loud, "screw you" from Mathworks to their users. And it's not like we could just use our PowerPC verisons under Rosetta- there was a workaround, but it involved disabling all of the graphing/visualization features. Basically, it was a "pay for a full new license or don't use Matlab on your new computer" kind of thing.
I dunno, maybe it's not that big of a deal, but it still felt pretty crappy. From a customer service standpoint, it wasn't exactly a master-stroke- it wouldn't have really cost them anything just to let current license-holders have an Intel-compatible copy of the software they'd already paid for...
No, he isn't lying.
MATLAB did the same thing to us, made us pay maintenance for all the years that it had lapsed, because we wanted to upgrade an users' desktop to the latest version.
Guess what my desktop runs now?
Or Windows users, for that matter. The Xmingw X server works pretty well on Windows, and if you are allergic to free software (after all, I don't see why anyone would be using Windows otherwise), Hummingbird makes an X server.
as it will take another 11 years for a Debian version to be released which then includes Ocatave 3.0.