Slashdot Mirror


MATLAB Programming Contest Winner Announced

gooru writes "The MATLAB programming contest winner has been announced. It is a semi-annual programming contest organized by the MathWorks. What makes the contest truly interesting is the final phase is open source. Contestants may submit as many entries as they want and can tweak other entries."

224 comments

  1. MathMan! MathMan! by Anonymous Coward · · Score: 0, Funny

    Square One!

  2. MORTAL MATLAB by Anonymous Coward · · Score: 4, Funny

    The next contest should be to the death. Execute those who fail it. There can only be one. Then we'll see some real open source programming.

    1. Re:MORTAL MATLAB by Anonymous Coward · · Score: 0

      don't you mean execute the winner? I mean why would you execute the loosers? you like have dud processess wasting system resources?

    2. Re:MORTAL MATLAB by Practically+Alive · · Score: 1

      Of course they execute the winners *and* the loosers... or was it just their programs?

  3. open source? by jeffmock · · Score: 0, Troll

    open source code for a proprietary platform? I don't think so. I suspect RMS would call this sharecropping. Totally uninteresting.

    1. Re:open source? by Anonymous Coward · · Score: 0

      Actually RMS would pretend to have never heard the term "open source" before and to have no idea what you were talking about, until you either said "free software" or gave up.

    2. Re:open source? by NanoGator · · Score: 1

      "open source code for a proprietary platform? I don't think so. I suspect RMS would call this sharecropping'

      Are you guys really that zealous about what OSS code is? It's a simple programming contest, not a web browser.

      --
      "Derp de derp."
    3. Re:open source? by Anonymous Coward · · Score: 0

      That MathWorks is really evil, their Simulink is buggier than....well mabe not like MS Word, but well

    4. Re:open source? by Forbman · · Score: 1

      NatoGator's exactly right. If the code is open-source, even if it's for a "proprietary" platform, it means that any ideas or expressions in it can be implemented in other "purer" environments.

      That's part of the monkeywork of programming, isn't it, taking implementations from one environment and implementing them in another?

    5. Re:open source? by XMunkki · · Score: 1

      Actually does it really matter if the platform is open source or not? The point in this competition was that you'd get the best result. And by making all the competitors show their solutions to others, they are effectively helping each other out. In the competition. I think the term "open source" makes people jump too much sometimes and expect too much. It's still okay to use and make open source software for the Windows, right?

  4. Comment removed by account_deleted · · Score: 5, Informative

    Comment removed based on user account deletion

  5. Be Wary of Conclusions about Programming Contests by reporter · · Score: 3, Interesting
    Invariably, in contests of this nature, people are apt to draw specious conclusions from the results of the contest. In a recent programming contest involving teams of students from across the globe, the American teams performed poorly. Professor Matloff then rebutted the cries for government intervention to increase the quality and quantity of computer-science students.

    Now, this Matlab contest is positioned to lead to the same silly cries. So, allow me to present a link to Professor Matloff's excellent article to head off any silly speculations about the decline of American technical prowess.

  6. Re:Down with MATLAB by Daniel+Dvorkin · · Score: 4, Informative

    I do as much as possible of my work (bioinformatics) in Numerical Python. It's really nice to have the power of a general-purpose programming language as well as a numerical feature set that has equivalents for nearly every special-purpose MATLAB function I've ever needed. YMMV.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  7. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  8. Re:Down with MATLAB by Anonymous Coward · · Score: 0

    Octave is the closest thing, but matlab is still best at what it does.

    It may be a resource hog, but its certainly very stable (at least in my experience).

  9. Octave by Anonymous Coward · · Score: 0
  10. TLL280 in 13 seconds? by Anonymous Coward · · Score: 3, Interesting

    I guess for their speed programming award they are allowed to have prior source. If this wasn't the case, the author would have written it at 393 characters per second!

    I'm beginning to wonder if this was rather some sort of PR effort rather than a true programming challenge.

    1. Re:TLL280 in 13 seconds? by FluxInductor · · Score: 1

      MATLAB makes most of its money from companies and schools. This contest attracts single people. I don't think they would increase their already sizeable profits much from converting a few hundred individuals.

      --
      1011010110 1101011010 1101101011 0110101101 0110110101
    2. Re:TLL280 in 13 seconds? by AnObfuscator · · Score: 1

      MATLAB makes most of its money from companies and schools. This contest attracts single people. I don't think they would increase their already sizeable profits much from converting a few hundred individuals.

      No, but the people who take this contest will grow up to work for those companies and educational institutions.

      They will then wish to use the tools they are familiar with, thus increasing the demand for Matlab.

      Also, these people will forever have an image of MathWorks in their minds as a "good", "helpful", "fun", etc. type of company, which also increases Matlab's mindshare.

      Being nice is good business.

      --
      multifariam.net -- yet another nerd blog
    3. Re:TLL280 in 13 seconds? by mnemonic_ · · Score: 1

      Well, at 5 letters per word that translates to 80 WPM, common among programmers. Also, I've not looked at the code, but there is such a thing as copy and paste.

    4. Re:TLL280 in 13 seconds? by Bonkers54 · · Score: 1

      Your units are off. That would be 80 word per SECOND. I'd like to see the programmer who can type at that speed.

  11. Re:Down with MATLAB by Anonymous Coward · · Score: 0

    Mathematica, hands down.

  12. Re:contests... octave.. by dunc78 · · Score: 1

    Care to name a few ways it exceeds Matlab besides being free?

  13. Re:Down with MATLAB by Strontium-90 · · Score: 5, Interesting

    If you're doing symbolic work, then Mathematica is the program to go with. But if you're doing numerical linear algebra and either don't need the speed of C/C++/Fortran or don't want to deal with those languages, it's kind of hard to beat Matlab. One nice combo is Maple/Matlab. Maple can call Matlab for numerical linear algebra work, and Matlab can call Maple for symbolic work.

    Despite all of the people who complain about Matlab being unstable and using up resources, I've always found that running the command-line version of Matlab is fast and stable. The GUI version has some nice features, but they usually aren't essential to the work that I do.

  14. Re:contests... octave.. by AnObfuscator · · Score: 2, Informative

    On debian, apt-get search octav to see octave and extensions. Don't forget to install the additions octave-forge, etc. to get near-complete matlab equivalence. In some ways, it exceeds matlab, in some ways, it doesn't. And it is very compatible with matlab.

    Octave has also been ported to MacOS X, and is available via Fink.

    I agree, I have found octave *very* compatible; in my Quantum Mechanics class, we have frequent Matlab assignments, and I am able to cut/paste code directly between the systems, with no errors so far (but there was one Octave rendering bug with multiplot).

    I don't know how Octave/Matlab stack up performance-wise for professional use, but for student use, it is ideal.

    --
    multifariam.net -- yet another nerd blog
  15. Try Sci-Lab by reporter · · Score: 5, Informative
    Try Sci-Lab. Its functionality is about 1 order of magnitude greater than that of Octave. Sci-Lab has an extensive library of signal processing functions that equal the capability of Matlab.

    I use Sci-Lab regularly. With Sci-Lab, I have no need to dole out bucks for the commercial version: Matlab.

    1. Re:Try Sci-Lab by fireboy1919 · · Score: 1

      Vanilla Octave is quite limited, but have you tried using it along with Octave-Forge?

      In my experience, this tips the balance of available uses in favor of Octave.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
  16. Re:contests... octave.. by Anonymous Coward · · Score: 0

    In my experience Octave is usually as fast as Matlab for most code. It does have more bugs though, so watch out for strange behaviour.

    The problem is the vast libraries from matlab, which are simply not available with octave.

  17. Re:Down with MATLAB by Anonymous Coward · · Score: 0

    How does Maple compare to Mathematica performance wise?

    I would love some nice integration, but the last time I tried Maple (version 7, waay back) performance was abysmal compared to Mathematica.

    Hopefully things have changed for the better.

  18. Re:contests... octave.. by Anonymous Coward · · Score: 0

    I'm surprised that Mathworks doesn't give out free licenses to students. They do have a cheaply-available student version, but I think they'd attract more potential users if they allowed students to use it for free.

  19. Re:contests... octave.. by digitalhermit · · Score: 1

    Not libre, but also check out MuPAD. I use it quite often in addition to Octave when I tutor. MuPad and Octave do 100% of the mathematics required for Calc 1-3 and with some work, did everything I needed for other analysis courses. I can't speak to Matlab since I'm not a user, but the free alternatives, at least on the beginning calculus levels, are as easy to use as Mathematica. The graphical output is not as refined, but with Gnuplot and some (shameless plug) resourcefullness can do much of the same things... (well, if you speak TeX :D ).

  20. Wow, ironic... by SnoopJeDi · · Score: 0

    I was just reading an email from an SEAP (Science and Engineering Apprenticeship Program) rep, and one of the projects I could possibly work on this summer is one using MATLAB to find cross-correlation between LiDAR density data and hi-res images (satellites, planes, etc.) to correct for movement, atmospheric reflection/refraction, angles, etc. and produce accurate and scaled vertical images.

    And now I see this. Uncanny.

  21. I Always Write my MATLAB Open Source by schestowitz · · Score: 4, Interesting

    All my MATLAB code is Open Source. And I am the most popular author (jointly with Luigi Rosa) this month. http://www.mathworks.nl/matlabcentral/reports/file exchange/top10Authors/

    --
    My Linux - (L)ove (I)s (N)ever (U)tterly eXPensive
    1. Re:I Always Write my MATLAB Open Source by schestowitz · · Score: 1

      I love the idea of running my code in an Open Source environment. I have just given Octave a shot, but it refuses to compile on SuSE.

      Octave might need to mature further before it is becomes a practical replacement to that clumsy resource hog called MATLAB.

      --
      My Linux - (L)ove (I)s (N)ever (U)tterly eXPensive
    2. Re:I Always Write my MATLAB Open Source by cahiha · · Score: 1

      Octave compiles and runs fine on SuSE. And you can almost certainly get it as an RPM package. Octave is as mature as it's going to get.

      However, Octave's MATLAB history is limiting it anyway. Why not write for Scientific Python? That is the real open source alternative to MATLAB, with a big user community and many features that MATLAB lacks.

  22. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  23. Re:Down with MATLAB by Anonymous Coward · · Score: 0
    Care to explain how numpy is better than matlab? I'm not trolling, I'm actually about to start numerical processing for my research, and I'm stuck on the fence between using matlab (which we have on all our lab computers) and python, which i'd have the luxury of doing at home since it's free. i barely know either one, so i don't really have any loyalty to either side yet.

    AFAIK, matlab has better plotting capabilities, maybe somewhat better-tuned numerical libraries. but i really don't know the specifics of them. python is available for free, but it seems that installing all the extra packages, like numpy and plotting, will be kind of annoying.

    I've hacked w/ python a little bit, on the windows boxes in my lab, and the pycrust program seems too flaky to use, but the standard python gui that comes w/ the base distribution also had problems running some gui code too. what do people tend to use on windows boxen?

  24. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  25. The Problem by HillaryWBush · · Score: 5, Informative

    Imagine a sandbox in which there are ants, sugar cubes, anthills, and rocks. Ants like sugar: collectively they want to bring as many sugar cubes as possible back to their anthills before sunset.

    For this contest, you will write the control program that each ant carries with it. Ants, being so small, have some limitations, of course. Each ant can carry no more than one sugar cube at a time. Further, each ant can only see her local vicinity. Your program, which is run sequentially for each ant, knows only what that ant knows. Thus you must bring about the best possible global outcome based only on local conditions. The ants don't have any memory as such, but they can leave behind a chemical trail to guide themselves and others across the sandbox landscape.

    Your score is determined by how much progress you make moving food towards and into the anthills. Ideally your ants will move all the sugar cubes onto anthills. Practically this may not be possible; do the best you can. You receive credit even by moving one sugar cube one step closer to an anthill.

    1. Re:The Problem by Harish+Rallapali · · Score: 1

      Is Matlab really the best for this problem? In my AP Computer Science class, we had a Marine Biology Case Study (which became progressivley more complex) and it [Java] seemed to handle things relativley well. Wouldn't a C++/Java/other implementation be a lot more reasonable, considering programmer availablity and code speed? Does Matlab offer something that the other big languages don't?

    2. Re:The Problem by norton_I · · Score: 1

      Matlab is much faster to program in than lower level languages such as C++ and Java. Think of it as perl for numerical computing. For doing matrix math, Matlab usually stacks up pretty well against lower level languages. Of course, you can do as well in C++ (or whatever), but Matlab is usually fast off the bat.

      Also, if you are working with scientists, rather than computer "scientists" availability of Matlab programmers far exceeds java programmers.

    3. Re:The Problem by antdude · · Score: 2, Funny

      When the contest winners are revealed, will I be able to see these math solutions without MATLAB program? I would love to see the results. I am not familiar with this program and I am an ant freak. :)

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    4. Re:The Problem by ratboy666 · · Score: 1

      Except that this isn't really a math problem...

      I would assign this as a first-year Scheme assignment.

      YMMV

      Rarboy

      --
      Just another "Cubible(sic) Joe" 2 17 3061
    5. Re:The Problem by Anonymous Coward · · Score: 0

      Wow, discrete event simulation with Matlab. Talk about talking a tool beyond its design limits.

    6. Re:The Problem by Anonymous Coward · · Score: 0

      Er... isn't this just a ripoff of last year's ICFP programming contest?

    7. Re:The Problem by francisew · · Score: 1

      Actually, under windows, matlab runs faster than compiled C/C++ code. It's really well optimized.

      Too bad matlab for mac isn't optimized (fortran 90/95 compiled with the absoft compilers runs much more quickly, albeit being a royal PITA).

      I'd agree with your characterization that lots of scientists use matlab, I'm a caase in point. The main reason is the simplicity of plotting, and exporting the plots to presentations/papers.

  26. familiar contest with ants . . . by bodrell · · Score: 2, Informative
    I read in Scientific American not long ago about using the (software) ant strategy to find a solution to the traveling salesman problem, or something in that family of problems. I think it was lumped together with swarm technology, but I don't have the magazine with me, so I can't be more specific than that. I do know that DNA "computers" have been used to solve such combinatorial problems. This sugar cube problem is very similar--no exact solution, but you can converge on something close to exact.

    Anyway, you want to find the shortest route that goes through n number of cities. I know in one variation of the problem you can't hit the same city twice, but I don't know if that constraint applied in this case. The ants leave a "pheremone trail" which evaporates after a certain amount of time. If the ants start out randomly choosing routes, but over time the routes with more software pheremone are reinforced, because the ant objects choose those paths preferentially.

    --
    Si la vida me da palo, yo la voy a soportar Si la vida me da palo, yo la voy a espabilar
    1. Re:familiar contest with ants . . . by root_42 · · Score: 1

      You are thinking about Ant Colony Optimization. Just google for it. You can solve the Traveling Salesman Problem with it approximately, and also a variation where you have a start and end city as a constraint. Many problems have similarities to these problems and can also be solved. A friend of mine has just implemented ACO for optimizing milling paths.

      --
      [--- PGP key and more on http://www.root42.de ---]
    2. Re:familiar contest with ants . . . by nameer · · Score: 1

      Will the work on milling path optimization be published? Is ther a website overview on it? Very interested.

      --
      "Uh... yeah, Brain, but where are we going to find rubber pants our size?" --Pinky
    3. Re:familiar contest with ants . . . by root_42 · · Score: 1

      Not sure about that. It's a diploma thesis, in cooperation with some milling company. Don't ask me what their name is... But who knows! Maybe there will be a paper or something. Can't say that, since I'm not really involved in this. Seems like a hot topic though.

      --
      [--- PGP key and more on http://www.root42.de ---]
  27. Just how bad is MATLAB? by Anonymous Coward · · Score: 1, Insightful

    Since we're talking about a *programming* contest MATLAB, just how horrible a programming language is it? I've been told that MATLAB's sole value lies in its large suite of libraries, because as a language it borders on the God-Awful. Some real horror stories: no true local variables, until recently each function had to reside in its own file, no way to create cyclic references (!!!) (resulting in only reference counting for GC or something), no general-purpose objects, much less notions like OOP, closures, and the like. The phrase "it makes FORTRAN look advanced" came up. Can someone elaborate?

    1. Re:Just how bad is MATLAB? by 12+inch+pianist · · Score: 0

      MATLAB(5.x) is just C with matrices as the only datatype. It is actually pretty easy to use and has a ton of built-ins. Later versions do allow OOP. I wouldn't write a web server in it, but if you want to crunch numbers it is really handy.

    2. Re:Just how bad is MATLAB? by Anonymous Coward · · Score: 0

      Mathematica it ain't, that's for sure.

      Mathematica is OO, logic-based, declarative, pattern-matching, aspect-oriented, procedural, functional, declarative, it is just *sick* and is definitely "everything but the kitchen sink".

    3. Re:Just how bad is MATLAB? by Anonymous Coward · · Score: 0

      It is sick? Perhaps your computer has a virus?

    4. Re:Just how bad is MATLAB? by alphakappa · · Score: 4, Insightful

      You have dissed the language while it is amply clear that you have never used it. However let me clear this up - Matlab may not have the advanced features of c/c++, but it is designed to be a prototyping language - something that will help you test your algorithms fast. You can write code that will solve your differential equations, or do some signal processing with just a few lines - working with matrices becomes extremely simple since you don't have to worry about coding the intricacies of matrix manipulation. It makes FORTRAN look retarded as far as usability and speed of coding goes. It is definitely not as fast as programs created in C/FORTRAN, but it's not the speed of the code that's the objective here -it's how fast you can write up some code.

      --
      "When the only tool you own is a hammer, every problem begins to resemble a nail." - Abraham Maslow (1908-1970)
    5. Re:Just how bad is MATLAB? by nicsterrr · · Score: 1

      The language is pretty basic, but can be useful for prototyping.

      However, speed is the major downfall. Last time I ported an algorithm from Matlab to C++ (using Blitz++), the resulting C++ code was 20 times quicker to execute.

      Any serious algorithm work with Matlab requires objects written in native C and called from the Matlab interface.

    6. Re:Just how bad is MATLAB? by Anonymous Coward · · Score: 0

      Well, it depends. I'm a computer nerd first and an applied mathematician second, and I've always felt restricted by the limitations of the Matlab language. Besides, from what I've seen of modern Fortran, it isn't much different from Matlab, and in many ways better as a programming language. FORTRAN 77 is of course horrible by today's standards.

    7. Re:Just how bad is MATLAB? by kotku · · Score: 1

      Matlab does have closures though without the elegance of languages like Ruby. A trivial example ...

      function c = create_counter( init )
      c = @counter
      function i = counter
      init = init + 1;
      i = init;
      end
      end

      >> c = create_counter(10);
      >> c();
      ans =
      11
      >> c();
      ans =
      12

      If you have closures you can also fudge OOP by creating arrays or structures of function handles.

      I've written a framework to do just that. If you really need cyclic references for your code and the majority of Matlab users don't then it is not hard to do.

      And all the FUD posters who have never used Matlab are unaware that now all Matlab code goes through a JIT before running. This mean iterative loops run orders of magnitude faster than previous versions.

      --
      The bikini - security through obscurity since 1943
    8. Re:Just how bad is MATLAB? by mwfunk · · Score: 2
      I wouldn't call it horrible at all- it's just very specialized towards certain tasks. It definitely wouldn't make a good general-purpose programming language, but it's a fantastic tool for the things it was designed to do. Saying MATLAB sucks as a general-purpose programming language is sort of like saying VHDL sucks for writing word processors. There's a few things I don't like about it, but it's also saved my butt on many, many occasions.

      Anecdotal evidence: I work in remote sensing, mostly image processing apps using data from airborne sensors. The sensors are mostly experimental, and the image processing stuff is very researchy. We use MATLAB all the time- I honestly think if we used C++ (or pretty much anything other than MATLAB) during the algorithm development stages, it would take us literally 5-7 times as long to do anything, and in the end we would not have pursued nearly as many paths of research or done nearly as much analysis of our results. I don't know what it's like in other fields of engineering, but I know a ton of people who work in signal and image processing that would say the exact same thing.

      I once struggled with one particularly tough problem for almost a year- I was developing in C++ at the time, since that was what the final implementation would be in. Again, this wasn't just implementing something that was well-understood...this was also researching new algorithms and doing lots of experimentation with lots of different datasets. After a year I got exasperated and and decided to develop the algorithms in MATLAB first. I reimplemented all the C++ stuff I had already done in the previous year, in about 1 month [!]. In another month I had a working system, much to my amazement. In another month I had tested and analyzed the living crap out of it in ways that I wouldn't have dreamt if I was still trying to do things in C++.

      The only real competitor to MATLAB in this field is IDL (not to be confused with Interface Definition Language- you gotta love overloaded acronyms). In the open source world, you've got Octave, SciLab, and SciPy, but I think SciPy has the best shot at weaning people off MATLAB. So far I don't think any of the open source alternatives are quite mature enough for my purposes, but they're getting there. In my (rather specialized) field, Mathcad and Mathematica aren't contenders, for whatever reason.

      In conclusion: as a programming language, it can seem a little odd (for instance, all variables are matrices). It's better to think of it as an interactive mathematical prototyping environment designed around a very specialized language. But if you have a need for that kind of tool, it can be a really amazing timesaver.

    9. Re:Just how bad is MATLAB? by Strontium-90 · · Score: 2

      I think the grandparent post got it right. Matlab is designed for quick calculations, rather than final production code. If you're not sure that your method will work, it's much quicker to write a Matlab script to test things than it is to write a full blown C/C++/Fortran code. Additionally, I don't think that you're the target audience for the program. At best, the program is targeted to people who are applied mathematicians first, but it is often used by people who have no applied math background at all. Some of these people look at Fortran code, go glassy-eyed, give up, and delegate the problem (no matter how trivial) to a real computer science or applied math person. I've even heard (very intelligent) people complain about how hard it is to write Matlab code. Believe it or not, some scientists don't know how to write HTML, let alone Fortran; and sometimes these scientists need to get quick, reliable answers. Matlab is a great program for this type of application.

      In most of my applied math classes (BA Computational & Applied Math, Rice U.) we had people from a variety of backgrounds who knew a variety of languages. Rather than force the Fortran people to learn C++ or force the C++ people to learn Fortran, we forced *everyone* to learn Matlab, which is a rather trivial task if you know anything at all about programming. But the main result of using Matlab was that programs that would take hundreds of lines could fit on a page or two. Instead of keeping track of pointers and variable types, etc. you could write concise, easy-to-read code. This saves a huge amount of time for the students doing the problem sets and for the graders. It also allows you to focus on the mathematical concepts rather than the mathematical or programming nitty-gritty.

      Naturally, if you wanted to learn how to program in more depth, we had computer science courses available. And in the applied math classes where writing production-level, optimized code was more important, we usually used things other than Matlab. Although, often times Matlab would still be used for pseudocode or as a way of checking your answers.

    10. Re:Just how bad is MATLAB? by StarsAreAlsoFire · · Score: 1

      Your sig suddenly makes *so* much more sense... ;~)

      *Kidding! Joke! No offense! I do hate MATLAB with a passion, but you are also right.

    11. Re:Just how bad is MATLAB? by Anonymous Coward · · Score: 0

      Are you trying to be insulting to the grandparent? Cause he all but states he hasn't used it and that he's repeating what others told him cause he wants to find out if it's true. Or didn't you get that?

    12. Re:Just how bad is MATLAB? by pz · · Score: 1

      It is definitely not as fast as programs created in C/FORTRAN, but it's not the speed of the code that's the objective here -it's how fast you can write up some code.

      Very nearly correct. As an educated and trained Computer Scientist (MIT) there are things about the Matlab language that are loathsome. Like the inane scoping rules. As an educated and trained Biologist (Caltech, Harvard), I love Matlab because the time it takes me to get an answer to a scientific question is VERY short. And, as a scientist, results are more important than anything else.

      So, it's not the speed of coding alone that's the biggest benefit, it's the total time to answer a question. That would include visualisation tools, debugging tools, and so forth. Matlab as a language? Middling-to-fair. Matlab as a scientific tool? Very nearly without peer.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  28. Can't get engineers to use anything else by Latent+Heat · · Score: 3, Informative
    After an entire semester introducing a framework to do certain numerical computations in Java, and explaining that most of the Matlab functions are implemented in Fortran, C/C++, and more recently Java and that Matlab is really just a way of scripting numerical algorithms written in those other languages, students go off and do their semester project in Matlab.

    Matlab is the Visual Basic of numerical computing -- a hodge-podge of grafted-on features. Yes, it gets a job done, yes it promotes code reuse because of the extensive numerical and graphing libraries, but as a "teaching language" it is weak on important concepts, and it is proprietary as all anything, turning engineering colleges into trade schools for MathWorks. And once engineering students glom on to it, you cannot, just cannot get them to use anything else.

    I don't care if they implement a numerical algorithm in C++ or if they implement a numerical algorithm in Java -- both of those languages are pretty much callable from anything else on a wide variety of platforms. Yeah, you can call into Matlab too, but is there a free runtime you can download like with Java? And any kind of numerical algorithm using looping instead of built-in vector operations is going to be dog slow, so it is useless for any "production" use (in an academic environment, production use is where you throw a problem at it that taxes the capacity of whatever generation computers you have -- otherwise it is a toy numerical problem where everything you can discover with it has already been done.)

    1. Re:Can't get engineers to use anything else by mindstrm · · Score: 1

      Err, right, but isn't matlab for trying out ideas and prototyping?

      It's not for producing finished computing products.. it's for exploring math.....

      The same reason I'll do up a diagrom for some new code on the whiteboard, instead of in C....

    2. Re:Can't get engineers to use anything else by Anonymous Coward · · Score: 0

      Those in computer science need to realize that engineers and scientists see computers as a means to an end, not an end to itself. MATLAB gets the job done, and the aforementioned folk don't really care what the c.s. folks think of it. What matters is the results that come from the computation. Heck, the engineers I know would still be using slide-rules and hand calculators if they could.

    3. Re:Can't get engineers to use anything else by Anonymous Coward · · Score: 0

      Smack on the mark.

      I've encountered one too many Engineering-based research/commercial operations which often confuse exploring ad hoc solutions to mathematical models with Matlab, with that of creating useable software that can be sold. The resulting code is difficult to "productise" without a major rewrite in a more widely accessible programming language (C, C++, Java, etc) which allows at least some form of support by software engineers.

      Matlab is a tool for analysis. It is not a means to systematically program large-scale simulations. (The language doesn't even provide the necessary reference semantics nor instance uniqueness to provide true OO-styled programming proported to be provided in this language).

    4. Re:Can't get engineers to use anything else by Fourier · · Score: 1

      Well put. It's incredibly disappointing that the industry standard for scientific/engineering algorithm prototyping comes with such a poor programming language. The moment you want to do something that the built-in functions can't handle, Matlab's weaknesses become apparent.

      Psilab offers a much better programming environment than Matlab or its clones. The tradeoff, of course, is that Psilab's algorithm library comes nowhere near the scope of Matlab's.

    5. Re:Can't get engineers to use anything else by fireboy1919 · · Score: 1

      "Most Matlab functions" are in other languages if you're only talking about the basic stuff.

      But you really have to do a lot of work to find a lot of those algorithms for the other languages.

      For example, what if you want to feed the output of a 3 level feedforward, backpropagating neural network into an optical flow algorithm with pyramids for better convergence - all this in order to test out quality of a new backpropagation function?

      You can get these things for Java or Fortran? They're just "around" on standard numerical kits?

      Googling for it I had a hard time substantiating your claim. Matlab is more than a glorified calculator.

      As far as having a free runtime, it's not needed. There's a compile kit for Matlab. If you really want to make portable code for Matlab, then you can use it to generate ANSI compliant C.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    6. Re:Can't get engineers to use anything else by Anonymous Coward · · Score: 0

      Matlab is a not a programming language for implementing production stuff. It's a prototyping language for testing ideas, running simulations and doing quick calculations. Ideally everything will then be implemented in C++ for production.

      All these programmers slagging Matlab have no idea what they're talking about, as for them programming is the purpose not the tool to accomplish things. Most applied mathematicians don't care about object-oriented Turing-complete languages with clever syntaxes, they just want to get some work done quickly.

    7. Re:Can't get engineers to use anything else by Anonymous Coward · · Score: 0

      As one of the programmers complaining about the issue (and note that I do program mathematical optimization applications), I don't have anything againsta the tool as such. My objection is more on the abstract level, annoyance at the fact that such a flawed tool would have gained such popularity. It could have been so much better if they had designed in proper programming language features to begin with.

      I am positive that the non-CS-aware engineers would have no trouble learning the basics of Python if it was Numerical Python that was the commercially developed solution with extensive libraries.

  29. Re:contests... octave.. by Anonymous Coward · · Score: 0

    Damn.. I hadn't realized that Octave has grown so. It certainly does everything *I* need now.

    Stuff like this reminds me of why I love the free/open source community so.

  30. Comment removed by account_deleted · · Score: 2, Interesting

    Comment removed based on user account deletion

  31. When did Matlab become commercial? by Asprin · · Score: 3, Interesting


    When I last used Matlab, we used it just for the matrix calculator and, IIRC, it was free. When did it become a commercial product? Did I miss something or was just not paying attention back then?

    --
    "Lawyers are for sucks."
    - Doug McKenzie
    1. Re:When did Matlab become commercial? by JoeBuck · · Score: 1

      It was always a proprietary product, so either whoever supplied it to you (your school, perhaps) paid for it, was given copies by Mathworks, Inc., or pirated it.

    2. Re:When did Matlab become commercial? by Camel+Pilot · · Score: 3, Informative

      Yes you missed something. Matlab sells software subscriptions for around $2k per year and extra for application specific modules - I would call that commercial.

      They ticked me off last year when we late for our subscription payment and they charged us 20% for an adminstration fee which accounted for around $3500.

      This is why I read above about SciLab with interest. I would love to find a solution that meets our needs so can cancel our subscription and hopeful convince others where I work to convert.

      Mathworks has achieved a sort of monopolist position with certain engineering and scientific fields and behaves accordingly

    3. Re:When did Matlab become commercial? by Asprin · · Score: 1


      I *knew* you were going to say that. Good thing I don't have a 5.25" drive anymore.

      --
      "Lawyers are for sucks."
      - Doug McKenzie
    4. Re:When did Matlab become commercial? by Anonymous Coward · · Score: 0

      Matlab seems to have a policy of supplying very cheap or free copies for schools
      You mean "Mathworks." And almost every single software company on earth has the same policy.

    5. Re:When did Matlab become commercial? by cahiha · · Score: 1

      The open alternative is Numerical and Scientific Python. It's a better language, has a good number of numerical libraries, and a huge number of other useful packages.

    6. Re:When did Matlab become commercial? by adapt · · Score: 1

      The one you used in class was most likely paid for by your academic institution. The one used at home was a bootleg of the first one ;-)

    7. Re:When did Matlab become commercial? by Anonymous Coward · · Score: 0

      You missed something because you were not paying attention back then.

    8. Re:When did Matlab become commercial? by Anonymous Coward · · Score: 0

      Then you have last used matlab some twenty years ago. Indeed, initially matlab was a sort of front-end for linear algebra routines of the BLAS ilk. It was programmed in fortran. Then the MathWorks was founded and the commercial saga began. About the same time-frame where RMS got pissed off by commercialization of hitherto free software.

      See this very interesting thread for a lot of great information:

      http://groups-beta.google.com/group/comp.soft-sys. matlab/browse_frm/thread/3fd5f137137381f7/afab01ed 19cd3161?q=matlab+history&rnum=1#afab01ed19cd3161

      I remember having seen a tar.Z file of matlab 2.something in an FTP site, back when FTP was the preferred means of file transfer.

      --DCA

  32. Re:Down with MATLAB by Anonymous Coward · · Score: 0

    we have on all our lab computers

    Don't use Matlab. There's no alternative to it if you ever can't reach the lab while your brain is on, and Octave isn't nearly compatible enough. I don't have access to Matlab anymore so I can't run any of my functions that I've written.

    That said, Octave is OK in its own right, but doesn't have nearly the number of toolboxes Matlab does.

    Don't use Numerical Python. It isn't built for hacking around with, and it's a bitch to set up (a lot of package managers won't include all the optional libraries, so if you need those, it breaks your package management scheme).

    Frankly, there's a niche open for a good freee, open source simulation language. R is OK for statistics; Octave is good for a lot of things; Scilab flunked horribly for me, but I understand others don't have this problem; and Numerical Python is an underpowered bitch. Be aware that GNUplot exists. It's nice enough, but my main complaint is that all of these packages/programs are entirely incompatible. Possibly the only way you'll be able to get exactly what you want is to write a custom C library.

  33. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  34. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  35. Re:Down with MATLAB by Daniel+Dvorkin · · Score: 2, Informative

    Care to explain how numpy is better than matlab? I'm not trolling, I'm actually about to start numerical processing for my research, and I'm stuck on the fence between using matlab (which we have on all our lab computers) and python, which i'd have the luxury of doing at home since it's free. i barely know either one, so i don't really have any loyalty to either side yet.

    Basically, I like numpy because it's Python, and I like Python. More generally, I like having a general-purpose programming language when I'm writing real programs. MATLAB is good at crunching numbers and nothing else; numpy is almost as good (and in my experience, often faster) at crunching numbers, and it's also good at everything else Python is good at. String handling, DBI, and any data structure more complex than matrices, to name the examples I deal with most, are just unbelievably painful in MATLAB, IMO, but they're unbelievably easy in Python/numpy.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  36. Re:contests... octave.. by norton_I · · Score: 1

    Matlab can be run in a terminal, though not quite as nicely at octave (since it can't use readline). Furthermore, even in the workshop, you can set your editor to emacs rather than the built-in editor.

    Almost all of matlab toolboxes are written in matlab -- you can read and modify them as you need.

    I love octave, and use it extensivly, but Matlab is technically far superior, both in functionality and performance (most of the time), though octave tends to have cleaner/more flexible interfaces to the functionality that does exist. The license management is annoying, though (not to mention expensive). Luckily, our university has a site license, so it doesn't cost us so much.

    Of course, octave loads much faster (even when you don't load matlab's JVM).

  37. Comment removed by account_deleted · · Score: 2, Informative

    Comment removed based on user account deletion

  38. MATLAB is cool by Radio+Shack+Robot · · Score: 1, Insightful

    I am an EE. At first I hated Matlab, because it's totaly matrix based, nothing like Fortran. But after actually implementing DSP techniques, I came to love MATLAB.

    --

    Beep. Boop. Beep. You have questions. I have answers and your home address.
    1. Re:MATLAB is cool by Anonymous Coward · · Score: 0

      I am a ME. At first I liked Matlab, but after sometime i really HATE it. It's way too expensive and it doesn't do anything spectacular to justify it's price that Octave or Scilab can't do.

  39. what? by mnemonic_ · · Score: 1

    Wow, that's the worst list of reasons (for anything) I've ever seen. You duplicate reasons with slight variations ([1] and [2], [11] and [4]) or list items that are non-issues (for [1], you can use emacs with m-files as well, for [13], MATLAB is available for Linux and OS X). Reasons [9] and [14] are explicitly not what the parent requested ("besides being free"). [12] isn't even a reason at all supporting that Octave is better than MATLAB. None of them relate to math computational differences between the two (which solves ODE's more efficiently? which can better processes imagery data?). Your entire post is redundant fluff.

    And MATLAB's command line (integrated within the GUI) by default uses emacs shortcuts, though I'm a vi user myself.

  40. Re:contests... octave.. by mnemonic_ · · Score: 1

    Have you heard of filters?

  41. Re:Down with MATLAB by carn1fex · · Score: 1

    matlab has a symbolic toolkit now. I havnt tried it but im buying it soon, and im excited.. damn im a dork.

    --

    ---------

    No matter how thin you slice it, its still baloney.

  42. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  43. Re:contests... octave.. by BobKagy · · Score: 1
    And it is very compatible with matlab.

    I've read the comments posted to this story, and decided again to look into Octave. A quick google pointed me to the categorized list of Octave & Octave-Forge functions.. This list is fairly complete, and extremely useful because it lists what's missing.

    Unfortunately, its missing a lot of features I've grown accostumed to using in Matlab. switch...case and varargin / varargout were two that jumped out at me. It appears the functionality is provided, but not in a compatible way.

    Ah well. Half of my work is done in Simulink anyway, and the libre equivalent I've seen most people point to stacks up about as well.

  44. I am a linux user by mnemonic_ · · Score: 1

    and I don't hate MATLAB's interface. Let's see, at the MATLAB GUI-command line I 'cd' and 'ls' to the correct directory, then execute an m-file by typing its name and pressing enter. I press ctrl-a to jump to the start of a line, ctrl-k to clear it. Also, this is the default install of the Windows version. Granted, instead of using the command line I can just click use GUI directory tree in the side panel, which is much faster. And to check the data produced, I can view the Workspace panel that lists the variable names, the data class and the values. Below that lies the command history, in an expandable tree to improve readibility, with date and time stamps. I can't really see how a linux user would have trouble with all of this, especially since all of the panels can be disabled leaving one with only the command line.

  45. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  46. SCILAB by Anonymous Coward · · Score: 0

    That's what we are using here at MIT: http://scilabsoft.inria.fr/

  47. Comment removed by account_deleted · · Score: 4, Informative

    Comment removed based on user account deletion

  48. Re:contests... octave.. by Anonymous Coward · · Score: 0

    Enough griping. There's what, one, two functions out of a hundred that are missing? Provide them, and free yourself from the bondage to proprietary software.

    It seems everyone is waiting for someone else to make their life easier.

  49. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  50. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  51. Re:ROTS by Anonymous Coward · · Score: 0

    OMG You Fucking Monster!!!! No!! THIS WILL NOT STAND!!!

  52. Re:contests... octave.. by BobKagy · · Score: 1

    Ah well, yeah. I've thought about doing that once or twice.

    But I've clicked the I agree button on Matlab's license. Worse, I've signed the NDA to see what's coming in the next release. I wouldn't want to put the Octave project at risk.

    There are times I think people need to look beyond Richard M. Stallman's views on software and take his other political views seriously as well.

  53. I can, a bit by Anonymous Coward · · Score: 0

    MATLAB's "nested" functions only promote messy programming (a good example of when NOT to add a feature). It is not an OOP language. But you have to remember, MATLAB is not meant for creating operating systems or media players. It's an engineer's ad hoc language, used to solve specific problems as quickly as possible, elegance and flexibility be damned. Sure, a computer scientist using C++ (with the approprate libraries) could code something more refined than the equivalent MATLAB code. It might handle a wider variety of inputs, perform better error checking and might even be fewer lines of code. But the engineer with MATLAB will get the data he needs to do his job, faster.

  54. Re:contests... octave.. by fireboy1919 · · Score: 4, Informative

    A lot of these items are FUD.
    1) You can choose any editor you want to write your matlab code. You just need to run it in octave. Since octave has a command line interpreter, you can show the result with any editor that can display the results of a run command (emacs will do this, too)
    2) Yeah...it has readline, but that's about it.
    3) Poster asked, besides being free...this is part of the price.
    4) Not true. Any code not written in C, which is a good many of the numerical algorithms Matlab includes, have available source so that you can integrate the algorithms into any finished products (Matlab is for prototyping).

    Other than that, you're asking for more than is really needed to extend the functionality.
    5) Octave has a code repository. If they like what you write they use it. In other words, you can contribute to Octave.

    6) Your fault/FUD. It took me about ten minutes.

    7) I didn't have to. More FUD? Obviously this isn't a universal procedure.

    8) I've never looked at my License file. I never track what it's doing. This has never been an issue.

    9) See issue #3

    10) Is this even a reason?

    11) See issue #4

    12) Obviously you don't have very good reasons. I will present some good reasons after we get through this.

    13) This is true of Matlab as well. Try typing "ls" in Matlab and see what happens.

    14) See issue #3

    Having said all that, let me tell you why you should be using Octave.

    The biggest reason is the free as beer thing. Matlab+ all packages needed is astronomically expensive. It's a big deal. We're not talking Microsoft-who-sells-to-consumers expensive - we're talking big-contractors-who-work-for-Engineering-firms expensive. It's kind of like the difference in price between Oracle and Postgres.

    However, SOMETIMES it's worth it. As an Engineering student, I've tried and used regularly Matlab's image toolbox, Matlab's neural net toolbox, and their symbolic toolbox, and compared it to the normal canned algorithms.

    Matlab is very, very good. They put an extra polish on every algorithm they write. In general, they're better written, and produce more clever results than anything else. Keep in mind that I was dealing with underconstrained problems, so the issues where matters of estimation. Matlab got more accuracy or faster convergence out of it's canned algorithms than you'd get if you wrote them straight from the descriptions supplied by the algorithm's authors.

    Having said that, it's quite likely that there are certain areas that Octave will probably eventually fall behind. Symbolic work is one, I think, since their symbolic toolbox is actually an interface to Maple's symbolic engine, which they rent.

    Maple doesn't have the manpower to compete with the OSS people writing computer algebra systems. IMHO, right now it's about tied. Three years ago Maple was ahead.

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  55. Re:Be Wary of Conclusions about Programming Contes by mtrisk · · Score: 1

    Non-sequitor - why would anyone in their right mind draw any conclusions about American technical prowess from this story?

    As far as speculation goes, I'd say that using a Wiki method allowing competitors to change other entries is probably not the fairest way to run a contest, although it is interesting.

    --

    Without a proper flamewar, Anonymous was undecided on what shell to run.
  56. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  57. Zero Pee R by jfonseca · · Score: 0, Troll

    According to Google this contest page is not to be taken seriously. It's a PR 0 page...

    Google says, me do. Next story please.

    --
    Broken Hearts are for Assholes. - Frank Zappa
  58. Re:Down with MATLAB by xenotrout · · Score: 1

    Matlab's symbolic toolkit is based on Maple. The simplify function doesn't always seem to work as well as it could. I haven't really used it much, I mostly do numerical (and plotting). Cosine doesn't quite work right, either (1e15 when it should be 0, IIRC). Maybe it's a floating point precision thing.

  59. not a troll -- MW is more evil than M$ by EccentricAnomaly · · Score: 4, Interesting

    An open source matlab contest is the same animal as if Microsoft held an open source Excel or Visual Basic contest... except that Matlab costs a lot more, and Mathworks tend to be a lot more evil in its licensing terms.

    Matlab costs about $3500... but at my work, somehow it costs $70,000 a year because of some weird ass licensing scheme matlworks sticks large government labs with. I've tired to convince my project that for that money it makes more sense just to hire programmers to add whatever features we need to octave and go tell mathworks to fuck themselves.

    Oh, and by the way... all of that money is still not enough to get you bug reports noticed. For that you need to pay for some sort of premiere program.

    --
    There are 10 types of people in this world, those who can count in binary and those who can't.
    1. Re:not a troll -- MW is more evil than M$ by Anonymous Coward · · Score: 0

      I'm a developer for the mathworks. The bug reports get noticed.

    2. Re:not a troll -- MW is more evil than M$ by nicsterrr · · Score: 4, Interesting

      It's even worse than this.. The origins of Mathworks was an open source system created by an academic and improved by other contributors.

      One day a business man came along and convinced the creator to leave academia in order to exploit his open source creation by closing the source and selling it to existing users.

      Ten years later, Mathworks is a semi-monopoly in numeric computing in academia.

    3. Re:not a troll -- MW is more evil than M$ by Anonymous Coward · · Score: 0

      $70k/y for a site license wouldn't cover the development of MATLAB within any reasonable timeframe. If it was really that simple, then I'd suggest you make an incredibly profitable career change and invest $70k into creating a platform you can license to others for half the price of MATLAB.

    4. Re:not a troll -- MW is more evil than M$ by StarsAreAlsoFire · · Score: 2, Insightful

      read. then reply.

      *ADD FEATURES* to Octave. Which already has much of the basics. Not rewrite MATLAB.

      Which, really, on a lab-by-lab basis (in that one lab generally will use only 'n' features) you probably COULD rewrite all the code you needed with one or two full time developers.

      In 3 years of aerospace engineering classes, I used maybe 10 'special' functions of MATLAB; 4 of which were the ODE related. The rest was 'just math'.

    5. Re:not a troll -- MW is more evil than M$ by Cochonou · · Score: 1

      Actyally, I've personally been surprised by the amount of attention I got from the MATLAB developpers by just posting on the MATLAB newsgroups.
      Even if I've never personally bought a MATLAB license by myself.

    6. Re:not a troll -- MW is more evil than M$ by kd3bj · · Score: 2, Interesting
      That's not all... When the original open source matlab was proprietarized, it was dumbed down in certain critical ways in order to make it more marketable. For example, in the original Matlab, functions of matricies always performed the function on the matrix. In today's commercial matlab, sometimes the function acts on the matrix, othertimes on the elements. Which way this goes seems to depend more on marketing than mathematical rigor. They actually went in and tangled the semantics so as to sell more copies to the lowest common math user.

      Thus we have yet another example of how commercial competition doesn't lead to the best product.

    7. Re:not a troll -- MW is more evil than M$ by EccentricAnomaly · · Score: 1

      $70k/yr X 12 licenses for my project is enought to add the features we need to octave.

      --
      There are 10 types of people in this world, those who can count in binary and those who can't.
    8. Re:not a troll -- MW is more evil than M$ by mnemonic_ · · Score: 1

      Actually, if you look at the MathWorks website, you'll see that MATLAB Costs $1,900 for a commercial use license. The add-ons range from $400 to $7,500 though.

    9. Re:not a troll -- MW is more evil than M$ by Anonymous Coward · · Score: 0

      but at my work, somehow it costs $70,000 a year because of some weird ass licensing scheme matlworks sticks large government labs with. I've tired to convince my project that for that money it makes more sense just to hire programmers to add whatever features we need to octave and go tell mathworks to fuck themselves.

      Er, do you mean one programmer? And what are you going to be left with? His own cooked up matlab-like language that only he understands?

      Your attitude is like "why buy a new car for $x when I can get my friend to make it out of scrap metal for half of that!" You're confusing price with value.

    10. Re:not a troll -- MW is more evil than M$ by Anonymous Coward · · Score: 0

      Please read what you're replying to. He talked about hiring a programmer to add the missing features to Octave. Octave is a perfectly cromulent Matlab clone, and it isn't at all inconceivable that Octave already has 95 % of the features they need. Add the missing features, and they can make considerable savings on their software budget.

  60. Re:Down with MATLAB by eh2o · · Score: 1

    i've done a fair amount of work in numpy --

    the upside of numpy is that its python, so you have the whole python foundation to work with... custom GUIs, database connections, web services, whatever you want, its there, its free, and its relatively easy to write new C modules if you need them.

    however things get kind of scattered when you try to do a big project. you will find out that what you need is module X, which is part of some bigger project, e.g. scipy, python-scientific, pysparse, etc etc (there are several). as you start to combine more and more modules from different places, the code starts to get messy because you are mixing all these apis together.

    and yes, plotting is pretty bad -- py-gnuplot is the best available, and it will only get you so far. some people try to integrate with blender or some GL toolkit to get better graphics... YMMV.

    I used to think the open-source ethic of using numpy outweighed the usefulness and completeness of commercial tools, but I don't believe that any more (though it may still be true in some cases). if you are in academics you can get matlab at home for cheap, and if you are an engineer and need it for work, then the high price is not really an issue.

    if you are doing research its probably in an academic environment, and probably a competetive one, and if you use numpy the matlab folks are going to code circles around you.

    all of that said I prefer to use mathematica -- which is by now fairly robust for fast numeric work as to be competetive with matlab, but with a lot more capabilities -- but its a *significantly* more difficult language/api to master... heavy emphasis on functional programming, lots of non-standard operators, etc.

  61. Re:Down with MATLAB by eh2o · · Score: 1

    mathematica's numeric capability has vastly increased with version 5, which makes it a strong matlab competitor. mathematica expressions can also be compiled to remove the type polymorphism and interpreter overhead.

  62. Don't blame me by Urusai · · Score: 1

    My team made 11th in the ACM contest; my teammates choked, or we would have probably made top 5 at least (this from a no-name American university). I, however, was outstanding. Yet still I have no job...shoulda taken IBM up on its offer.

    Seriously, though, it was PC games that got me into programming. Back then, one guy could write a game and sell it. Not so nowadays. Most kids are playing on closed platforms, playing games that take dozens of people to write. I remember fiddling with the EGA barrel rotator...nowadays its all thick, poorly documented (and often broken) API. Ten years ago, you had to sign an NDA and pay $20-40k to program a console. I had Turbo Pascal with a No Nonsense license at $99.

    1. Re:Don't blame me by BitchKapoor · · Score: 1

      My team made 11th in the ACM contest; my teammates choked, or we would have probably made top 5 at least (this from a no-name American university).



      http://icpc.baylor.edu/icpc/Finals/Standings.html

      Peking University? That can't be right. What ACM contest and year are you referring to (I'm not trying to be a bitch, I'm honestly curious). Wisconsin in '02 is the only American university I can find in 11th place, but Wisconsin is hardly a no-name in computing (historical trivia for those who don't know--logician Stephen Kleene, after whom the Kleen star (* in regular expressions) is named, was a professor at Wisconsin from 1935 through his retirement in 1979).


    2. Re:Don't blame me by Urusai · · Score: 1

      This was 1996 or 1997. Oh crap, my anonymity is creaking...

    3. Re:Don't blame me by BitchKapoor · · Score: 1

      This was 1996 or 1997. Oh crap, my anonymity is creaking...

      Hehe... belated congratulations, nonetheless.

  63. Re:Does one of the entries... by headhot · · Score: 3, Informative

    um.. i=0:1:10.
    Or do you mean address the first element with 0? Who cares if you start with zero, get used to it and move on.

    If you use Matlab in a Unix enviornment ^c works.

  64. open source pants. by Anonymous Coward · · Score: 0

    It went from troll to insightful. What do you think?

  65. *Do* use Python, but get the distro from Enthought by Anonymous Coward · · Score: 1, Informative

    If you're considering any sort of numerical or scientific work with Python on MS windows, get the "Enhanced Python Distribution" from Enthought.

    http://www.enthought.com/downloads/downloads.htm

    It's Python 2.3.3 with all the major numerical and scientific libraries included. The only thing "missing", IMHO, is the excellent matplotlib plotting library.

    http://matplotlib.sourceforge.net/

  66. Re:Down with MATLAB by Daniel+Dvorkin · · Score: 1

    if you are doing research its probably in an academic environment, and probably a competetive one, and if you use numpy the matlab folks are going to code circles around you.

    [shrug] This hasn't been my experience at all, but rather quite the opposite -- that I'm done with my programs and having a beer while the MATLAB users are still struggling and cursing. Believe me, I'm not averse to paying for a product that's worth the money (e.g., Mathematica for symbolic work) but it is my considered opinion, after using both MATLAB and numpy for quite some time, that this really is a case where the F/OSS alternative is genuinely better than the commercial product.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  67. State of the art of plotting with Python by Anonymous Coward · · Score: 2, Informative

    """and yes, plotting is pretty bad -- py-gnuplot is the best available"""

    No at all. matplotlib is the current leader with excellent high-level functions in both an object oriented API and a MATLAB-alike functional API. Figures are rendered on screen with an interactive pan-zoom viewer or to a variety of a variety of file formats (ps, png, ...) by using your choice from a variety of backend renderers.

    http://matplotlib.sourceforge.net/

    If you only need to render to file then the quality of PyX's output is unmatched. It includes very high level functions for common graphics operations and exposes much of LaTeX and PostScipt in case you need to do something detailed or unusual.

    http://pyx.sourceforge.net/examples/graphs/index.h tml

    1. Re:State of the art of plotting with Python by who+what+why · · Score: 1

      It's pretty esoteric, but I've been using the Python interface to the ROOT particle physics framework for all my plotting needs.

      It has a bunch of specialised features that appeal to physicists, not least the brain-dead histogramming. I do find the whole framewok poorly documented in general, and wouldn't recommend it to the general numerical computation public.

      However, I think this demonstrates the great thing about using a general purpose language like Python for numerical work. You can really use tons of different libraries and frameworks together. I use ROOT almost exclusively, since it enables me to talk in th esame terms as my colleagues. The power lies in being able to add in network or gui or input code written in python and any number of available libraries.

      And naturally, in such speciallised fields, YMMV.

  68. more alternatives to matlab by poincare · · Score: 2, Insightful
    Many have been pointing out alternatives to matlab, so strictly speaking this is 'redundant', but not all have been mentioned:
    • Octave
    • numeric python
    • R (awesome statistical package also does matrix stuff well).
    • Perl Data Language, commonly used by astronomers, much like the rest of perl in that it's difficult to wrap ones head around but capable of extremely powerful (i.e. terse) code.
    1. Re:more alternatives to matlab by Camel+Pilot · · Score: 1

      mod points please. This is the list I was looking for....

    2. Re:more alternatives to matlab by corngrower · · Score: 1

      You forgot scilab

  69. Stealing = collaborating? by roskakori · · Score: 1
    From the article:
    As noted, the unusual feature of this contest is that contestants submit code that is immediately scored, ranked, and displayed for all to see. In fact, as with the "Edit this Page" button on a wiki page, the contest is specifically designed to encourage participants to steal each other's code.

    I found it interesting that "steal" is used without any negative meaning. It's merely a shorter word for collaborating.

    Consider that right now we are told regularly that all kinds of reasonable activities (p2p, using patented software algorithms, making backups of things we paid for, ...) are "stealing". The intention would be that stealing is a crime, and hence these reasonable activities need to prosecuted and what not. However, if a culture emerges where stealing means collaborating, this represents a major backlash for the copyright cabal.

    I know, it's just words, but still...

  70. Re:contests... octave.. by NoOneInParticular · · Score: 1, Informative
    A small thing really, but one I like nevertheless: octave(-forge) supports the c-style += *= .*= /= ./= etc. operators. Thus when you have to do the clumsy

    very_long_identifier = very_long_identifier + 1;

    in matlab, octave allows you to write it as:

    very_long_identifier += 1;

    All in all, I feel that octave has evolved more into improving the basic language itself, while matlab has put most effort into gimmicks such as GUI-building and (poor/slow) OO-support.

  71. I don't really know that I'd push this by Sycraft-fu · · Score: 1, Insightful

    Octave doesn't even come close to measuring up to Matlab. I mean don't get me wrong, it's a neat program and it's powerful, but it's not playing in the same league as Matlab.

    So why not push it? Well one of the things I know that drives many people away form open source is the feeling that the solutions is offers are half assed. That when you choose an OSS version, sure you get it for free (if you don't need support) but it's going to suck. You'll have to make a bunch of compramises and not be able to do things as easily, or even at all.

    That's one of the reasons I like pushing Firefox is it's an example of a great success, something that is at the very least as good as the commercial counterparts, and probably better. You give up nothing for the most part, it really shows OSS shining.

    So while you might want to recommend Octave to someone who lacks Matlab but needs a powerful calculator, I wouldn't try and push it as a Matlab alternative for those that use Matlab. You are likely to find that it often doesn't even come close to doing what Matlab can, and that gives a generally bad impression.

    If an OSS solutions doesn't measure up to a commercial one, that's fine. Nobody says OSS has to be the best at everything all the time. However if that is the case, don't try to push it as an alternative, unless you are sure that it really will do everything the person wants, and do it just as easy.

    1. Re:I don't really know that I'd push this by Anonymous Coward · · Score: 0

      And Linux is not enterprise ready...

      How comes when the non-free software fans finaly clearly say why their non-free software is better than mature free software it's so often one of these:

      1. Hype (It must be better, it's the industry standard!)
      2. Inertia (I'm used to this, change is scary)
      3. Specific features (No, not everyone needs CMYK, most do not need in fact)
      4. Minor features (...but I can do it with one click instead of two keypresses!)
      Morale: don't project your usage patterns on the rest of humanity.
  72. Re:Down with MATLAB by eh2o · · Score: 1

    hm, interesting.... but do you think they struggle because of language limitation or because they are inexperienced programmers?

  73. SCILAB open source alternative by Zo0ok · · Score: 1

    Theres an open source program called SCILAB that much resembles MATLAB. If you are to solve a problem from scratch in MATLAB, chances are you can successfully use SCILAB instead. You'll be amazed how mature and flexible the product actually is.

    On thing sucks... the syntax is different from MATLAB. You cant use MATLAB "scripts" without heavily modifying them first. Curly brackets, or braces around vectors? Spaces or commas between vector elements? You have to find out and reprogram your brain ;)

    SCILAB is available debian package. In gentoo just run "emerge scilab". I dont know about other distros, or BSD.

    1. Re:SCILAB open source alternative by GrEp · · Score: 1

      How about GNU octave? Mathworks hosed our university site licence. I switched to octave and haven't had a problem runing any of my Matlab code.

      --

      bash-2.04$
      bash-2.04$yes "Don't you hate dialup connections?"| write USERNAME
  74. open source for proprietary platform by cahiha · · Score: 0

    This is a pretty typical abuse of open source by a commercial company. Not only is MATLAB hugely expensive, in addition, while they make money on platform sales, they want other people to develop free and open source software for their platform to make it more valuable.

    In fact, the only thing that has made MATLAB valuable is that it is in widespread use and that everybody develops add-ons for it. As a numerical programming environment, it is technically considerably worse than available alternatives, both commercial and free.

    Don't waste your time doing free work for MATLAB (or other arrogant companies like that). The same amount of time and effort would have been better spent contributing to one of the open source MATLAB alternatives, like Numerical Python and Scientific Python.

    1. Re:open source for proprietary platform by Anonymous Coward · · Score: 0

      Offering people the opportunity to engage in a competition is truly an abuse of open source by a commercial company!

      So far you've astroturfed every thread with numpy.

      Get stuffed.

    2. Re:open source for proprietary platform by Anonymous Coward · · Score: 0

      Offering people the opportunity to engage in a competition is truly an abuse of open source by a commercial company!

      Yes, if it's a marketing ploy to get people hooked on an overpriced commercial product, and to get them to do programming for a company that the company should pay for itself.

      So far you've astroturfed every thread with numpy.

      It's impossible to "astroturf" for an open source project; go look up the meaning of the word. But perhaps you are "astroturfing" for Mathworks.

  75. why not create something more enduring? by cahiha · · Score: 1

    I'm not sure why writing open source code for a platform that is so completely closed and hugely expensive is a badge of honor. It's like doing "volunteer labor" for poor starving Donald Trump. Right now, you may be getting MATLAB cheap as a student, but have you looked at the prices you have to pay for it in the real world?

    Furthermore, while MATLAB is a tolerable language for numerics, as a programming language, it is horrendous. I would not want to hire someone who spent most of his time programming in MATLAB.

    Why not devote that energy to writing and contributing Numerical Python code? Numerical Python is free and it's a far better language than MATLAB. Numerical Python does not have quite as many numerical modules as MATLAB yet, but it beats MATLAB hands down in the availability of other libraries (GUI, visualization, plotting, parallel computing, networking, etc.).

    Even better, you actually have a prayer of being able to use that code after you leave the university; MATLAB is simply too expensive for many environments.

    1. Re:why not create something more enduring? by adapt · · Score: 1

      I have used Octave and gnuplot on and off, and always had problems with the limited number of available functions. I have read here about the Sourceforge page and its many "toolboxes", and that seems very useful (i.e., I will start using it at home!). My old frustrations with using Octave started with installation / compilation problems, displaying the results in gnuplot, and exchanging code with my colleagues. The nicest features were the ease of use of Octave from any term, and some C-like things that Matlab does not allow you to do...

      But ... Matlab is very easy to use and to abuse. I have seen students type pages of code that can be handled in a line (albeit a long one :) You can use it to hide your lack of coding skills, but if you remember the underlying philosophy of Matlab and use it for what it was designed for - matrix calculations - you can write code that is very close to what you need when implementing it in hardware. And clear, clean and self-explanatory. A literal translation of an algorithm into a matrix formulation ( block processing ). Mathematica, Maple may be more suited for some problems, but Matlab has its place.

      Simulink was a slow and resource-hungry hog, but Moore's law and some bug fixing have made it quite usable.

      I upgraded now to R14 with some patches. I think it takes about 10000% longer to load than R13, and 1000000000000000% to use the editors and Simulink browsers. I remember R12 used to crash when you would try to use vim as an editor and the default Matlab editor was running... Or simply try to cut and paste some code between windows.

      The point is, when you are in a multi-million $ or project, the 2k for Matlab and a few k for toolboxes are not relevant. In a multidisciplinary project where time to market (or time to publish :) is an imperative, Matlab saves time and can be a glue between teams with very different skills. You can spend your valuable time tweaking your algorithm to run faster and use less resources, or you can try to learn Python, VHDL, and all assemblies for the target DSP architectures - things that can be avoided by using some toolboxes . Yes, these are not ideal but they provide a initial point to your colleagues that are specialists in the field to jump in and optimise it by hand.

      So, all in all, Matlab is a very handy tool, which is not meant to be a general purpose programming language. You don't make websites in Matlab - even if the manual says it can be done. It is expensive, but failure and project delays are much more costly.

      You should not blast somebody for sharing his code just because Matlab is not free. Other tools such as particle accelerators are not free either, and its engineers still share code and results ;-)

    2. Re:why not create something more enduring? by cahiha · · Score: 1

      Those are the same tired arguments we get from everybody defending an outdated proprietary system. If Matlab works for you because you know it, stick with it and pay the price, but that doesn't mean it's the right choice for everybody. In particular, it's almost certainly not the right choice for a 22 year old Ph.D. student.

    3. Re:why not create something more enduring? by adapt · · Score: 1

      Ah ha! Ok, a 22 y.o. needs to save all the money he can to buy beer. Beer, helas, is not free ;-)

      Returning to a serious tone, a PhD student should not care about paying for a software license, his Professor should. If Octave or Something Python is the tool you need, it is the tool that must be used - free or not. If it is Matlab, Mathematica or even Halo 2, you get a license for it. What I don't do is use a cracked version: if there is no budget for the best tool, get the best one that your money can afford. A trip to a conference costs more than a year license, Hell, even the office space you use costs more to your group... (No, not the cookies you steal during the night from the group cookie jar, those are not so expensive :)

      I would like to know why Matlab is an outdated inferior tool, and an expensive one. We do pay more than what costs a house per year in licenses, and we don't particularly enjoy it.

      Like another poster wrote, a lot of Matlab is done over Linux, by freakish fervent OSS advocates, that have not touched any other piece of proprietary software for ages. In fact, another poster thought that Matlab was OSS, because it is widely used by the Linux+$favourite_editor$+TeX crowd...

      Regards,
      Dr. Adapt PhD EE

    4. Re:why not create something more enduring? by adapt · · Score: 1



      1. PhD students do not live in the real world, and therefore do not know what software costs in the real world.

      2. I have never met anybody that programmed in {Scientific,Numeric,Monty} Python, from which we can conclude that they were not hired. People that keep their skills simple, like Matlab and C, usually get hired.

      3. You have not left the university yet, how would you want to be re-using your code already? I did, and I don't want to re-use my code anyway. It want it to be re-used at the university, while I make other nifty projects at my company.

      4. In the real world, Matlab is usually the cheapest tool you can buy, besides MS Office (flame at will, secretaries use MS Office, and therefore you use MS Office or your trips are not re-imbursed :) IC design packages are much more expensive...

      Dr. Adapt, itching from all the asbestos underwear and flaming graduate students

    5. Re:why not create something more enduring? by cahiha · · Score: 1

      Returning to a serious tone, a PhD student should not care about paying for a software license, his Professor should.

      Paying for Matlab licenses is not a problem in an academic environment; Matlab is essentially free for students.

      The problems are that (1) the Matlab language is bad from an educational point of view (you don't want students learning about software through Matlab), (2) Matlab is unnecessarily domain specific--the coverage of its libraries is too narrowly focused for modern applications of numerical computing, and (3) students are going to have real problems with paying for Matlab after they graduate.

      In fact, even in its core areas of numerical computing, the quality and coverage of Matlab is a mixed bag, which is why there are already several widely used commercial alternatives.

      Like another poster wrote, a lot of Matlab is done over Linux, by freakish fervent OSS advocates, that have not touched any other piece of proprietary software for ages.

      Yes, and my argument against Matlab is not that it is too expensive for students (which it is not), but that it is technically and educationally not a good choice, no matter what the price.

      Perhaps you misunderstood what bothers me about the contest: it's the use of the term "open source" to refer to the results and the devaluation of the work of the participants. This contest is just a way for a company to get a lot of people to do a lot of work that benefits the company for a small expected gain to the participants. That's exploitative and has nothing to do with "open source". Students should learn to get value equivalent to the work they put into a project. They get that out of commercial employment and they get that out of open source; they do not get it out of participating in such "contests".

    6. Re:why not create something more enduring? by adapt · · Score: 1

      Ok, now we do agree on most of the issues.

      My academic institution pays through the nose for its Matlab licenses. Probably we do make it "free" for student usage, but even the "academic" pricing of Matlab is a problem, when there are 36000 toolboxes...

      In EE it is a great tool to teach Communications, and Signal Processing. In CS, I would guess it is not the first choice. It's the MATrix LABoratory, not the MATrix LANGuage. I see it as an application that allows a lazy engineer to do matrix computations without going into deep programming projects.

      You can also look at the "pragmatic" approach: a coding contest can be fun. It does not have to be OSS to make you want to solve it or win it! Moreover, most Matlab users I know share their code (unless their contract says otherwise)

      Even if I use proprietary Matlab and Xilinx tools, I like Mozilla, Firefox, vim, TeX, gimp and OO (and cigwin and fink :) for my daily computer needs.

    7. Re:why not create something more enduring? by CompVisGuy · · Score: 1

      Matlab is actually an excellent programming language. I am currently using Java after using Matlab for a few years, and it is just so frustratingly verbose and inflexible. I could have achieved in Matlab in a few weeks what has taken me a few months in Java. The reason you should hire someone who likes Matlab is that they are used to getting things done and will want a programming environment that lets them get things done. Java, on the other hand, looks a lot like work, and feels a lot like work, and is a lot like work; but it's not very productive work.

      One of the reasons that Matlab is so productive is because there are so many toolboxes for it. I could use Python and feel all warm and fuzzy, but I'd have to reinvent the wheel so much.

      But I think the message really should be to use the right tool for the job: Matlab is excellent for prototyping numerical algorithms, and when you need to do that properly you (or your client) will be prepared to pay for the right software. When you need to do networking, then Python might be a better choice. But don't knock Matlab for being bad at regular expressions or databases; that's not what it's supposed to do.

      --


      "The noble art of losing face will one day save the human race"---Hans Blix
    8. Re:why not create something more enduring? by cahiha · · Score: 1

      In EE it is a great tool to teach Communications, and Signal Processing.

      OK, but there are plenty of tools other than Matlab that are adequate for that purpose. Furthermore, communications and signal processing is becoming increasingly algorithmic.

      In CS, I would guess it is not the first choice.

      It's actually more of a problem for EE because they may not see a lot of other programming languages.

      I see it as an application that allows a lazy engineer to do matrix computations without going into deep programming projects.

      But a tool can be that without having the limitations of Matlab.

      Moreover, most Matlab users I know share their code (unless their contract says otherwise)

      Yes, and Mathworks profits, while you keep paying for your 36000 toolboxes year after year.

      Contests can be fun. Why not hold one to add functionality you think is missing to one of the free tools?

    9. Re:why not create something more enduring? by cahiha · · Score: 1

      Matlab is actually an excellent programming language. I am currently using Java after using Matlab for a few years, and it is just so frustratingly verbose and inflexible.

      Yeah, Java is so bad that it makes Matlab look good in comparison. Fortunately, the world does not consist of just Java and Matlab.

      One of the reasons that Matlab is so productive is because there are so many toolboxes for it. I could use Python and feel all warm and fuzzy, but I'd have to reinvent the wheel so much.

      There are many toolboxes for it, but they have a narrow focus (in part a consequence of the limitations of the language). That's a big problem with Matlab: you end up having to reinvent the wheel constantly, or you end up just not doing things you ought to be doing.

      But don't knock Matlab for being bad at regular expressions or databases; that's not what it's supposed to do.

      But that's what modern numerical computing increasingly involves: data mining, text mining, bioinformatics, etc. Those require database access, string processing, I/O, networking, and other features. In addition, numerical algorithms are getting increasingly complicated and need more and more complicated data structures.

      and when you need to do that properly you (or your client) will be prepared to pay for the right software

      Be that as it may, that decision doesn't even come up because the right software is actually cheaper than Matlab.

    10. Re:why not create something more enduring? by CompVisGuy · · Score: 1

      Your reply makes me think that you want Matlab to do something that it is not designed to do. Numerical algorithms have absolutely nothing to do with string processing, I/O or networking. Numerical algorithms relate to numbers.

      Now, it is certainly the case that data mining, text mining and bioinformatics will use numerical algorithms, but the database, string processing, I/O and networking tasks you mention are simply tasks that need to occur before or after you run numerical algorithms. A final product may well need to integrate all these tasks into one application.

      Matlab's role in this is to allow researchers to experiment and develop the numerical algorithms. Once developed, these algorithms could be recoded in C or, more likely, simply compiled into a library using the Matlab compiler. These can then be linked into the final application.

      In your field, it may be the case that doing all these extraneous tasks is the bread and butter of your work and that the numerical algorithms are reasonably simple and/or provided by third party libraries. That being the case, I can see no reason to use Matlab.

      In my field, developing the numerical algorithms is the bread and butter of my work. Any I/O etc. can be done in an ad hoc way (because it is a solved problem and is therefore an uninteresting research topic). So for me, Matlab is an excellent choice because it lets me develop those numerical algorithms far quicker than almost any other environment I can think of.

      The price of Matlab is inconsequential compared to the cost of a regular (technical) employee's wages and equipment that my dept. uses (e.g. MRI scanners, which cost millions).

      As my job depends on getting results as fast as possible, I am always looking for ways of achieving that. So far, I have not found any environment that lets me deliver results as fast as I can in Matlab.

      --


      "The noble art of losing face will one day save the human race"---Hans Blix
    11. Re:why not create something more enduring? by cahiha · · Score: 1

      Your reply makes me think that you want Matlab to do something that it is not designed to do.

      I don't want to use Matlab at all; I think it's not a well-designed tool.

      Now, it is certainly the case that data mining, text mining and bioinformatics will use numerical algorithms, but the database, string processing, I/O and networking tasks you mention are simply tasks that need to occur before or after you run numerical algorithms.

      Well, you are lucky that your numerical problems are simple enough that you can get by with that kind of separation. Many people working with numerical algorithms cannot: it simply is not feasible to separate the numerical and non-numerical components like that.

      Matlab's design would be acceptable if it were an engineering tradeoff of some sort, but it gains nothing by forcing those restrictions on you: Matlab isn't a better numerical programming language because its string processing is poor.

      As my job depends on getting results as fast as possible, I am always looking for ways of achieving that.

      So does mine, which is why I don't use Matlab anymore. The only thing Matlab has going for it is its collection of toolboxes, but even that is so spotty that the tool drives your work rather than the other way around if you are satisfied with them.

      Consider yourself lucky that your needs are modest enough that you can get by with Matlab; most other practitioners of numerical computation are not so lucky that they can pay $3000 to some company and have an environment that meets their needs perfectly.

    12. Re:why not create something more enduring? by CompVisGuy · · Score: 1

      I'm finding your objections and their justifications rather orthogonal. For example you say that "Matlab isn't a better numerical programming language because its string processing is poor", which is a bit like saying that "your car isn't faster because it's green". I could understand if you thought Matlab was poor at numerics because it uses methox X and method Y has been proven to be superior.

      Well, you are lucky that your numerical problems are simple enough that you can get by with that kind of separation.

      No, I'm doing research where I can make certain assumptions (e.g. I already have my data in a certain format and I don't have to worry about the whole pipeline). That's not to say those problems don't exist, but that they are trivial compared to the research I'm doing. Solving these other problems wouldn't help me publish on my topic any quicker. My numerical problems are hard, but I don't care about things like string processing and networking---these aren't numerical problems.

      I also disagree with your assertion that Matlab is only good because of its toolboxes. I know that some people just string calls to toolboxe functions together, but that isn't how most people I know use it. What they tend to do is to use toolbox functionality for problems they are not actively interested in and write custom code for the things that they are. This allows one to spend more time focussed on the research task at hand and little time doing grunt work.

      If I were asked why I use Matlab, I would say because it abstracts the numerical problems to a level that is close enough to the mathematical concepts that one works with, but not so much that you can't tune the algorithms. It provides this abstraction in an environment that allows very rapid development and effective debugging and profiling. It also allows one to interact and experiment with data at the command line, which I find to be an effective way to develop software. It is also trivial to write cross-platform software, so members of a team can use the platform they are most comfortable with. All this combines to let me get results quickly. I'd love to be able to use open source/free software, but the reality is that in the field I work, it would take me much longer to get my work done.

      If you can suggest some alternatives, I would be very interested to look into them.

      --


      "The noble art of losing face will one day save the human race"---Hans Blix
    13. Re:why not create something more enduring? by cahiha · · Score: 1

      I'm finding your objections and their justifications rather orthogonal. For example you say that "Matlab isn't a better numerical programming language because its string processing is poor", which is a bit like saying that "your car isn't faster because it's green".

      Assume your car lacks a floor and safety belts. You can get from point A to point B without them. Yet, pretty much every modern car has them (including race cars that don't have much else) because they are actually important, and because their inclusion doesn't have any significant costs.

      No, I'm doing research where I can make certain assumptions (e.g. I already have my data in a certain format and I don't have to worry about the whole pipeline). That's not to say those problems don't exist, but that they are trivial compared to the research I'm doing.

      As I was saying: your problems are simple enough that you can get away with "load a bunch of data, do some array operations and linear algebra on it, save the results". Lots of real-world applications of numerical methods cannot be developed or tested that way.

      If you can suggest some alternatives, I would be very interested to look into them.

      Well, since you said it wasn't primarily specific toolboxes that attracted you to Matlab, you have plenty of choices.

      Personally, I'm fond of Numerical Python, because its numerical array facility is at least as good as Matlab's, but in addition it is an excellent general purpose programming language, and because it has high quality visualization, parallelization, and other tools available. Abstraction, command line, and portability are as good or better as Matlab (if you find a concrete problem, please describe it so that it can get fixed). Tool support is excellent (JIT, C/C++/Fortran interfaces, library bindings, graphics, etc.). There are plenty of other choices, including Mathematica, Splus/R, and others, that are in every way a match for Matlab and each have specific advantages.

      For many algorithms, in particular in computer vision, C++ is still the only realistic choice. C++ has excellent libraries available, and with debuggers, development in C++ is pretty much as interactive as in Matlab. Most importantly, C++ is in a class by itself among programming languages in supporting complex mathematical abstractions. And, as a bonus, it even implements them efficiently.

    14. Re:why not create something more enduring? by CompVisGuy · · Score: 1

      I presume your seat belt analogy refers to type safety, which is a bit of a joke for C and C++ as you can explicitly cast one type to another (i.e. there is no run-time type safety). The small amount of Python coding that I have done suggests that its type system is similar to Matlab's (I'm sure there are differences).

      I have tried SciPy. I could not get it to install (SuSE 9 on x86). I can't remember the specific problem, but I spent about an hour messing around with it. If one can't guarantee that the environment will even install, then writing code for that environment is equally wasteful as writing code for a proprietary system. The benefit of using the proprietary system is that paying the money gives you certain guarantees (i.e. the software will at least install). Yes I could have spent days in email conversations with SciPy users, but I had a problem to solve, a limited time to solve it, and getting semi-helpful replies from the community (along with the typical "I can do it, you must be a lamer newbie" replies) over a period of days isn't my idea of being productive.

      I remember that SciPy has support from a company, who could have helped if I'd have paid them. I can't remember the company's name (and somewhat ironically, the SciPy website is down at this exact moment, so I can't look them up).

      It's a shame that the typical response from the open source advocates when you complain that you had installation problems is to assume that you are at fault. I understand configure; make; make install and I understand dependencies. What commercial vendors understand is that their software must install easily.

      As for your assertion that computer vision can only be realistically done in C++, this is absurd. As my username suggests, I do computer vision research and my dept. uses Matlab, C++ and C. Most new members are encouraged to use Matlab as it has proven to be more productive. The C++ development experience is nowhere near as interactive as Matlab. I've never seen a C++ user try to run their code, then error, have it break out into a debugging session, want to visualise some data, write the code to do it and then call it with the data from the breakpoint, then correct the problem and continue running the code. Maybe this is possible now, but I'd be very surprised (you can do something similar using Apple's XCode tool, but it's not as powerful as Matlab).

      I think we'll have to agree to differ on this one.

      --


      "The noble art of losing face will one day save the human race"---Hans Blix
    15. Re:why not create something more enduring? by cahiha · · Score: 1

      I have tried SciPy. I could not get it to install (SuSE 9 on x86). [...] What commercial vendors understand is that their software must install easily.

      And Matlab is a pain to install on Debian, while installing SciPy on Debian is a single command. Apparently, Mathworks does not understand that their software must install easily.

      In any case, for most things, Numeric is sufficient, and last I tried, Numeric installed trivially on SuSE (as well as on Debian, MacOSX, and Windows).

      I presume your seat belt analogy refers to type safety,

      I stated what the analogy referred to and it was not type safety.

      As for your assertion that computer vision can only be realistically done in C++, this is absurd.

      I did not make such an assertion (you are having trouble with quantifiers). What is absurd that you generalize from your narrow area to all of computer vision and all of numerical computation.

      As my username suggests, I do computer vision research and my dept. uses Matlab, C++ and C. Most new members are encouraged to use Matlab as it has proven to be more productive.

      I get the picture just what kind of department you are in. You may do well academically in the short term, in the sense of maximizing papers published and having a department with a good reputation; I don't think you are getting/providing a good education.

  76. Matlab doesn't measure up by cahiha · · Score: 1

    Octave doesn't even come close to measuring up to Matlab.

    Depends on what you mean by "measure up". The stuff that makes Matlab useful is all the libraries and tools created by third parties. Matlab itself is a lousy programming language and a lousy implementation. Octave doesn't have all those third party packages, which makes it more limited.

    So why not push [Octave]?

    Because Matlab itself is broken; there is no point in pushing the clone of a bad system to an illogical extreme (although that doesn't mean people won't try). It may be convenient for existing Matlab users to have others waste their time giving them a free-as-in-beer alternative, but that's not the point of open source. If you are happy with paying thousands of dollars for Matlab and can live with its numerous limitations, well, just keep on using it.

    The alternative to Matlab is not Octave, it is Numerical Python. And compared to Numerical Python, Matlab is half-assed.

    Don't expect Numerical Python to be a drop-in replacement for Matlab, it is not. You will have to spend time learning it. Packages you can get for Matlab won't exist for Numerical Python, just like there are lots of packages for Numerical Python that Matlab doesn't have. Overall, in terms of technology alone, Numerical Python is better; the fact that it is free and open source is an additional bonus.

    1. Re:Matlab doesn't measure up by Sycraft-fu · · Score: 2, Interesting

      Well guess what? I'm going to have to say you probably are wrong. I personally don't use Matlab but I support those that do in an educational setting. Our department makes extensive use of Matlab, we use it for instruciton, we use it for research. Now research groups espically are always money hungry. They always want more than they have so they try to save as they can. We have many who use Linux rather than Solaris to save on hardware and software fees.

      None the less, we don't see Octave or Numerical Python used. Ever. In any group. It's Matlab or get out. The usage keeps increasing so the department will be scaling up the number of licenses we have. It's mostly core licenses as well. We do have some toolkits, but those are generally only a couple liceses for specific groups. Overall, it's the Matlab package that gets used.

      Now I'm sure there are situations where these alternatives work, but I'd put money on the fact that they don't hold a candle to Matlab overall. Why? Well if they did, they'd be moving up, if not taking over.

      I mean look at Firefox. HEre you are talking browsers, this is a market where you are dealing with lowest common denominator, users that have NO computer skills. Here the slightest change, even a purely cosmetic one can make someone refuse to switch. Yet, Firefox has been taking off in a big way. It probably won't become dominant for the reaons mentioned, but it's a serious threat.

      Now one would think Matlab alternatives would be much better off. I mean here we are talking about techinal users. Electrical engineers use Matlab and so on. If you could offer something that's superior, free, and customizable, well the'd be jumping over in droves. Hell I'd expect it to be the standard, or at least on it's way.

      Alas that's not what we see.

      I personally see a lot of paralles to the audio world, something I work with personally. There's lots of OSS audio stuff out there, and there are those that push it as though it were all you need. However when I use it, I find it severly lacking. It cannot do what teh commercial software does. Even in many cases where it can, it does it far inferior either quality wise or ease of use wise or feature wise. It being free doesn't make up for what it lacks.

    2. Re:Matlab doesn't measure up by cahiha · · Score: 1

      Our department makes extensive use of Matlab, we use it for instruciton, we use it for research. Now research groups espically are always money hungry. They always want more than they have so they try to save as they can. We have many who use Linux rather than Solaris to save on hardware and software fees.

      Matlabs for educational institutions costs virtually nothing.

      If you could offer something that's superior, free, and customizable, well the'd be jumping over in droves.

      No, they wouldn't, because they'd have to start from scratch learning a new language and rewriting all their code. Switching is costly, but that doesn't tell you about the cost of the product.

      I mean look at Firefox.

      The cost of switching browsers is virtually zero; just about the only investment is the bookmarks, and they get converted.

      Now I'm sure there are situations where these alternatives work, but I'd put money on the fact that they don't hold a candle to Matlab overall. Why? Well if they did, they'd be moving up, if not taking over.

      They are moving up, in new communities of users.

      It cannot do what teh commercial software does. Even in many cases where it can, it does it far inferior either quality wise or ease of use wise or feature wise. It being free doesn't make up for what it lacks.

      At a cost of thousands of dollars per Matlab license, being free actually starts mattering. But in this case, the Matlab alternatives are not only free, they are also better.

    3. Re:Matlab doesn't measure up by L7_ · · Score: 2, Interesting

      Its the same argument that people give that still use Fortran. Most (scientific) departments have professors that make extensive use of Fortran for research and in thier instruction.

      Its what the instructors learned originally and it 'can get the job done', but it is not neccesarily the best solution in whatever terms that you measure success. Professors use it because that is what they know. People don't jump all over new technologies because the original learning curve even if is 'superior, free and customizable'.

      I think the same can be said of your department's use of Matlab. You have a set of users already using it with a set of code that already does a lot of things that they find useful; if they switched to another platform thousands of lines of Matlab code would need to be re-written. Since Matlad 'still works' they will never switch due to the legacy it has.

    4. Re:Matlab doesn't measure up by Deagol · · Score: 1
      There is hope -- it'll just take time and new blood to make inroads.

      I once worked for a scientific computing center (lots of Matlab users, too). I maintained a old Sun box with a few statistical apps. One of the biggies in the stats area is S-PLUS.

      S-PLUS is just as entrenched as Matlab is in its respective cirlces. You either use it or your work won't be taken seriously -- typical academic bigotry.

      However, a new user came on board. I don't know if he was a Ph.D. candidate or a professor, but he requested that I compile the "R" package, which is an open source version of S. Made my day, it did. :)

      So the old dinosaur software packages *can* be slowly usurped.

  77. Slashdot's favorite subject : Software Patents by Anonymous Coward · · Score: 0

    You can move to one of the free alternatives if you like but Mathworks is heading off this challenge by patenting some of the new features of the language. Function handles which are heavily used within all toolboxes now have a patent against them ....

    USP - 6,857,118

    Octave will not be able to keep up in copying the language and will have to fork so gone will be the days of easy porting of code between the two systems.

  78. Re:Down with MATLAB by Big+Mark · · Score: 1

    I prefer Maple to Mathematica - it's not as quick as Mathematica, but it seems to cope better with really horrible integrals and differential equations. This is just my experience, but most maths PhDs and professors I know prefer Maple too.

    I'm not really too keen on Matlab. It's symbolic capabilities are too weak for my needs and I find it easier to prototype numerical things (as well as visualise the final data) in IDL.

  79. MATLAB serial key cracker by julie-h · · Score: 4, Funny

    I submitted the algorithm that MathWorks uses for generating the MatLab serial key.

    It have a user friendly gui and everything, so I had hoped it had a chance.

  80. yeah... 'cause their own code sucks... by StarsAreAlsoFire · · Score: 1

    Do we get rewarded for showing how crappy MATLABs code is?

    For instance, their use of the single letter global variable (g, I believe it was) in one (or more) of their ODE solvers?

    beh. MATLAB is like crack; as soon as you start using it you know you should take the time to find a *real* solution to your problems... but really, it is far easier to continue on down the path you are on...

    No offence meant to the uber geniuses who create the algorithms. But that wouldn't generally be the folks at MATLAB, and when so, they (I hope) aren't the guys making it into crap code.

    1. Re:yeah... 'cause their own code sucks... by mwfunk · · Score: 1
      Single letter variables are common in numeric and scientific code, it's an old FORTRAN convention. You have to declare variables in FORTRAN, but there are also predefined variables with single-letter names (one range of letters are integers, the rest are floats, I believe). Also, if you ever read "Numerical Recipes in C", you'll notice it a LOT (most or all of the code is a direct translation from the original FORTRAN).

      I won't say it's a good thing, but it's also not always a sign of an amateur programmer. In this case it's probably the product of some math PhD, where the only programming he ever does is numerics in f95 or something. So I have faith in the quality of their code, but it's still annoying.

    2. Re:yeah... 'cause their own code sucks... by StarsAreAlsoFire · · Score: 1

      You do not use single letter variables in libraries. Period. Ever. Read some C libraries; you prefix vars with screwy chars. Double underscore is a common choice.

      If there *are* single letter vars in your library, you REPLACE them with something else. It is easy to do, and QC should ALWAYS catch crap like that.

      You should not have faith in the quality of matlab code. If you ever built something expensive based on an unverified simulation that was given by MATLAB you would be fired. I did not have one professor that believed MATLAB was good -- it was simply acceptable at a broad range of things, and was available to them already. And the University wasn't about to fork over more bucks for a bunch of different software packages for each department.

      Sorry. Rant mode off. MATLAB cost me far more time than it ever saved me. There are many cases where the reverse is true. The *idea* is sound. The company blows. I am very glad there are open-source alternatives that are rapidly gaining ground :~).

  81. Re:hloel by Anonymous Coward · · Score: 0

    You succeeded!

  82. Re:Down with MATLAB by Anonymous Coward · · Score: 0

    Most people doing research in mathematics aren't working on problems for which Maple is going to be particularly useful.

  83. Erratta by fireboy1919 · · Score: 1

    Man, I posted really tired here.

    About half the time (cases 1 and 5, and in the fact that Matlab may be falling behind Octave in the use of a symbolic engined) that I said Octave I meant Matlab.

    Obviously in my mind they're very interchangable.

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  84. Re:Down with MATLAB by Big+Mark · · Score: 1

    They don't use Maple to do their research, they use it to evaluate expressions they don't want to spend all afternoon evaluating manually.

  85. Re:Down with MATLAB by adapt · · Score: 1

    Can you tell which hardware you use it on? And can you list the OS and required packages needed to run you Matlab alternative?

    My main problem with Matlab alternatives was the centuries needed updating systems and compiling and downloading and compiling some more until you have something that works but still does not work as well as Matlab. But this was a while ago, and from your posts, things have changed a lot for the better.

  86. Re:contests... octave.. by Roger_Wilco · · Score: 2, Interesting

    Octave uses GiNaC for its symbolic stuff. Currently, part of why Octave's symbolics aren't better, is not that the library doesn't do it, but that the "glue" hasn't been written.

    What are you waiting for? :)

  87. Re:contests... octave.. by samhalliday · · Score: 1
    may I also point out Octave, the open source alternative

    octave is not even nearly at the level Matlab is... nothing is. it is quite annoying that they have such a dominant product and noone has an alternative. its still pretty damn good though.

    maths packages are something which OSS are just years behind unfortunately. matlab is the only real option for numerical stuff and mathematica the only real option for symbolic (maple is for classrooms, not the workplace).

    on the numerics front, you are right there is octave. there are also some GPL C libraries such as matpack and GSL which are pretty good if you are writing a project to be released using the GPL and you take the time to learn the workings of the functions. but then, most problems you don't want to have to write a program to solve an ODE! matlab can do that in minutes whereas it could take a day in GSL. these OSS libraries have great documentation, an important thing for a numerics library.

    on the symbolic front, OSS sucks. there is maxima and no documentation beyond introductions. no decent GUI exists and i found myself using the terminal mode. its about a decade behind maple or mathematica.

    i have heard rumours that axiom will be good, but i seriously doubt it. and to be honest, i kinda like knowing that mathematica is used by so many people and is very well bug tested. the results may never be checked by a human, so you gotta trust your computer!

  88. Re:contests... octave.. by smcdow · · Score: 2, Interesting
    8) I've never looked at my License file. I never track what it's doing. This has never been an issue.

    You've obviously never deployed nor administered a site license for MATLAB. Talk about a ROYAL PITA. Your time will come.

    --
    In the course of every project, it will become necessary to shoot the scientists and begin production.
  89. MATLAB is not a "programmer's" language... by ezdude · · Score: 1

    This is not necessarily a bad thing, however. As an engineer, I use MATLAB (academic license) almost every day because it lets me solve the problems I care about, without having to worry about programming too much. There are many of us out there who are "literate" programmers, and took those courses in college, but as we get older (and have real responsibility), we just want programs that work and solve the problems we need to solve. That is what MATLAB is about. It's not about garbage collection and stack management. If that's your bag, then you need to stick to C or assembly, I guess. Having said that, I think a MATLAB "programming" contest is a bit silly.

  90. Re:Does one of the entries... by exp(pi*sqrt(163)) · · Score: 1
    who cares if you start with zero, get used to it and move on
    I did. I dumped matlab.
    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
  91. No way by Mr.+Underbridge · · Score: 1
    Good luck replicating their Neural Network toolbox, the DSP toolbox, etc, using one programmer.

    Hell, Octave still can't do decent 3D plotting.

    1. Re:No way by EccentricAnomaly · · Score: 1

      it's $70K per year per license... 12 licenses run $840,000 /yr which would pay for a decent size team.

      --
      There are 10 types of people in this world, those who can count in binary and those who can't.
  92. Re:contests... octave.. by Anonymous Coward · · Score: 0

    octave is not even nearly at the level Matlab is... maths packages are something which OSS are just years behind unfortunately.

    If you wish people to believe you know what you're talking about, it would have helped if you'd bothered to give a single example illustrating Matlab being able to do something that would be difficult or impossible in Octave.

  93. Worst contest ever? by Stankatz · · Score: 1

    This contest is bizarre. You're allowed to take someone else's code, make a few trivial optimizations to it, and resubmit it. If the new code is a tiny bit faster, you win! What the hell kind of programming contest is that? That's like me taking a draft of a novel by a famous author, fixing a few typos, and claiming a Nobel Prize in literature. Are they trying to jump on the OSS bandwagon to seem more hip with the younger crowd?

    And the worst part is that, as far as I can tell, there's no prize money! No way am I spending hours racking my brain just to get a blue ribbon and help to advertise their product.

  94. ICFP by sgauria · · Score: 1

    Wow, the contest description is just like the ICFP contest. http://www.cis.upenn.edu/proj/plclub/contest/ants. html I would have expected something more matlab-specific.

  95. Still sitting on the Python fence by Latent+Heat · · Score: 1
    I have been looking long and hard at Python, but there are some "not quite there yet" issues on which people can offer guidance.

    I never really got interested in Matlab as my main development environment for numerical work for a variety of reasons -- some historical, some technical, some commercial, and some personal prejudice. But given that Math Works has the engineering/science academic market sewn up, given that students and faculty are hooked on it, I have found another use for it.

    People talk about Matlab as a numerical "scripting" environment, but it is more than that. I have been using it as the numeric/graphical counterpart to a browser, a kind of sandboxed GUI operating system. It does an OK job as a container for ActiveX controls, and if ActiveX is not your thing, Matlab 7 also now acts as a container for Java Swing controls. So not only can you script numerical algorithms written in other languages, a Matlab figure window (graphics-object container) can host either ActiveX or Java widgets, you can issue commands to those widgets as well as receive callbacks from them.

    I would really like to have Python in place of Matlab for engineering teaching, etc, but there are some holdups. Arrays are pretty basic to signal processing and related numerical work I am interested in. Matlab's basic data type is of course a matrix, arrays are simply 1 by N matrices, and array data is efficiently interchanged with Fortran/C/C++ using the Matlab libraries. Array data is interchanged with ActiveX functions using Variant variables of safe arrays and with Java arrays pretty much transparently and with a tolerable level of translation or marshalling overhead.

    Arrays are a Python add-on and not really part of the core Python language (lists and dictionaries are good and powerful, but you take a performance hit using them to do signal or image processing where each list element is a pixel or a signal sample). As to the add-on, there is both Numeric and Numarray, and while Numarray is newer and recommended, a lot of Python array stuff lives in the Numeric world. And support for numeric arrays is far from universal -- I am pretty sure that the ActiveX support marshals Variant-variable safe arrays as Python lists; the ActiveX/Win32 stuff doesn't know about the numeric array types, making it pretty clunky to pass an image raster to an ActiveX control.

    So, what is the current, May 2005 story on array support in Python and which graphing/plot packages are compatible?

  96. Re:contests... octave.. by coult · · Score: 1

    matlab is the only real option for numerical stuff


    Actually, it isn't a real option for numerical stuff, unless you mean playing around/prototyping. For production-quality industrial numerical work, you have to write it yourself. I've had a number of consulting jobs where my task was simply to efficiently duplicate some matlab code in C/C++/Fortran..with the end result that it runs _hundreds_ of times faster, and can be modified/enhanced without relying on Matlab's proprietary toolboxes.
    --

    All is Number -Pythagoras.

  97. Netlab instead ? by garyebickford · · Score: 2, Informative

    In my Machine Learning class at Portland State U, we've been using the Netlab toolbox from Aston University Neural Computing Research Group, which is a set of Matlab libraries and programs. I haven't used Matlab's own neural network tools or done any of this stuff in my working life, but NetLab is at least a good learning tool, and is itself GPL.

    Several people in the class have speculated how much work it would require to port NetLab to Octave, but AFAIK nobody's actually taken a look. I downloaded it to my linux box but haven't tried to do anything yet myself.

    From the Netlab page: "The Netlab library includes software implementations of a wide range of data analysis techniques, many of which are not yet available in standard neural network simulation packages. Netlab works with Matlab version 5.0 and higher but only needs core Matlab (i.e. no other toolboxes are required). It is not compatible with earlier versions of Matlab."

    --
    It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  98. Great Concept by Anonymous Coward · · Score: 0

    This sounds like a really great concept, I hope some big organisations arrange big competitions/contests where all submitted projects must be under an OSI compatible license, and the winner gets alot of money as a reward and so he can fund the project and develope it further.

  99. Re:contests... octave.. by bganesh · · Score: 1

    Hi, MATLAB has JIT in their newer versions, while OCTAVE doesn't. JIT is very useful to speedup the computations. Ganesh

  100. Interesting! by Mr.+Underbridge · · Score: 2, Interesting
    In my Machine Learning class at Portland State U, we've been using the Netlab toolbox from Aston University Neural Computing Research Group, which is a set of Matlab libraries and programs. I haven't used Matlab's own neural network tools or done any of this stuff in my working life, but NetLab is at least a good learning tool, and is itself GPL.

    That's an interesting package. I'll guess that it isn't as full-featured as the Matlab version, and in fact seems to have a somewhat different focus. I'd almost say it's a fairly decent complement to the Matlab toolkit, actually.

    Naturally the big stumbling block for corporate development would be the GPL, but it is free, so one can't complain. Still, it'd be nice to see somebody compete with Matlab. A lot of times it's the toolkits, not base matlab, that ends up costing $$$$$. Usually when someone makes a good add-on toolkit, Matlab buys them out, as with Kohonen's SOM toolkit, but to his credit he does still release a GPL version.

    There are some things in the Netlab toolkit that might do what I need for some current projects at work, though, so thanks!

  101. Have you used Fortran for research? by Sycraft-fu · · Score: 1

    Like most languages, it has strengths and weaknesses. Well the way it deals with number processing is a huge strength. It allows you to do things easily that would be far more complecated in something like C++, but it compiles to native code and thus is very fast (espically when done with the Intel compiler).

    Fortran in fact isn't widely used in our department, only certian groups use it, but those that do, do so for a reason and it's not just "because that's what they learned". Realise that Fortran isn't a dead language, it is updated continually and we're due for a new spec here soon.

    Just because you don't like or understand a language, doesn't mean it's not legitimately the best for certian things. Ya, Fortran isn't something you want to use general purpose, but when you are doing scientific work, it really is the best for the job.

  102. MAtlab costs nothing? by Sycraft-fu · · Score: 1

    Really, well I guess someone forgot to tell Mathworks. We are doing the renewal right now on our existing licenses (yearly renewal) and it's five figures. We badly need more licenses, as we are always running out (floating license server) but the research groups don't want to pony up the cash. Guess we should tell them no problem, because some random guy on /. who doesn't know what he's talking about says Matlab "costs virtually nothing" for us!

  103. Re:contests... octave.. by Ichoran · · Score: 1

    GiNaC doesn't even do symbolic integration, aside from polynomials, and adding the feature is "very low" on the priority list. It's not really comparable to Maple or Mathematica. They've been banging on symbolic integration for two decades.

  104. Re:contests... octave.. by IntergalacticWalrus · · Score: 1

    "Care to name a few ways it exceeds Matlab besides being free?"

    Why? He didn't claim that Octave was superior. Just that it's a nice free alternative. What's the problem with that?

  105. Glad I could help! by garyebickford · · Score: 1

    It's not often that one of my /. posting is not only interesting but useful to somebody! I hope you find NetLab to be as useful as it might be.

    You've motivated me to at least take a look at porting NetLab to octave this summer. I won't be taking classes and I need to learn how these paradigms work and how to build them, so this might be a good learning experience - although knowing all the idiosyncracies of both MatLab and Octave syntax and APIs may not be considered useful knowledge!! :O) I'd really like to see an OpenGL interface for Octave. I think I may have seen some info that someone was doing that, but I can't find it now.

    I still wish there were a language today whose model for working with arrays was as coherent as APL's.

    --
    It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    1. Re:Glad I could help! by Mr.+Underbridge · · Score: 1
      It's not often that one of my /. posting is not only interesting but useful to somebody! I hope you find NetLab to be as useful as it might be.

      Me too! It has some features that we've been thinking of implementing at work, and it's easy to get people to try things if they're free.

      You've motivated me to at least take a look at porting NetLab to octave this summer. I won't be taking classes and I need to learn how these paradigms work and how to build them, so this might be a good learning experience - although knowing all the idiosyncracies of both MatLab and Octave syntax and APIs may not be considered useful knowledge!! :O) I'd really like to see an OpenGL interface for Octave. I think I may have seen some info that someone was doing that, but I can't find it now.

      That'd be useful. I'd say that a more robust interface between Octave and Matlab plotting would be useful in general. Octave uses Gnuplot I believe. In porting pretty much anything to Octave, plotting seems to be the stumbling block.

      Good luck.

    2. Re:Glad I could help! by garyebickford · · Score: 1

      Hmm. I've thought about this before. I don't know how difficult this should be. In my (long) past experience with graphing and charting software, this amounts to at least two separate problems. The first and easiest is the drawing library - the pure graphics capability. The second, hardest, most complicated and usually least well done part is the interface and presentation capability. In other words, it's easy to draw a pie chart. Making it pretty, providing enough feature variety (but not too much), and making it easy to use is hard. A classic "90% rule of software" problem. But there should be some good libraries (based on OpenGL?) that provide the charting tools. So many scientific disciplines have their own unique preferred ways of charting their data!

      A link or two, for whomever else might be reading this:
      Graphical Data Presentation, Chapter 12 of an online text, Introduction to Data Collection and Analysis by Albert Goodman, provides a short overview of the basics of charting. I only glanced at it but it seems to be well written.

      Edward Tufte's Visual Display of Quantitative Information is widely regarded as the most respected book on graphic presentation of data. He conducts workshops around the country. Tufte's Poster page has a pic of the "Napoleon's March" map by Charles J Minard, a triumph of multivariate data representation.

      Tufte also provides a forum on data presentation. This multi-year thread discusses dozens of free, open source and commercial graphing tools. He has also published an essay on The Cognitive Style of PowerPoint (or lack thereof). It's not available for free, so here's a synopsis and a review.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  106. Re:contests... octave.. by dunc78 · · Score: 1

    No, he didn't. He claimed that Octave exceeds, which means is superior to, Matlab in some ways. Therefore, I wanted to know what ways he thinks it is superior to Matlab. I want to know this isn't just because of the usual ./ bias that everything that isn't free is bad.

  107. Translation by leonbrooks · · Score: 1

    The intrinsic ForTran array management sucks so much that they had to add lots of manual overrides. The manual overrides allow them to pull certain tricks with array management to make it all go fast again. If they know what they're doing.

    In real life, you'd be far better off in performance terms if you simply used a rational array management system written in C, prototyped in Ruby or Python and reduced anything performance-critical in the prototype to C again. I have no idea why you'd attempt high performace in C++; it's just as pointless as trying it with Java.

    God is REAL unless declared INTEGER*4, and all that.

    --
    Got time? Spend some of it coding or testing
  108. MATLAB and Acadamia by Anonymous Coward · · Score: 0

    Actually nether MathWorks nor Cybernet Systems in Japan support Acadamia. I was trying to get a version for my project, but Cybernet Systems told me to get lost. Before this experience I was getting my University to put this into next years budget. Now I am telling them to take MATLAB out and replace it with Maple. I will find other ways to handle the complexity of my project without FAKELAB. So I am kicking these Frauds out of our Univesity. They talk about how much they support Univerisity projects and when it comes down to the wire, they back out. FRAUD's that is what these companies are, just plain FRAUD's. I have over 49 companies supporting my project and all MathWorks and Cybernet Systems want is CASH in the bank. So this should teach these people a good leason or two.

  109. industry and jobs by cahiha · · Score: 1

    2. I have never met anybody that programmed in {Scientific,Numeric,Monty} Python, from which we can conclude that they were not hired. People that keep their skills simple, like Matlab and C, usually get hired.

    Well, I think that tells us more about the company you work for (and it probably shows in your products as well). We generally do not hire someone who only knows Matlab and C, because it is pretty clear that something has gone seriously wrong with their education. Their school didn't bother to teach them well, and they additionally lacked curiosity or confidence to learn anything else on their own. Put another way, Matlab is so trivial that it makes no difference whether it is on a resume or not: it doesn't demonstrate any useful skill or ability that someone who doesn't know it couldn't acquire rapidly.

    3. You have not left the university yet, how would you want to be re-using your code already? I did, and I don't want to re-use my code anyway. It want it to be re-used at the university, while I make other nifty projects at my company.

    That's an unwarranted assumption; in fact, I work in industry. That's exactly why it bothers me that some universities (in particular, engineering departments) turn out students who only know Matlab and C, because such graduates are useless for us, even for jobs that are not primarily software development. In my experience, such graduates are unable to understand modern algorithms, to apply modern mathematical abstractions to engineering problems, or even to communicate effectively with software engineers.

    1. PhD students do not live in the real world, and therefore do not know what software costs in the real world.

    And that's why their professors should make them aware early on because once they get their degree, they have to deal with that.

  110. Re:contests... octave.. by Anonymous Coward · · Score: 0
    Another GPL symbolic math package is Mathomatic .

    It's no match for Matlab's symbolic math of course.

    I'd agree Octave is a long way behind Matlab in terms of the number of fully implemented, working features.

  111. Re:contests... octave.. by samhalliday · · Score: 1
    For production-quality industrial numerical work, you have to write it yourself

    yeah yeah of course you'd have to do that if you want to integrate it. but i bet they came to the algorithm/solution hundreds of times faster by using matlab ;-) (playing around/prototyping as you call it)

  112. Which Octave are you talking about? by Anonymous Coward · · Score: 0

    Seriously, on the download page of the octave project there are three versions: An ancient one 2.0.17, a testing one 2.1.71 ("recommended"), a developing one 2.9.3. It's unclear how they differ, where they are documented, what the state of compatibility is. And seemingly, they all use gnuplot for visualization. gnuplot is nice, but really no substitude for matlab.

    Sure, matlab is a crappy piece of software where you are constantly forced to choose between elegant code and speed (you can't have both). The user interface is probably the worst I've used so far. Oh, and did I mention that the latest version runs horribly unstable under Linux? Really bad software. And expensive...

    But I still don't see an alternative: Matlab's libraries (toolboxes) and visualization are quite good, documented, etc. I don't see anything comparable in the free software world, unfortunately.

  113. Re:contests... octave.. by Anonymous Coward · · Score: 0

    Yes, due to the lack of that, Ares allowed me to use it for free when I needed it for a class. (I didn't use it after that, because frankly I didn't like it very much)

    Also, I noticed the professor's "license number" on her version of Matlab was "0". Seems it's not just me.

  114. Re:Down with MATLAB by Anonymous Coward · · Score: 0

    Do take a long serious look at GNU Octave, which was mentioned at several places in this threads. It is a most excellent Matlab-clone.

    While it is true it lacks some of the GUI features from Matlab, all of the core math functions are there and much of the standard toolboxes. What I like best about it is that it is so easy to extend in C. That is the best improvement over Matlab, imho.

    I think Matlab has some syntactical niceties when doing numerical grunt work.