Monday, December 17, 2007

Eclipse, Python & SAGE

Several fair comments on from my previous post on using Eclipse/Python so I think I should elaborate on what I see as problematic with Sage. Bearing in mind that I have used Matlab primarily and I am looking for a reasonably priced math program for non-technical users.

Lets first consider what Matlab and its ilk are. They are IDEs for development mathematical-based programs. Most include interactive UI for doing simple calculations. They also provide a large collection of common numerical computations that the user can string together into a larger program for completing analysis of information. So in all there are three elements: an IDE, a math engine and an interactive environment.

Sage is not a very good IDE (actually, I'll re-state that, it doesn't have an IDE). It strikes me as a good program for doing math but it really falls down without an IDE. Given how iuseful IDEs are for writing programs, this is surprising. Particularly when the program is pushed as an open-source replacement for Matlab et al., which do have useful IDEs.

One commentator asked what I found problematic. Well, you know the first one, No IDE. The second was after downloading SAGE, I found I then had to down VMWare, which I could only get after jumping through hoops at VMWare (not particularly happy about that). Third, the notebook interactive UI in the browser is a neat idea but ultimately, it left me underwhelmed.

Now I freely admit part of the problem was that I was expecting an IDE, with an interactive mode and a wonderful math engine. Unfortunately, that was not what I got but that was how it was marketed specifically "a viable open source alternative to Magma, Maple, Mathematica, and MATLAB". It is not an alternative to those programs while it lacks an IDE. The reason people use Matlab is it is easy to use. I really think this is a case of failing to see the forest for the trees. Matlab et al provide more than simply a math engine.

My suggestion to the SAGE team is to ditch the current UI method and use Eclipse. Build a wonderful math engine that uses the Eclipse to provide both a wonderful IDE and an interactive UI. The advantage for the SAGE team is they get to focus on creating an excellent math engine that is open source, while leveraging the work of other teams making Eclipse the best IDE around. Isn't that one of the key advantages of Open Source?

Short term, make it easy or at least write a very good explanation of how to call the SAGE engine from Eclipse.

Granted, I may not understand what SAGE is for, but when presented with marketing "viable open source alternative to Magma, Maple, Mathematica, and MATLAB" I certainly expect something that matches Matlab, if not exceeds it. SAGE does not achieve this.

Tags: Matlab, Mathematica, Eclipse IDE, Open Source, Sage Math, Python


dom said...

Yes, it did really peeve me to find out Sage doesn't have a stupid IDE. I think might give up on it. Maybe

Sam said...

I don't disagree with your sentiment (that a proper IDE is needed to compete with Matlab), however the SAGE notebook interface is designed to compete with Mathematica, which has a very similar notebook interface.

Simon Cast said...

I've used both Mathematica and Matlab and always felt that Matlab was more practical for scientific and engineering math problems. That was the direction I was approaching it.