Satt idag och pratade med interaktionsmänniskor som tittat på Microsoft Surface och vi gled osökt in på diskussioner kring plattformar och språk. En vän visade några av de basala sakerna i C# – ett språk jag ännu inte kollat något närmare på, och jämförde med vad Java erbjuder. Sprang även på en ganska grundläggande jämförelse mellan just dessa språk (skriven av Dare Obasanjo). Den är från 2001, dvs har snart åtta år på nacken, men den uppdaterade sammanfattningen från 2007 – som nu snart är två år gammal – avslutar med följande om framtiden:

In combination with some of C#’s existing features like anonymous methods and nullable types, the differences between C# and Java will become more stark over the next few years in contrast to the feature convergence that has been happening over the past few years.

Är det detta vi har sett, eller har börjat se? Min bild just nu är att Java som språk stagnerar (eller iaf inte utvecklas så snabbt som många skulle vilja) till stor del pga att Sun lägger krafterna på JavaFX, men att man samtidigt ser till att öppna JVM:en till att stödja en större mängd språk – dynamiska (invokevirtual). Det senare vet jag att man jobbar (eller jobbat) med i dotnet-plattformen också, men skall ärligt säga att jag har rätt dålig koll på vad som händer där framöver. Microsofts öppenkällkodsstrategi som skall presenteras i år kanske lanserar en .NCP – dotNet Community Process?

Learn at Least One New Language Every Year! (The Pragmatic Programmer)

Hur ser du på att det går att köra fler språk på JVM:en? Hur ska man tolka att Sun lägger krut på det (om man skall nu skall tolka alls)? Är det för att kompensera för Javas tillkortakommanden, eller är det ”bara för att det går”? Eller vill man förenkla steget in till Javavärlden genom att flörta med folk från andra språk/miljöer? Svaret kanske ligger just i varför man inte skapat en C#-kompilator till java-bytekod.