Mobiloperativet Android har rönt mycket uppmärksamhet på senare tid. Inte minst efter att Google, företaget bakom Android, nyligen lanserade en egen telefon.

En av fördelarna som ofta förs fram med Android är att det populära språket Java används för utveckling. Det gör att tröskeln för att komma i gång är låg för många utvecklare, eftersom de redan kan språket. Och att det dessutom finns gott om färdiga komponenter som kan användas.

Men det är en sanning med modifikation, för Google använder en specialvariant av Java på Android, som inte är helt kompatibel med standard-Java.

Källkod skriven i Java för Android översätts till ett annat mellanformat, så kallad bytekod, än i den officiella Javastandarden. Och det program som kör applikationer, en så kallad virtuell Javamaskin, är inte av den vanliga typen som specificeras i den officiella standarden. På Android används i stället en virtuell Javamaskin som heter Dalvik.

Det här kan få stora konsekvenser för Java.

– Det finns helt klart en risk för fragmentisering av Java, säger Michael Lundkvist, teknikchef på utvecklingsföretaget Goldengekko.

Rent praktiskt innebär det här att Androidutvecklare får svårare att använda färdiga Javakomponenter

– Dalvik kör inte vanlig Java bytekod, säger Ola Bini, konsult på Thoughtworks.

Om en Androidprogrammerare vill använda färdiga Javakomponenter måste han, eller hon, antingen ha tillgång till källkoden för dem och kompilera om dem för Dalvik eller konvertera de kompilerade programmen.

I dagsläget är det Javaspråk som används på Android det samma som standard-Java. Men att Google gör avsteg från en så etablerad standard som den officiella Javastandarden väcker farhågor om att det kan komma fler speciallösningar i framtiden. Ännu mer tekniska skillnader skulle med all sannolikhet försvaga Javamiljöns ställning.

– Ett Google-Java skulle vara ett misstag, kommenterar Michael Lundkvist.

Varför har Google valt en Javavariant som inte följer den officiella standarden? En anledning är att Dalvik lämpar sig bättre för resurssnåla miljöer än standard-Java. Man kan också misstänka att Google vill undvika att betala avgifter till Sun, företaget som äger Java. Men den teorin bestrids av Thorbiörn Fritzon, Javaarkitekt på Sun i Sverige.

– De behöver inte betala för att använda standard-Java. Det som kostar är att använda Javaloggan och att köra våra tester.

CS har sökt Google för en kommentar.

Fakta

När Javaprogram skapas kompileras, översätts, de till ett mellanformat som kallas bytekod. Bytekoden körs sedan av ett program som kallas för virtuell Javamaskin.