Friday, March 6, 2009

Thank You! BlueJ and Greenfoot open up.

I just stumbled across this announcement about BlueJ and Greenfoot going open source. These are two applications used by many teachers of AP Computer Science classes. In the past they were always "free" as in free beer, but the source code was not available. Opening up their code can only help spread the use of these two wonderful programs.

Many times in the past I've contacted Ubuntu users in the Ubuntu forums for help on issues with BlueJ and Greenfoot. The response has always been a bit reserved--show us the code and maybe we can help. This change of policy will immediately build acceptance from a very talented group of developers and programmers.

Also, it's just plain fun to read the source code. Michael Kolling and John Rosenberg have written code with much better documentation than you will usually find. Here's just one example:

/**
* Java 1.4 & prior version of trinary "? :" operator. See JLS 2nd ed.
* section 15.25.
*
* @throws RecognitionException
* @throws SemanticException
*/
private JavaType questionOperator14(AST node) throws RecognitionException, SemanticException
{
AST trueAlt = node.getFirstChild().getNextSibling();
AST falseAlt = trueAlt.getNextSibling();
ExprValue trueAltEv = getExpressionType(trueAlt);
ExprValue falseAltEv = getExpressionType(falseAlt);
JavaType trueAltType = trueAltEv.getType();
JavaType falseAltType = falseAltEv.getType();

That was interesting. This comment here was also fun to find:

/**
* Find the Wireless Toolkit. In Windows we search all the filesystem roots.
* In other systems (Linux, that is) we search the directories in the
* initializer list of array 'roots' listed below.
*/

I've got a lot of reading to do, it seems.... :-)

No comments: