This is an update to “Shut up and calculate!” (which was posted here three weeks ago, 2008-08-12).
Many thanks to the readers who have suggested programming languages or environments for inquisitive computing. There are a dozen or so recommendations in the comments to the earlier post, and I’ve received even more by private correspondence. Here is a summary of the suggestions, in no particular order. (Numbers in parentheses indicate the number of times each system was mentioned.)
- R (2). The open-source version of the S language for statistics. (Also accessible through Sage.)
- Sage (1). Open-source mathematical software.
- Haskell (2). Lazy functional programming language.
- Python (2). Scripting and programming language.
- MATLAB (2) and Mathematica (1). $$$ mathematical software.
- Programmable calculators (3). The specific machines mentioned were the HP-15C, the TI-83 and the TI-V200.
- Yorick (1). An open-source scripting language that emphasizes scientific computation.
- Octave (2). Open-source mathematics software similar to MATLAB.
- SuperCollider (1). Language for audio and music synthesis.
- Fathom and Tinkerplots (1). Data-analysis and graphics software from Key Curriculum Press.
- DERIVE (1).Successor to muMath; now discontinued.
- Excel and other spreadsheets (2).
- APL (1), C (1), Forth (2), Fortran (2). Old favorites.
- UBASIC (1). BASIC with bignums and rationals; last release seems to be 1998; MS-DOS only.
- Scala (1). Recent open-source language that uses Java runtime facilities or .NET.
- “Roll your own” (2). Two readers politely suggested that if I think I know how a programming environment ought to work, then I ought to build one myself.
I’m impressed and surprised by the wide spectrum of responses. It’s not just that there were so many different answers but also that they come from some very distant corners of the computing universe. Several of the systems mentioned are new to me, and I plan to give them a look.
From all of the above it appears that we have some happy campers out there—people who have found programming tools that suit their needs. Others share at least some aspects of my discontent. But given the vastly differing preferences expressed here, it seems unlikely that any one solution could please everyone.