Documentation

Articles

What a Racket!

The other day I was listening to this podcast over at FLOSS weekly. It was an interview was with Matthew Flatt about the Racket language (formerly PLT Scheme). The language is a Lisp dialect which was primarily designed for teaching, and subsequently used as a research platform.

Anyway, the thing that is most interesting . . . → Read More: What a Racket!

What Motivates Us?

Here’s an interesting video that I just came across (adapted from Dan Pink’s talk at the RSA), which is currently doing the rounds: The video is about what motivates people to do things and, in particular, whether or not giving people more money means they do a better job.  Definitely worth a look … . . . → Read More: What Motivates Us?

The Future of Programming Languages

There’s an interesting panel discussion from the StrangeLoop2010 conference over on InfoQ:

http://www.infoq.com/presentations/Future-of-Programming-Languages

There panel covers quite a range of different topics, but there was one in particular that caught my eye:

“Assert statements don’t clutter up the code, they beautify it. They preserve the programmers intent, and anything that preserves the programmers intent . . . → Read More: The Future of Programming Languages

Better Namespaces

An interesting problem I’ve encountered many times in Java is that of conflicting names.  For example,  suppose I have the following code:

import wyil.lang.*; import wyil.lang.Type.*; … public static Type T_Bool = new Type.Bool();

This is all well and good.  The problem arises when I want to import another class called Type from some . . . → Read More: Better Namespaces

Java Pathfinder

Recently, Simon Doherty gave a short talk on using Java Pathfinder to find bugs in Java programs. Java Pathfinder is a model checker for Java code, particularly suited to reasoning about multi-threaded code and finding concurrency bugs. Roughly speaking, it searches through all of the different possible execution traces for a given piece of . . . → Read More: Java Pathfinder

James Bach on Software Testing

I’ve just been watching this YouTube presentation by James Bach:

James has a very tongue-in-cheek style, which I rather like, and he’s obviously not a great fan of the academic establishment:

“Testing is not part of Computer Science.  Computer Science likes to think that testing is part of Computer Science.  But, if you . . . → Read More: James Bach on Software Testing

The X10 Programming Language

X10 is an interesting and relatively new language from IBM being developed as part of DARPA’s High Productivity Computing Systems program.  X10 is designed for high-performance parallel programming using a partitioned global address space model.  To my mind, I see X10 as being a modern Fortran … but perhaps that’s a bit disingenuous.  Anyway, . . . → Read More: The X10 Programming Language

Infamous Software Failures in New Zealand

I’ve been writing a grant application recently, and wanted to list some example software failures that occurred in New Zealand.  Here’s what I found:

In 1997, a software error caused the the Tiwai Point aluminum smelter in Southland to shutdown at midnight on New Year’s Eve, causing more than $AU 1 million of damage. . . . → Read More: Infamous Software Failures in New Zealand

Language Designers … who wait?

Someone recently pointed me to the Rust programming language which has some very nice features, although it’s still in early stage development.  In particular, the system statically prevents null pointer errors, and does not permit dangling pointers.  The language FAQ also claims the “ability to define complex invariants that hold over data structures” … . . . → Read More: Language Designers … who wait?

On Object-Oriented Programming

There’s an interesting interview with Ralph Johnson and Joe Armstrong over at QCon.  They’re talking generally about whether OOP has been successful, and reflecting on the last few decades.

A few things from the interview caught my eye.  Ralph talks about a fundamental mistake made by the designers of SmallTalk.  In SmallTalk, you don’t . . . → Read More: On Object-Oriented Programming