Why Spend More than Five Minutes on a GUI?
blog.wolfram.com
blog.wolfram.com
Was the whole point at the end that we should just code everything in Mathematica, because it's a great language "in which you can write just about anything that can be written"?
And that interactive elements are bad? Cuz they're down the slippery slope?
I think he's using those nifty tree animations to distract people so much they're rendered incapable of reading. (Worked for me.)
And it's total linkbait.
But there's an interesting underlying point at the end about the tradeoff between high-level application-specific languages and powerful general purpose languages:
"I would have done that years ago, but there was no tool in existence that made it possible. 'Possible?' you say. 'Surely it’s possible in C code, or Java, or Visual Basic, or Squeak, or something.' Well, no, it’s not possible for me in C or any other such serious environment, because I’m busy and these are just fun little things. If it’s going to take hours or days to do, it’s not possible for me to do."
Also, Mathematica is damned cool, if I remember correctly from grad school days. So I don't mind if those guys are a bit prone to patting themselves on the back.
I wouldn't care if it there was a feeling of "meta" awareness of the back-patting.
Eating your own bullshit like it's tasty tasty chocolate, now that's a slippery slope you have to watch out for.
Getting high on your own supply -> believing your own hype -> eating your own bullshit == quick track to irrelevency.
Even if it gets you more fanboys.
Me, I hype myself, but I also make self-denigrating jokes and meta-references when I'm hyping. I apply my bullshit detector to myself. Example: http://tr.im/5bucks
You may say "Uhh, but you're just a person," but I'm a person with a readership of about 7500, and another thousand or two on a mailing list, and I'm working on a tongue-in-cheek "What sucks about freckle time tracking?" post for my company blog. Because there are parts of our product that really suck. And we know it.
Here's a reverse case study: 37Signals was a lot more reasonable 5 years ago. Their blog posts were more actionable, less hype, and more importantly, the products fit a need and evolved. They kept doing consulting to pay the bills, so they couldn't escape reality. Reality is good.
Cut forward 4 years, they launch Highrise, a product that was so "less" that it was practically "nothing" and not usable for anyone. It didn't have any features people required to actually manage their customer relationships. It was just an online addressbook with comments.
You couldn't even sort by people with the most recent comments. How could that help you manage anything?
And they had been talking it up for months, meaning that it wasn't an addressbook with comments that was developed in a weekend.
There's nothing wrong with their marketing and PR. The only issue is that they believed their own hype, and really embarrassed themselves with a totally useless product.
Now, a year later, it's a little bit better, but it's no Basecamp and no Backpack.
But my point is mostly that, despite the bullshit, Mathematica is radically more powerful for building user interfaces (up to a certain complexity) than anything I've seen. The self-hype hasn't exactly toned down over time either, so I'm less certain it's really the bad omen you make of it.
I'm also glad if what you say about the eating-own-bullshit is not a problem at Wolfram Research. (But, last I saw, Mathematica itself had a horrible interface, beyond the language itself.)
But, on the other hand, I must always strenuously object when someone talks about "building" user interfaces as if it's a matter of how easily one can plug widgets together.
Which is what this article is about.
Mathematica is really intended for general purpose exploration, and in that task, as well as many others, a 'hacked together' GUI made out of a few widgets is orders of magnitude more accessible than the raw code. It's not beautiful, necessarily, and it's not necessarily well-designed. It's not likely to replace the detailed, careful work of master designers.
But it does succeed at placing extraordinary power at one's fingertips. When the elements simply work together, and the data can be simply, easily, and quickly plugged into to a display function and a manipulate function in a line or two, it opens really exciting new possibilities.
But.
This is all well and good, unless you title linkbait "Why Spend More than Five Minutes on a GUI?".
It wasn't "Build a Nifty Mathematical Experimentation GUI in 5 Minutes in Mathematica," or even "Build a Nifty GUI in 5 Minutes in Mathematica," or "Explore Math! 5 Minute GUI," any of which would have been accurate and still interesting.
Instead, it appeals directly to the base (and incorrect) belief that so many developers have, that UI is an unimportant afterthought that can be dispensed with, if they only find the right combination of readymade widgets.
In 5 minutes!
Ugh.
Okay. My bad for the title. I just used the title of the article itself. It didn't occur to me that it would provoke, but I see that amply now.
I recently wrote a little utility[0] (under 200 lines) in Clojure to make a folder of images greyscale. Over half the code was GUI-related. The GUI consists of a single button that launches a file chooser, a text display of files processed / files to process and an error dialog that pops up in the event of an uncaught exception.
I know Swing isn't a shining example of concise code, but it's absurd that there should be so much bulk for such a simple thing.
It gets on my nerves a bit, too. However it doesn't detract much from the information. Once I sat down and started actually using Mathematica 7, my mind was totally blown.
Unfortunately, 99.999...% of us can't ever reach this point, due to the cost of mathematica.
edit: also, the price is $140 for the student version: http://store.wolfram.com/view/app/mathforstudents/
1. Or someone makes an ad-supported web2.0 social-network version of it :~).
Maybe a better question is whether Mathematica can pay for itself. An even better consideration for this site might be whether Mathematica could be useful at a startup.
That is why your interfaces suck!