Wednesday, June 25, 2008

A trip down memory lane: Pascal development

In the late 1970s, I used UCSD Pascal to develop what was the world's first commercial Go playing program ("Honinbo Warrior"). A nice language and tools. I just received a small grant to convert one of my LGPL Open Source projects (FastTag: a part of speech tagger for both English and for English + medical terms) from Java to Pascal.

Monday, June 23, 2008

Great tools: the Java advantage

Last February, I wrote a AI blog article on a very simple Ruby library to parse some relationship values returned by the Open Calais web service. I wanted the same functionality today in a Java program. I was surprised that the number of lines of code required was the same - strange since Ruby is a much more concise language than Java.

The trick was that I was able to point my NetBeans IDE at the WSDL file for the Open Calais web service, and the work of calling the web service was essentially done. The Java code for parsing what I wanted out of the returned result was a little longer than the Ruby code, so the two programs ended up being the same length.

Another example of a time saver for Java vs. dynamic languages like Ruby, Python, and Lisp: using a Java IDE (like NetBeans) to generate unit test stubs from any application class - not so good for test first development, but I don't do that: I like to make a first cut at implementing classes, then add unit tests. While the Domain Specific Language (DSL) Ruby on Rails does generate test stubs, they are not as complete or useful as what NetBeans generates for me.

Lastly, because Java is a statically typed language, Java IDEs still do a better job at refactoring, code completion, etc. than environments for dynamic languages although Emacs based Lisp development tools and the Ruby NetBeans tools are very good.

Friday, June 20, 2008

Good news: Microsoft to support ODF as default Word file format

I am going to wait a while, and if their support is good I will probably upgrade to the newest version of Mac Word.

I have written 2 of my last 3 books using OpenOffice.org, not Word, but Word is a slick product and if I feel very comfortable that my Word ODF documents are readable by all of the word processors that already support ODF, then Microsoft gets another sale - this all depends on their sticking to the ODF standard and not messing with it.

I recommended in a blog a few years ago that Microsoft both support ODF and stop releasing new version names of Windows and instead sell a yearly subscription for updates - let's see if they take my advice on that :-)

Thursday, June 12, 2008

PLT Scheme v4.0 is released

The PLT Scheme system has always been impressive and now it looks even better. It supports R6RS and many improvements to the documentation. If you have used PLT Scheme (DrScheme) before, it is a good idea to at least read through the Welcome to PLT Scheme Introduction to pick up the changes.

Sunday, June 01, 2008

Ruby on Rails 2.1 and the MagLev Ruby virtual machine

First, 2.1 looks like a great update: I have not seen any compatibility problems with 2.0 that could not be instantly fixed. The named_scope (has_finder) changes look good for organizing database queries, and I especially like the way they nest. I have not tried using the new gems dependency functionality yet but this looks very useful when deploying applications to fresh servers.

The news about the large performance boost using MagLev looks interesting, but I will reserve my enthusiasm until the project is further along and I can try running it myself. I find myself reverting from coding in Ruby back to Common Lisp or Java to get around performance issues, so a much faster Ruby runtime environment sounds good. Ruby is such a slow language, that there is plenty of room for improvement.