27 Feb 2017 16:30

I've been programming since I was about ten --- that was on a delapidated TRS-80 Model I, with 16k RAM, which someone had donated to my school. It had no storage device (or maybe we just didn't have any disks?), so we wrote BASIC programs that could fit into our own memory. I remember being very proud to get it to plot quadratic functions.

I can handle BASIC. I've acquired some skill at Fortran, at any rate Fortran 90. (Heck, I wrote a genetic algorithm in it once.) I fell in love with LISP when I took freshman CS at Cal. I've even worked in assembly on, may the gods have mercy, a Commodore 64. But.

I'm learning C. I have delayed doing so as long as possible; now I have to deal with a simulation program which will only save its results in Windows bitmap graphics files. As initiation rites go, I think I'd prefer tattooing without anæsthesia. Malloc is evil. So is the distinction between "=", which is the assignment operator, and "==", which is the equality operator, said distinction having just cost me an evening. I have no words to express my feelings about things like "%=". C is, quite literally, taking over my mind: I very distinctly remember a dream last week which was about cooking but in C. [10 March 1996; the dreams went away.]

I've actually developed a great deal of affection for C (doubtless this is what the psychologists call "effort justification," also known as the sunk cost fallacy), and for instance now do all my numerical coding in it. I am however having to learn C++, which is such a silly instance of object orientation that I almost believe the joke about how it was invented to keep programmers in business indefinitely. On the other hand, I've also been learning Perl and Expect, and they are pure delights; in both cases I was writing useful programs within an hour of opening the manual. Expect in particular is wonderful for making Unix do things for you, and for hiding a physicist's idea of a user interface. --- Probably not the least reason for my affection for C is having to write control code for a fairly complicated and undocumented piece of hardware in Forth... [24 June 1998]

Learning a little Java was instructive. Now Jean-Baptiste Rouquier, who's my student for the summer, has persuaded me that I need to learn Caml. Unfortunately, there's no O'Reilly Caml in a Nutshell handbook (perhaps because it'd cause too much confusion with Programming Perl), just the 400-page manual. [2 July 2004]

See also: Computers; Abstract Computation; Math I Ought to Learn; Parallel and Distributed Programming; Christopher Alexander; Computational Statistics