JDeveloper 11g vs. Visual Studio 2008 – Alapok


A napokban kezdtem el a féléves önálló-labor feladatom előkészítését a következő félévre, melyet Java-ban kell implementálnom. Témacsoportomból adódóan a fejlesztőkörnyezet magát kínálta, így esett a választás az Oracle JDeveloper 11g -re. Másfél éve fejlesztek kisebb-nagyobb alkalmazásokat, komponenseket  C# -ban és már évek óta használom a Visual Studio -t egyéb nyelvekhez is, így mondanom sem kell, hogy nagyon szívemhez nőtt a Microsot IDE -je, különösen a legutolsó változat, a Visual Studio 2008. Korábban Java kódot csak NetBeans -ben fejlesztettem, a JDeveloper korábbi verzióját a 10-est csak egy két labor alkalmával volt lehetőségem használni, így nem volt túl sok tapasztalatom a termékkel kapcsolatban. Ezért döntöttem úgy, hogy először összegyűjtöm azokat az alapfunkciókat, amelyeket megszokhattunk egyikben-másikban és ezek szempontjából összehasonlítom őket.

Szoftverek Elérhetősége

Először is a legnagyobb különbség a két IDE (Integrated Development Environment) között, hogy míg az Oracle mindkét JDeveloper csomagja teljesen ingyenesen elérhető, a Microsoft a 3 különböző csomagja közül csupán a Visual Studio Express kiadásait (C#, C++, Visual Basic, Web Developer) tette ingyenessé, a Professional és a Team System kiadást külön termékként kell megvásárolni. A helyzet persze nem ennyire rossz, hiszen haszánkban az állam és a Microsoft közötti Campus és School megállapodás keretében a Professional változat is ingyenesen elérhető a tanárok és diákok részére, természetesen csak oktatási célokra felhasználva. Ebből kifolyólag ebben az elemzésben csak az Visual Studio 2008 Express Editions -t,  fogom az Oracle JDeveloper 11g u2 -vel összehasonlítani.

Környezetek letöltése:

Platform és nyelvi összehasonlítás

Szempont Oracle JDeveloper 11g Microsoft Visual Studio 2008 Express Editions
Környezet

Windows, Linux,
minden JRE-re képes OS

Windows
Nyelvek Java C#, C++, VB és még további 40 CLI képes nyelv
Fordított kód Java Bytecode Common Intermediate Language
Platformfüggetlen Igen Igen
Virtuális gép JVM CLR VM (.NET, MONO)

Ahogy a táblázatból is láthatjuk mindkét fejlesztő környezet platformfüggetlen kódok fejlesztését szolgálja, azonban maga az IDE Microsoft VS 2008 EE esetében csak Windows-on futtatható, míg a JDev gyakorlatilag bármilyen fejlesztésre használható OS-en. A nyelvek szempontjából a JDev ugyan csak Java és ahhoz közeli technológiák, metanyelvek fejlesztését támogatja, a VS Studio ennél  jóval többet, de a két két környezet ilyen szempontból nem is fedi egymást, hiszen a 2001-es megállapodásuk óta a  Microsoft nem botorkál a Java háza táján, így saját Java Virtuális gépét, a Microsoft Java Virtual Machine -t és fejlesztői környezetét is, a Visual J++ is a múltnak adta. Innentől mondhatjuk olyan szép egységesnek és valóban platformfüggetlennek a Java-t, mint amilyen most.

Ugyanakkor a Microsoft -ot sem kell sajnálni, hiszen ekkor már készen volt a CLI, azaz a Common Language Interface terve, ami a platformfüggetlenség mellett a nyelvi függetlenséget hivatott megteremteni, ami később az Intel, a HP és a Novell támogatásával hivatalos szabvánnyá is vált. A fejlesztő környezet ekkor a forráskódot egy a Java bájtkódhoz hasonló köztes kódba, a CLI -be fordítja, melynek platformfüggő részeit a virtuális gép fog futásidőben fordítani. Az egyik legnépszerűbb  framework, a Microsoft .NET -et kivéve, a Novell által szponzorált MONO lett, ami valódi cross-platform futtatást biztosít az emulációk helyett a .NET -ben írt kódok végrehajtására Linux-on, Mac-en és természetesen Windows-on is.

Felület és kódolás

Szempont Oracle JDeveloper 11g Microsoft Visual Studio 2008 Express Editions
Indítás sebessége ~15 mp ~2 mp
IDE Felület, menük Közel azonos, kulturált, varázslókkal tűzdelt, gyors kódolástámogatás, színezés, kód-/design-/osztálydiagram nézet, XML szerkesztő és egyéb specifikus objektumok szerkesztői, adatforráskezelés, színezések stb…
Legfelső munkaterület elnevezése Application Solution
Munkaterület Project Project
Forrás és adatforrás elkülönítés Igen (Application Navigator) Nem (Project Explorer)
Gépelés közbeni kiegészítés Nem, csak kikényszerítve Igen (IntelliSense)
Gyakori metódusok kiegészítés Nem Igen (IntelliSense)
Kódkiegészítés Igen CTRL+SPACE Igen CTRL+SPACE
Kódrészlet beszúrás Igen CTRL+ENTER Igen (TAB+TAB)
Kódváltozás követés History fül Forráskód margóján jelölve
Kódváltozás visszavonás Tetszőlegesen Csak sorrendben
Kódolás közbeni hibakeresés Szövegben és margón Csak szövegben

Az első szembetűnő különbség viszont az, hogy a JDev indításkor elég lassan teljesít, 15 mp alatt sosem indult el a gépemen, míg a VS 2008 alig 2 mp alatt már használható, de ez nyilván a Java megszokott indítási lassúságának tudható be.

A két környezet felülete többnyire megegyezik, nagyjából ugyanazokat a bevált funkciókat kaphatjuk mindkét rendszerben. Egy másik különbség a source és resource elkülönítése a két IDE között, hogy míg az Oracle külön konténerben mutatja ezeket az egész Application-re vontakoztatva, a Microsoft ezeket a Projektekhez kötve mutatja meg azok projekt fájában.

A forrsákód szerkesztőben további eltérések érzhethetők, amik lassíthatják a kódolást, ha valaki az egyik stílushoz már hozzászokott. Személy szerint nagyon hiányoltam a JDev-ből a VS-ben IntelliSense-nek keresztelt jószágot, ami intelligensen alkalmazkodva kódomhoz már gépelés közben felajánlja a lehetséges kódrészleteket és az ahhoz tartozó típusleírásokat, paraméterezéseket, így gyakorlatilag pár karakter és a szóköz nyomkodásával elkészülhet az értelmes kódunk. A JDeveloperből a felajánlásokat csak a CTRL+SPACE -szel lehet kikényszeríteni, és sajnos azok sem nyújtanak típusleírást vagy paraméterezési segítséget. A JDeveloperben a kódrészlet, vagy kódsablonok beszúrását a CTRL+Enter kombinációval érhetjük el, míg VS-ben ezt is automatikusan az IntelliSense nyújtja a TAB+TAB segítségével, ami szintén kényelmesebb, mint a billentyűkombinációis megoldás.

A kódolás közbeni hibakeresés mindkét környezetben megtalálható, a JDeveloperben azonban talán egy kicsit hangsúlyosabb a forráskód margóján való figyelmeztetéssel, de ez persze csak ízlés kérdése.

A kód változáskövetés, azaz a mentett  és szerkeszett források közötti különbségeket a VS-ban rögtön a forráskód margóján jelennek meg, azonban ezek visszavonása csak fordított sorrendben történhet, míg a JDev -ben ez a funkció ugyan külön fülre, a History-ra került, de itt az összehasonlító nézet mellett az egyes változásokat akár külön-külön is visszavonhatjuk, tetszőleges sorrendben, ami remek funkciónak bizonyul a fejlesztések során.

Összefoglalásul tehát annyit mondhatunk, hogy mindkét fejlesztői környezet profi módon látja el feladatát, de egyik sem váltható ki a másikkal, hiszen nyelvi átfedés nincs közöttük, mindkét IDE egy vagy több platformfüggetlen nyelvre és környezetre összpontosít, de az általuk kínált kiegészítő szolgáltatások erősen gyártó specifikusak. Mind az Oracle, mind pedig a Microsoft a saját termékpalettájához szeretne minél professzionálisabb fejlesztői eszköztárat nyújtani, ezért a két termék békében elfér egymás mellett, nekünk csak résen kell lenni, hogy melyik forrás-szerkesztőben nyomjuk azt a spéci TAB-TAB párost.


Készült 2009-05-10 20:31 - Kategória: Oracle


1 db megjegyzés - JDeveloper 11g vs. Visual Studio 2008 – Alapok

  1. Szia,

    érdekes összehasonlítást olvashattunk, bár az elején furcsállottam, hogy miként lehet két különböző nyelvre specializált feljesztőeszközt bemutatni.
    Nekem olyan tapasztalatom volt a JDeveloperrel(10 és 11 is), hogy indítás után rövid időn belül nagyon belassult. Értem ezalatt, hogy a navigálás is több másodperces reakcióidővel történt meg. Mondjuk a Visual Studio (2005) sem egyszerű eset, mert előfordult, hogy több példányt kellett egyszerre használnom, ekkor viszont szép komótossá vált a környezetváltás, rengeteg memóriát megettek. Összességében én azt a tapasztalatot gyűjtöttem be, hogy ha kényelmi funkciókat akarsz használni a fejlesztéshez, akkor áldozatot kell hozni a teljesítmény oltárán.

    Csak így tovább!
    Péter

Megjegyzés írása

English Spanish French German Italian Hungarian