Java 5 catches up with C#

Created by Stuart Yeates (University of Oxford) on December 02, 2005

I have just returned from Java 5 catches up with C# by Barry Cornelius, a talk he gave here at the RTS. I've got to admit that while Barry is right, Java 5 is catching up with C# in the sheer number of features, I seem to disagree with him on whether this is a good thing.

There are, generally speaking, two ways of designing a computer programming language. The first is to take an underlying metaphor and build a language around it, adding the bear minimum number of features to it to be able to achieve everything you want to achieve. This approach is usually based on the work of very small teams and results in small, fast and efficient languages that every user needs to be re-trained to use, because none of their old ways of working can be directly adapted. The second way of designing a computer programming language is to take a list of features that might be required and build a language around them. This approach is usually based on committee or consensus decision making and results if large, slow, complex languages which anyone can use, because it supports their existing ways of working.

In short, I'm a fan of languages built using the former method (C, Scheme, RISC assembler, Modula-2, Java 0.1, etc) and Barry appears to be a fan of languages built using the latter model (C++, LISP, C#, Java 5, Ada, etc).

But don't let that put you off the paper if you're interested in in Java and C#, because at the end of the day it's a question of taste.