just a draft at present
In 1986, the young Grace Frické arrived and so did an Apple Macintosh Plus. A few week-ends later there were the butterflies of Deriver and SoftOption, there you have it.
I learned my logic initially from Geoffrey Keene and Dan O'Connor at the University of Exeter. Then more was learned from Moshé Machover, Chelsea College, and John Bell, of the London School of Economics. My formal education in Computer Science is courtesy of the University of Otago in New Zealand (that learning is a bit out of date now, or at least it is missing some of the modern chunks of material, for example, on networks (I should sit in on a few formal courses here in the US)).
The programming systems that have been used are many and varied. I started with Lightspeed Pascal (a masterpiece), through THINK Pascal, THINK C, THINK C++. Pascal, Object Pascal, C, and C++ were all used. Somewhere in there was considerable work with Code Warrior (in fact, at one stage Code Warrior rescued the Mac for developers). I also used Apple's own developer products MPW and nowadays Project Builder and the like. They never really suited me, although I quite liked programming the NeXT computer and its developer tools are integrated with the present Apple products (I should have another look). I converted to Java in about 2002. In those early days the program ran off a floppy disk, then over a network, and now it is provided over the Internet. The artificial intelligence content was written in LISP, often Allegro Common Lisp. But I prefer Scheme semantics for LISP. So, I wrote my own LISP which I now use (I don't need all the bells and whistles of a commercial quality LISP). Many of the running versions of Deriver have LISP built in. I have used Mathematica from time to time. I would use it all the time— it is way in advance, conceptually and practically, of anything else I use— but it is too expensive. I have bought 3 fully paid for copies of Mathematica, since the early 1990s. But I am baulking now. The last time I looked, the computer I was using, an eMac (including its system software etc.) cost not a lot more than $600, and a single (hands tied behind your back) copy and licence for Mathematica cost $1000+. I simply cannot spend twice as much on a single copy of Mathematica as on my whole computer. So, Stephen Wolfram, if you read this, why don't you give me a copy or give some copies to the world at large? We are trying to advance knowledge here, or to help others to do so. There's no denying how brilliant Mathematica is. But its licensing and commercial marketing is a disgrace. Most all the other systems I use are free, principally Eclipse as the programming environment. I have used Borland's JBuilder, which is great. But JBuilder has merged itself into Eclipse these days.
[Update 2017, I has now bought 5 copies of Mathematica.]
The early interface layer was a straight use of the Macintosh Toolbox, then we went to MacApp, to AWT, with Java, and now to Swing. I am experimenting right now with Google's Web Toolkit. I am looking to provide a so-called Rich Internet Application (RIA). The present programs are written in Java and thus can run on the Java Virtual Machine which is installed on almost all computers (maybe 90%)— so they are cross platform and cross web-browser. Even the machines, or browsers, that do not at present run Java can download pieces to make it possible (although that requires some skill on the part of the User ie not your grannie). Probably people that can do or want to do symbolic logic will be able to set their machines up properly. Then there are java applets, which run 'automatically' in web pages. These are good for most purposes. If someone wanted to write notes, they could write web pages that included applets and they would be in pretty good shape. What the applets cannot do is to save the work. So, if a student wanted to keep a portfolio of their work, including many half finished derivations, which they regularly wanted to go back and update, applets would be no good. Applets are also not the best for printing (although it is possible). There are also not the best for dealing with exams etc. (although I do exactly that and there are examples of that here). And there are java applications, which are stand alone versions of the applets (not requiring a browser), which can save, print etc. But Java is in a little bit of a funny position at the moment. There are other systems (Flex, Air, Silverlight) which produce web applications which may be quicker and more responsive than java. There are also new versions of java coming, including JavaFX, and even the present java does a lot a stuff that Flex etc simply cannot do (maybe multithreading (which is used in my applets)). There are also starting to be devices that are ignoring java completely (eg I am starting to develop for the iPhone and that does not have java— Steve Jobs has said, we don't need no stinking java). However, Google's Web Toolkit has a cross compiler that outputs javascript from java (and javascript will run with any browser and the iPhone and Google's Android phone will presumably). So java is important to Google, and Google is a big player. This is my lifeline: Google loves java, Google wants RIAs, whatever they do, I'll follow. There are also cross compilers that will compile java virtual machine code to other things (see Google/ You tube). One can also set up a server that serves html to simulate a java applet (I haven't tried this yet, and there would be license fees if there were lots of users). So, at the moment, we don't really know where all this is going to go. Of course, it is a complete pain that java itself just does not run anytime, anywhere, on any machine, But you have to play the cards you are dealt.
[Update April 2013. Most of the running software on the site is now javascript (and java applets are rapidly running out the door). These javascript Widgets have been produced by Google Web Toolkit, and I am now working with Vaadin (cf. 'Book of Vaadin', and Vaadin is now looking after Google Web Toolkit).
Update Xmas 2013. NetBeans is now the IDE of choice and javascript is right to the fore. The back end code here is sufficiently complex as to be a disincentive to the use of javascript for it, so that may continue to be cross compiled, but html5/css/javascript is suitable for direct use for the presentation layer. And that route should provide easy access to 'apps', phones, tablets, etc. possibly via PhoneGap or similar (apparently NetBeans can do Cordova directly).]
This is a portrait of me programming.
The website/CMS is drupal 6, an open source php/mySQL content management system. In 2006, I wrote, or configured and supplemented, an ePortfolio system for about 400 Users in drupal 4, then in drupal 5; so that got me going. But this is drupal 6. It has a few tweaks. But, overall, one has to be impressed by what the open source movement can provide. [I will pay my dues at some point.]
[Update April 2012—the site is now Drupal 7.]
[Update June 2017—the site is now Drupal 8.]
[Update May 2017. Eclipse, in conjunction with a GWT plug-in, was used for writing the Combinatory Logic widget.]