Foto av Björn Beskow

Polyglot Programming

// Björn Beskow

Inget verktyg passar för allt, och en skicklig snickare har därför en rik uppsättning verktyg i sin låda. .Net-plattformen har tagit fasta på detta sedan start, och erbjuder en mångfald olika programmeringsspråk för CLR (.Net-världens virtuella maskin). Nu börjar även Java-världen haka på trenden. Groovy och JRuby är eleganta, dynamiskt typade språk med hög upplevd produktivitet. Inne på funktionell programmering? Jaskell är en rättfram implementation av ett av mina favorit-språk, Haskell, på Java-plattformen.

Java däremot får allt fler belackare. Det har drygt 10 år på nacken, och många (t.ex. Bruce Tate i Beyond Java) rackar ner på det faktum att det är pratigt, oelegant och lider av plågsam bakåt-kompatibilitet med flera av de tidiga, omogna APIerna. Samtidigt är Java som plattform robustare, potentare och mer heltäckande än aldrig förr.

Java is dead, long live Java! utbrister Neal Ford (arktitekt på ThoughWorks och aktuell som talare på The Serverside Symposioum i Barcelona i nästa månad) och kallar detta ny-gamla fenomen för Polyglot Programming. Tiden med Java som ända tänkbara programmeringsspråk är förbi. Vi lär få se fler små, dedicerade programmeringsspråk, alltmer domän-specifika, ämnade för att lösa specifika uppgifter. Men som alla har Java-plattformen som målmiljö och därmed rockar ihop.

Nya möjligheter, och nya utmaningar. Hur hanterar man underhåll och refactoring i en miljö utan stark typning (eller ens ett gemensamt typsystem). Hur testar och felsöker man effektivt en lösning realiserad i flera implementations-språk? Idéer och praxis kring enhetstestning och test-driven utveckling lär behövs även i fortsättningen.

Läs mer om Polyglot Programming på Neal Fords Blog.

Kommentarer