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.
Thread beginning with comment 430843
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[6]: rip-off Mac OS X!
by cycoj on Sun 20th Jun 2010 21:40 UTC in reply to "RE[5]: rip-off Mac OS X!"
cycoj
Member since:
2007-11-04

"I don't quite understand that sentence, do you mean you use Matlab, because it is not quite as awful as
Maple and Mathematica and on par with Python?

No, I chose Matlab because its syntax is on par with Python in terms of awfulness in my opinion. Python is a good programming language for prototyping and low-performance software, and insane people can even use it for other use cases and get cursed by their users. Just like C#, ActionScript, and Java. But its syntax is just inadapted to scientific calculation. You can use it for that, but it is painful. Matlab has an incredibly crappy syntax which manages to be on par with that of Python in terms of inadaptation, even though it is theoretically suited for the job.

I have to disagree, Matlab syntax is pretty awful compared to Python. I actually switched to Python because Matlab syntax was annoying the crap out of me. 90% of errors are find the missing dot. Also I guess you never had to write a GUI for your Matlab code. Python is so far ahead of Matlab in that respect (Matlab GUI code makes my eyes bleed).

You're preaching a convinced people, though for me GUI programming and calculation should be left to separate languages. I HATE Matlab's syntax. Every time I have to use it, I try my best to remember the commands used to launch the GUI tools and never, ever, use its command line, except when being forced to do so.
"
Why do you separate calculation and GUI? That sounds awfully complicated to me, suddenly you have to learn 2 languages + the glue between them.


Seriously, should any sane people have to use tf([1],[1,1]) or some other trick like s = tf([1, 0]) in order to input 1/(1+s) ? I don't care if transfer functions are treated separately by the software, for me it is just a rational function and should be treated as such.


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.

"Why are HTML pages unprofessional? That's what pretty much every software manufacturer uses for the help pages AFAIK.

No, they aren't that widespread, except maybe for the content.
"
Actually, that was my point the content is very often HTML, they just write a specific help browser for the html pages

People often use Windows' CHM or some in-house solution, be it only for one good reason : searching. In a good help system like that of Maple, Mathematica, and Matlab, you search for keywords like "polynomial", "linear algebra" or "inequation plot", and you get all the related functions, sorted by relevance order if the guys took some time to polish it. In HTML help, you get a web browser, a tool made for something else which doesn't provide indexed search facilities, and you have to use full-text search in the index, which requires you to know the exact name of the command or the category it's put in, and parse through loads of irrelevant answers.

Agreed a specific documentation search at docs.scipy.org 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.


"Also I actually never use the HTML pages or the Matlab help system. I just type "help command"
in the prompt (I do the same in Matlab whenever I have to use it).

1/Is python able to provide in such a case an extensive help page describing command use, options, and examples with results, with links to related topics, in a non-cluttered way like that of Mathematica and Maple ? (the "click-to-expand" way)
"
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 ?<command>


2/Again, this only fits one use case of the help system, namely checking syntax of an already known command. Command discovery is not poor with this help system.

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.


"Another thing, if I compare the documentation of the Matlab language (not the commands) to the documentation of the Python language, the Python documentation is way better.

I was talking about the help system shape and use cases, the contents are another thing ;) (And that Python's core syntax is better documented is logical, since it is that of a general-purpose programming language, more complex than a specialized one, and generally not teached in courses contrary to Matlab which is alas common).
"
Well especially if it is taught in courses I'd expect the syntax would be well documented.


"I don't quite get what you mean, something like
def fct(x, *args) ??

Mathematica :
a = 3*x
Result : 3x. Plot(a, {x,0,4}) will work.
Python :
a = 3*x
Result : Undefined symbol "x". Plot will not work.
Things like that make a general-purpose language a pain to use for everything that's mathematics-related.
"

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.

Reply Parent Score: 2

RE[7]: rip-off Mac OS X!
by Neolander on Mon 21st Jun 2010 09:58 in reply to "RE[6]: rip-off Mac OS X!"
Neolander Member since:
2010-03-08

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 docs.scipy.org 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