I’ve written code in a number of different languages. The ones which I would say that I was or still am fluent in, in the sense of having written significant programs in them, are, approximately in order: Basic, FORTRAN, Cobol, Forth, APL, PL/1, Pascal, T, C, Common Lisp, Id, Scheme, sh, Tcl, C++. I’ve dabbled in other popular languages of today, like Perl, Python, and Java, but I’ve never written significant programs in them. I’ve ommitted various assembler languages from the list.

Of these languages, one stands out for ease of programming: Scheme (and T, which is basically the same language with additional bells and whistles). In Scheme, I can write programs the way I think about them. There is no complicated mapping from my ideas into the ideas expressible in the language. There are no syntax errors or concerns about data representation. The language is extremely powerful, thanks to the use of lexical closures and call-with-current-continuation.

Unfortunately, even with the very clever compilation techniques which have been developed over the years, code written in Scheme does not run as fast as code written in C/C++. So I don’t use it.

Some people seem to think that it is hard to program in Scheme or in Lisp like languages in general. I’ve never understood this position. I think that anybody comfortable with recursion, which I hope includes all professional programmers, can program in Scheme. But perhaps some programmers do have a non-Scheme way of thinking. I wonder what that would be like.

You must be logged in to post a comment.