I min presentation för JavaOne beskriver jag hur du kan skriva ett 3D spel pÄ mindre Àn 50 minuter. Detta har gjort att vissa höjt lite pÄ ögonbrynen och stÀllt sig tveksama till att det faktiskt gÄr att skriva det sÄ snabbt. Spelet som jag presenterar bestÄr av ungefÀr 1400 rader kod, varav ungefÀr 500 Àr automatgenererade getter/setters och dylikt. I princip sÄ har jag alltsÄ manuellt skrivit ungefÀr 900 rader Java-kod pÄ mindre Àn 50 minuter. Det betyder 22,5 rader per minut. Jag rÀknar med i genomsnitt ungefÀr 40 tecken per rad, vilket dÄ resulterar i att jag mÄste slÄ 720 slag pÄ tangentbordet varje minut i 50 minuter för att hinna med alltihop. Jag lÀste pÄ Wikipedia att den genomsnittlige datoranvÀndaren skriver mellan 50 och 70 ord per minut, dÀr varje ord Àr i genomsnitt 5 tecken lÄng, d.v.s. 350 tecken per minut som mest (vÀrldsrekordet ligger pÄ 150 ord-per-minut under 50 minuter, innehas av en Barbara Blackburn). Det Àr alltsÄ en bra bit frÄn de 720 tecken/minut som jag behöver uppnÄ. SÄ hur kan jag hÀvda att det Àr möjligt?
Beroende pĂ„ hur man ser pĂ„ det sĂ„ fuskar jag. Jag anvĂ€nder sjĂ€lv IntelliJ IDEA (6.0 för nĂ€rvarande) för all Java-kodning. ĂverlĂ€gset stöd för code-completion, refactoring, templates och annat trevlig godis för utvecklare. Ta följande exempel; jag ska skapa lĂ€gga till en ActionListener pĂ„ en knapp. Jag har skrivit följande kod och markören stĂ„r pĂ„ *.
JButton button = new JButton(”Kör”);
button.addActionListener(*);
Sen lÄngt tillbaka har vi haft grundlÀggande code-completion dÀr jag skriver variabelns namn, punkt, och sen trycker Ctrl-Space (eller dylikt) och fÄr upp en lista pÄ alla metoder som kan köras pÄ det objektet. IntelliJ tar det hela ett steg lÀngre, nu skriver jag bara följande (i fetstil) och trycker pÄ Ctrl-Shift-Space:
JButton button = new JButton(”Kör”);
button.addActionListener(new );
Resultatet nu Àr att IntelliJ fattar att det Àr en ActionListener som ska in dÀr. Den presenterar en lista med alla klasser och interface som skulle passa dÀr (alla klasser som implementerar ActionListener och som ligger i projektets classpath). Nu vill jag inte anvÀnda en fÀrdig ActionListener, utan skapa ett anonymt inre objekt. VÀljer jag dÄ ActionListener av de alternativ som finns i listan sÄ fixar IntelliJ all boiler-plate kod Ät mig automatiskt, resultatet blir alltsÄ, utan att jag behöver skriva ett tecken mer, att jag fÄr följande helt automatiskt (markören hamnar pÄ *):
JButton button = new JButton(”Kör”);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
*
}
});
Detta funkar för alla typer av anonyma inre klasser och Àven för sÄnt du skriver sjÀlv. VÀldigt smidigt alltsÄ. Denna intelligent code-completion fungerar pÄ fler stÀllen. Definerar jag en variabel av typen Map sÄ rÀcker det med att jag skriver variabelns namn, ett = tecken och new och IntelliJ ger mig en lista över alla klasser som implementerar Map. VÀldigt trevligt.
Detta Àr bara ett litet smakprov av vad IntelliJ erbjuder dig som kodare. Trivilia saker som ofta krÀver mycket manuellt skrivande görs i ett nafs. Refactoring-stödet Àr smÄtt magiskt och har under de 6-7 Är som jag anvÀnt IntelliJ vÀldigt sÀllan fallerat. Nu vet jag att bÄde Eclipse och NetBeans erbjuder smart code-completion och refactoring, men ingen av dem Àr ens i nÀrheten av de finesser som IntelliJ har.
Baksidan Àr att IntelliJ kostar pengar. $499 för att vara exakt. VÀl investerade pengar enligt mig. För de som vill testa IntelliJ sÄ kan du ladda hem en trial licens pÄ 30 dagar. Du hittar allt pÄ www.intellij.com.