Programming is a Science, an Art – or really a craft as I realized over the years –, but certainly not engineering. At least not as structural, mechanical or electrical engineering. So how can one improve and excel in this craft? By practicing, practicing, again and again. But programming requires a language. In the same way as writing anything, one needs to pick a language, native or foreign. I see computer languages the same way as our human languages. They are well suited to describe the world so we can think about it and act upon it. As I already mentioned, today’s youth is not helped in learning programming with all our mature computers and their rich environments. But three decades or so ago, It was a very different story.

The only thing you could do with a computer was programming. And so we discovered over the years and the systems we had the chance to own or access to, the various ways of putting these machines at work: machine language, Assembler, BASIC, FORTRAN, C, PASCAL, FORTH, LISP, etc. Often, these languages were available on mainframes or more exotic electronics. But did you know – and here really come this week’s topic – that you could program in more than just BASIC or ML with a pocket computer? Imagine you could learn, practice, and practice again to drive your pocket computer in C or PASCAL. Yes, it was possible! In fact, I even have a CASIO pocket computer (the AI-1000) that talks common LISP out of the box! And you could snap-in a cartridge to make it talk C! The cool feature of the TI-74 I was announced last week – and yes, it has been successfully revived –, is the PASCAL module. I will not come back on the computer itself (since it is essentially a smaller CC-40) but focus a bit on the Learn PASCAL cartridge (1985). Snap it in, type run “pascal”, et voila, you can learn and use Niklaus Wirth’s language. With 110 keywords, TI’s PASCAL is somewhere between the standard and the UCSD Pascal. Unfortunately, as with many of these non-BASIC environments for pocket computers, you still had to use line numbers as with BASIC. This always upsets me, but I guess you have to live with it. CASIO had a C implementation that actually didn’t use line numbers. Bravo!