Linked by David Adams on Fri 18th Jun 2010 19:17 UTC
Linux Linux Magazine has a profile of Daniel Fore and the Elementary project. Elementary is a Linux distro that's committed to a clean and simple user experience, but it's more than a distro - it's actually a multi-pronged effort to make improvements to the user experience for a whole ecosystem of components, including icons, a GTK theme, Midori improvements, Nautilus, and even Firefox. The work that elementary is doing isn't limited to their own distro, and some of their work is available in current, and perhaps future, Ubuntu releases. The results are really striking, and I think it's probably the handsomest Linux UI I've ever seen.
Permalink for comment 430874
To read all comments associated with this story, please click here.
RE[7]: rip-off Mac OS X!
by Neolander on Mon 21st Jun 2010 09:58 UTC in reply to "RE[6]: rip-off Mac OS X!"
Member since:

Why do you separate calculation and GUI? That sounds awfully complicated to me, suddenly you have to learn 2 languages + the glue between them.

Because mathematics have a grammar and user needs that are different from GP computer programming language. In mathematics, an undefined symbol is a parameter.
In a GP programming language, which all toolkits are based on, an undefined symbol is an error.

In mathematics, almost everything is expressed in terms of command line.
GUI programming, on the other hand, can only be made a fun task provided you've got the right tools.

Software which do their maths correctly already weight several GBs and eat up considerable power.
Adding up GUI to them is only slowing them down even further, while for most people their performance is already unsatisfactory.

In my opinion, adding up GUI functions to a scientific calculation software is adding up a huge bloat and making the language or its interpreter (your choice) more complicated, for a benefit that's pretty small because 99% of time you'll be using it to do calculations, and for most people it is 100%. It's not optimizing the common case, it's adding up features for the sake of adding up features. Just like when Microsoft manages to eat up twice the HDD space in a new release of Windows while the user experience is left unchanged for most people.

It seems to me you want symbolic math manipulation not really scientific computing. So something like Mathematica or Sage on the Python side would be more suited to your needs.

Everything which does calculations must handle symbolic expressions to a certain degree.
When you type Plot(3*x, x=0..5) or whatever in a numeric calculation software, you've entered the 3*x symbolic expression. What makes a symbolic math manipulation software different is the way it allows to act on those symbolic expressions, to apply transformations to it (expand, simplify, factor, and so on). But all software which pretends to be able to do some maths (and Matlab fits in this category) should be able to parse and store a symbolic expression in a variable.

When you tell to matlab s=tf[1,0], a kind of symbolic expression is effectively stored in s. So why separate transfer functions from other rational functions ?

Actually, that was my point the content is very often HTML, they just write a specific help browser for the html pages

It depends on the level of professionalism which the documentation team have ^^ The guys who wrote the help systems for Maple and Mathematica took the time to write it in Maple/Mathematica, which allows the user to dynamically change parameters in the example and see the result. Though this is a small feature which shouldn't get much attention, it gives a pretty nice feeling when it is present. It looks like the people actually fully wrote an online help suited for online help purposes, instead of just putting an electronic version of the paper manual in the software bundle.

Agreed a specific documentation search at would be great. I disagree however that a webbrowser is the wrong tool, if the HTML pages are well structured and written a browser is just as good a specific help system.

I agree. If the guys take the time to make a good webpage, they can reach the functionality of a good help system. However, I'm not sure that it is doable without using some kind of PHP/MySQL programming and hence requiring an external server (professional software should be independent from any form of internet connection). And it will still feel unprofessional because you'll get several things which have nothing to do with help around : web bookmarks, private browsing...

I can't comment on Mathematica and Maple, but they do provide a rather extensive help, which describes all options etc. There's also the short help which provides you with a short usage string if you use ipython ?

Kind of like UNIX man pages, or something more colorful and mouse-friendly ?

Agreed but in my experience that's not really that much better in matlabs system either, e.g. the last I recall was searching for writing to a text file in an arbitrary format. If I hadn't known fprintf from C I don't think I'd ever found out using the Matlab help system.

Well, I'm pretty sure that something like the "writing text file" keywords could have done wonders, but I don't have Matlab set up on this computer so I can't test it...

Well I can only repeat what I've said above, you really want a symbolic math manipulation, that cannot be provided by a programming language like python and matlab alone. I'd argue that this is another use case entirely, and although there are some packages for python and I think matlab as well. They will never perform as well as a language specifically build for that purpose. However if you want to to numeric simulations (like I do), that often does not fit into systems like Mathematica and I find using a proper language like Python is a lot more comfortable for me than using matlab.

Well, for numeric simulations I either use Mathematica's NDsolve-like tools when I'm lazy (they work quite well if you take the time to set them up when the simulation is nontrivial) or C++ code when I want to fine-tune everything. I suppose that Python would fit the second use case quite well if you need some higher-level stuff or want to code quick and don't mind the performance hit (which can be big on numerical simulations, that's the reason why I learned C after playing with Python for some time). But it just lacks the "lazy" aspect of other scientific software which takes equations and various settings as input and returns results as output.

Edited 2010-06-21 10:00 UTC

Reply Parent Score: 2