2007-06-26

Netbeans 6 pre kipróba

Kipróbáltam a 6-os netbeans preview-jét, de előbb egy kis történelem.

Annak idején JBuilder-rel kezdtem, majd NetBeans-re váltottam, mert ingyenes, teljesen java, platformfüggetlen és frankó volt. Aztán a munkatársaim ajánlották az Eclipse-et, mert látták hogy a NetBeans-szel kicsit döcög a gépem és mindig egyszerűbb szoftvert cserélni, mint hardvert bővíteni. (Nem azért egyszerűbb szoftvert cserélni, mert nehéz beletenni a gépbe plusz X mega RAM-ot, hanem mert ezt meg is kell szerezni valahonnan, el kell menni érte, szét kell szedni a gépet (ami kockázat) és fennáll a veszély, hogy a többieknek is hirtelen szükségük lesz bővítésre.) Tehát igaz hogy az Eclipse nem full java és nem teljesen platformfüggetlen, de kevesebb memóriát igényelt és ezért az alkalmazásváltások nem okoztak nagy szürke képernyőket pár másodpercig. Döcögős volt az átállás, de most (pár évre rá) már teljesen megszoktam és megszerettem. Néhány projektben nem is tudnánk mást használni, mert erre vannak meg azok a pluginek amik nekünk kellenek.

Mostanában nagyon nyomják a Netbeans-t. A Sun konferencián is külön előadást kapott (Roumen volt az előadó). Minden elképzelhető dolgot beleintegrálnak a MIDP grafikus GUI szerkesztőtől kezdve a Ruby támogatáson és a JSF GUI szerkesztőn keresztül a JBI-ig. Csak azt nem tudom hogy a fejlesztők hány százalékának van ezekre így együtt szüksége. Valószínűleg 0, szóval a dolog inkább a marketingnek szól.

Ha megnézem a hamarosan megjelenő Eclipse 3.3-as feature listáját, akkor pedig csupa csip-csup dolgokat látok, amiket valószínűleg észre sem vennék egyébként, de kódolás közben igazán hasznos lehet egyik-másik.

Egy éve volt szerencsém a Sun Java Sun Enterprise 8-hoz ami a Netbeans-ra épül és nem dobtam hátast tőle -konkrétan egy nagy rakás szerencsétlenség volt, úgyhogy talán némi szkepticizmussal vágtam bele a 6-os preview kipróbálásába.

Az installálás és az indítás oké. Mellesleg közben kicseréltem alatta a Java-t 5-ösről 6-osra és ezután nem volt hajlandó elindulni, a beállítást pedig nem tudtam megtalálni, tehát gyorsan újrainstalláltam.

Úgy gondoltam hogy kipróbálom a MIDP alkalmazásfejlesztőt -úgyis most vettem egy frankó Nokia 6300-ast, csinálok rá valami kis progit. Első körben a flow diagram nagyon meggyőző, csak amikor szaporodnak a képernyők (4 fölé) akkor már nem nagyon lehet őket értelmesen elhelyezni. Az összekötő vonalak mindig a képernyő ugyanazon (jobb) oldaláról indulnak és ugyanazon (bal) oldalára érkeznek, ezért max egy wizard szerű képernyő flow-t lehetne belőle szépen összerakni. Bizonyos command-okhoz tartozó vonalak meg sem jelennek. A képernyőszerkesztő nagyjából oké. A generált kód -mint mindig- hagy maga után kívánnivalót. A NetBeans sajátossága, hogy a generált kódba nem enged belenyúlni, nem engedi szerkeszteni. Mindenhol lazy inicializálást használtam, ami azt jelenti hogy csak akkor hozza létre a kontrollt ha szükség van rá és ha már létrehozta, később azt a példányt használja (singleton pattern). Viszont nem tudtam berakni semmi közös részre azokat a kódrészeket, amik a kontroll egyéb tulajdonságait megváltoztatnák másodszori és többedszeri megjelenítéseknél. Tehát minden egyes helyre be kellett tenni a kontroll megjelenítés után, és ez csúnya. Pl. ha egy képernyőre öt helyről lehet bemenni, akkor öt helyre kellett betenni a képernyőt friss adatokkal feltöltő kódrész hívását.

A kódszerkesztő talán azért tűnik szokatlannak, mert nagyon a kezemben vannak már az Eclipse shortcut-jai, de néhány kódkiegészítés azért mellen ütött. Eclipse-ben statikus metódusba eleve nem lehet beírni a "this" referenciát, mert aláhúzza hibának. NB-ben be lehet írni, sőt felajánlja utána a statikus metódusokat is (ctrl+space), amiket ha kiválasztok persze már fordítási hibát jelez. Ha kivételt dobó kódrészt akarok try catch -csel körbevenni és többféle exception-t is el kell kapni, amelyek esetleg egymás leszármazottai, a catch blokkokat néha rossz sorrendben teszi ki, emiatt szintén fordítási hiba keletkezik. Közben a try catch-en belüli kódot is átírja úgy, hogy kiírja az osztályok nevét a teljes package névvel függetlenül attól, hogy az import megvan. Még egy refaktorolási diszkrepanciával találkoztam amikor véletlenül sikerült azonos nevű osztályokat kialakítanom különböző csomagban. Utána fél óráig kellett böngésznem a kódot hogy visszacsináljam. Tehát a kódszerkesztő, kódkiegészítő, refaktorolós rész leírta magát nálam.

Még a buildelésről pár szó: a MIDP projekt létrehozásánál a Netbeans megcsinált mindent ami egy ilyen projekthez kell, a buildelés pedig gyakorlatilag egy Ant script futtatásából áll. Ez szimpatikus. Az Ant script viszont nem fut valami gyorsan és az emulátor sem ugrik fel túl hirtelen (20 mp egy 2G RAM-os Centrinoval) de azért használhatónak titulálható.

Valamelyik Javaposse-ban hallgattam, hogy az Eclipse inkább hackelésre, kódvarázslásra jó, a Netbeans pedig prototípusok gyors összedobálására. Maximálisan egyetértek. Végszónak annyi, hogy ismét az a benyomásom mint az SJSE8-nál, hogy még mindig kicsit összetákolt dologgal találkoztam, de már sokkal jobb, és kíváncsian várom az igazi 6-os verziót. Hajrá Prága!