Wolfram and Hart
Remember the tv show Angel? In particular remember the company that was half-heartedly trying to kill him when they weren’t attempting to tempt or coerce him over to the side of evil? I didn’t pay much attention to them at first– after all, how stupid is the idea of a company of vampire lawyers?– until Fred got her soul eaten or whatever happened, and started working for them. By that time they had hardcore evil plots afoot and were consequently bitchin’ cool; unfortunately that was about the time the show started winding down. So it took me forever to pay proper attention to the name of the company: Wolf, Ram, and Hart. I always thought it was Wolfram and Hart; maybe if I had known the actual name from the start, with its occult significance I would have had more interest in the show. Anyhow, there is no point to this tangent except that I think I got the name confused because I was subconsciously thinking of Stephen Wolfram, the in some ways equally evil (ok, just evilly arrogant) founder of the company that makes Mathematica.
I’m thinking of Mathematica because I just got back from the library where I browsed through two impressive tomes from the four part Mathematica Guidebooks series by Michael Trott. I ended up checking them out and carting them back to my office so I can look through them at a more leisurely pace.
Although looking through the examples (particularly in the Numerics volume) convinces one that Mathematica is indeed an impressive ’system for doing mathematics by computer’, it also leaves a nagging sense that the syntax is too Perlishly obtuse. I mean, what with all the ‘@@’s and such. Then there’s the lack of any kind of guidelines for whitespace use that renders a lot of Mathematica code a pain to read. And the fact that commenting is such a pain that its easier to forego it as you write the code, and then never add it. A particularly big complaint on my part is the way Mathematica handles graphics: I haven’t fiddled with it much, because it requires so much effort and nested expressions with brackets and such just to make a simple line-drawing, but what I have done with it has left me with the impression that there must be a more elegant way of implementing programmable graphics.
Of course, one could answer my criticism of the language syntax in the same ways Perl monks answer the many critics of their rubbish lister language: there is more than one way to do it, and I can even see the benefits of such a nonorthogonal approach to the interface of a CAS, but does it have to look so messy? I will admit, however, that at least part of the problem here isn’t the syntax, but the way the frontend encourages lax coding styles– and a lot of this is due to the fact that the input isn’t monospaced.
Possibly relevant posts:
- Once more into the fray (6/18/2007)
- Graphical Programming (2/6/2003)
- R6RS ratified (9/16/2007)