fbpx

A JVM működése – avagy a Java és a platformfüggetlenség


Előszó

A bejegyzés fő témái a platformfüggetlenség és a JVM működése.

Beszélünk a platformfüggetlenségről általánosságban, majd megnézzük, hogy a Java vajon mennyiben felel meg ezeknek a kritériumoknak, illetve, hogy ennek a platformfüggetlenségnek mik a potenciális korlátai a Java esetében.

A legutolsó szekcióban az úgynevezett JVM működése lesz a fő témakör, és a vele kapcsolatos témákat fogjuk közösen átgondolni.


JVM működése és a platformfüggetlenség


Mi az a platformfüggetlenség?

A platformfüggetlenség röviden azt jelenti, hogy az írt szoftverünk – minimális vagy semmilyen módosítással – több számítógépes platformon képes működni.

Röviden tehát, ha az alkalmazásunk platformfüggetlen, akkor különböző operációs rendszereken (Linux, Windows, …) képes futni gyakorlatilag módosítás nélkül. Másképp megfogalmazva, egy programozási nyelvet akkor hívunk platformfüggetlennek, ha az általa írt programokra elmondható az, hogy többplatformosak, tehát, hogy az alkalmazások jelentős módosítás nélkül futnak különböző operációs rendszereken és architektúrákon.

A Java platformfüggetlen?

Gyakori interjúkérdés, hogy a Java platformfüggetlen nyelv-e. A kérdés megválaszolásához át kell látnunk, hogy pontosan mi lesz a Java kódunkkal, amíg ténylegesen program lesz belőle. Nézzük meg egy Java Class útját a kezdetektől:

  1. Megírjuk a fájlt .java kiterjesztésben. Itt az adott Java verzió szintaxisának megfelelő kódot használjuk.
  2. A javac fordító segítségével ebből bytecode-ot generálunk. Ez a bytecode már .class kiterjesztésű. A bytecode-ról itt olvashatsz bővebben.
  3. Minden operációs rendszerre írtak egy a rendszertől függő Java virtuális gépet (angolul: Java Virtual Machine, tehát JVM). A JVM működése a következő alfejezet témája lesz, de a lényeg az, hogy a bytecode-ot gépi kódra fordítja, amit a célplatform képes futtatni.

A lent található ábra a fent leírt folyamatot mutatja be:

JVM működése - diagram
Java fájl Byte Code-ra és a JVM szerepe

A fentieket a következő fejezetben, melynek témája a JVM működése, jobban kifejtem, de már ebből is megkaptuk a választ: a Java platformfüggetlen nyelv, mert bármilyen olyan platformon lehet futtatni a Java szintaxisa alapján megírt kódot, amelyre készült JVM.


A JVM működése

JVM: bevezető

Mint ahogy az előző bejegyzésben már említettem, a JVM egy virtuális gép, melyet az adott platformra fejlesztenek azért, hogy az képes legyen a javac által lefordított .class fájlokat lefordítani úgy, hogy azokból az adott platformon értelmezhető utasításokat kapjunk.

Éppen ezért mondtuk azt, hogy a Java platformfüggetlen, hiszen bármilyen platformon lefuttatható a Java-ban írt kód, ha van rajta JVM, viszont fontos hogy ettől még maga a JVM nem lesz platformfüggetlen. Mit is jelent ez?

Ördöngösnek hangzik, de ez csak annyit jelent, amit már korábban is megállapítottunk: minden platformra egyedi JVM-et kell írni, és egy Android-os rendszerre írt JVM eltér egy Windows-ra írttól. Pont a JVM teszi lehetővé azt, hogy a Java platformfüggetlen nyelv legyen, viszont ahhoz előtte valakiknek meg kell írnia a JVM-et az adott platformra. A platformfüggőség hozzájárul a Java töretlen népszerűségéhez is, melyről itt írtam.


A JVM működése mélyebben – a név elemzése

A JVM működése egy eszméletlenül izgalmas témakör. Ahhoz, hogy mélyebben megértsük ennek a működésnek a jellegét, először nézzük meg, hogy maga a Java Virtual Machine kifejezés mire utal. A virtual machine (virtuális gép) elnevezés egy fizikai gép szoftveres szimulációjára utal. A virtuális gépek lehetnek hardver-és rendszeralapúak vagy szoftveres alapúak.

A JVM egy olyan szoftveres alapú virtuális gép, amely engine-ként szolgál ahhoz, hogy az adott platformon futtatni lehessen a Java-ban írt szoftverünket.

A JVM-re tehát tekintsünk úgy, mint egy virtuális gépre, amin rengeteg dolog testreszabható. De mit is tartalmaz ez a virtuális gép?


A Java virtuális gép elemei

Ebben az alfejezetben a teljesség igénye nélkül felsorolom a Java virtuális gép elemeit, illetve nagyvonalakban leírom, hogy miért van rájuk szükség.

  1. Class loader-ek: az osztályok betöltéséért felelnek. Van három előre definiált class loader, de szükség esetén sajátot is lehet írni a ClassLoader class extend-álásával (ha a mondat második fele kínai, nyugodtan menj tovább :)).
  2. Method area: a JVM többek közt itt tárolja a metódusok kódjait
  3. Heap: a heap az a memóriaterület, ahol a referenciatípusokat tárolja a virtuális gép.
  4. Stack: a stack-en a primitív típusok kerülnek tárolásra. Ha nem tudod, mik azok a primitív-és referenciatípusok, látogass el ide. Én is fogok róla írni egy későbbi bejegyzésben. 🙂
  5. Program counter regiszterek: minden egyes ilyen regiszter azonosítja azokat a műveleteket, amik épp végrehajtásra kerülnek.
  6. Native method stack: a natív java metódusok vannak itt. Na de mik is azok a natív metódusok? Ezt a következő alfejezetben kifejtem 🙂
  7. Execution engine: ez a végrehajtó környezet, mely a következő elemeket tartalmazza:
    • Egy virtuális processzor
    • Interpreter: értelmezi, és végrehajtja a byte code-ból kiolvasott instrukciókat
    • Egy úgynevezett JIT compiler (Just-In-Time fordító), ami a byte code-ból gépi kódot generál. A hasonló funkcionalitású kódokat egyszerre tudja lefordítani, ezért nagyon gyors (innen az elnevezése 🙂 ).
  8. Java Native Interface

Kis érdekesség – a natív metódusok

A natív metódusok (angolul: native methods) egyéb nyelven (többnyire C-ben vagy C++ – ban) megírt metódusok. Ezeket viszonylag ritkán kell használnunk – nekem eddig soha nem kellett -, de néhány esetben indokolt lehet a használatuk. Ezek közül gyűjtöttem össze néhányat:

  • Olyan könyvtárakat akarunk használni, amik más programnyelvekben íródtak.
  • Már megírt C/C++ kódot akarunk újrafelhasználni a Java programunkban.
  • Olyan hardverelemekhez szeretnénk közvetlen hozzáférést, amikhez C-ben hozzá lehet férni, de Java-ban nem.
  • A Java-ban megírt algoritmus valamilyen okból túl lassúnak bizonyul, ezért alacsonyabb szintű programozási nyelvhez nyúlunk a hatékonyság növelése érdekében.

Érdekesség, hogy maga a Java virtuális gép is tartalmaz natív metódusokat, amik ahhoz kellenek, hogy maga a VM működjön.

JVM, JRE és JDK

Röviden összefoglalva:

  1. A JVM egy virtuális gép, ami futtatni tudja a Java programunkat
  2. A JRE egy futtatási környezet vagy konténer, amin belül a JVM fut
  3. A JDK egy fejlesztői csomag, ami magában foglalja a JRE-t, és ezen kívül rengeteg olyan eszközt használ, amit fejlesztők napi szinten használnak. Ezek közül néhány:
    • Java debugger – ennek segítségével tudjuk lépésről lépésre megnézni a futtatott programunkban, hogy mi lehet egy esetleges hiba oka.
    • Java compiler (javac) – ez a fordító; mint az első ábrán is szerepel, ennek segítségével lehet a Java kódból ún. byte code-ot előállítani, amiből a Java virtuális gép gépi kódot generál.
    • Javadoc – dokumentáció-generáló eszköz, ami HTML-dokumentációt generál. A dokumentáció arra hasznos, hogy leírjuk, hogy egy adott egység (pl. osztály) milyen céllal készült, milyen elemei vannak, és azokat mire lehet használni és mik az esetleges limitációk. Egy jó kódban kevés komment is elég ahhoz, hogy eligazodjunk benne, mert az osztályok, változók és metódusok nevei beszélő nevek, és egyértelmű, hogy mi a szerepük.

Összefoglaló

A Java részben pont azért ilyen népszerű, mert egy platformfüggetlen nyelv. A platformfüggetlenséget a JVM, azaz a Java Virtual Machine (JVM) biztosítja, amelyet viszont minden egyes platformra külön meg kell írni. A JRE a JVM működése szempontjából szükséges környezetet és egyéb eszközöket biztosít.

A JDK egy fejlesztői környezet, mely magában foglalja a JRE-t és ezáltal a JVM-et is.


Köszönöm, hogy elolvastad a cikket, a legközelebbi bejegyzésemnél találkozunk! 🙂

A Java népszerűsége – Miért töretlen a Java sikere?

A TIOBE-Index alapján a Java 2019 októberében is a leggyakrabban használt nyelv. Egy másik felmérés szerint a Java a második legnépszerűbb nyelv a piacon. Ha megnézzük, a két különböző felmérés első 3 helyezetében az egyetlen közös programnyelv a Java. A Java népszerűsége megkérdőjelezhetetlennek és öröknek látszik.

A fent leírt jelenség nem 2019-ben kezdődött, hanem évtizedes viszonylatban így van. Programnyelvek jöttek-mentek, de a Java-nak sikerült megőriznie a dominanciáját, és folyamatosan megújulni.

A Java népszerűsége onnan is látszik, hogy egyes felmérések szerint nemzetközi szinten a Java fejlesztők magasabb bérre számíthatnak bármilyen egyéb fejlesztőnél.

A kérdés tehát adja magát: miért? Vajon mi ennek a töretlen népszerűségnek az oka? Ebben a cikkben ezt próbáljuk meg körbejárni.latformfüggetlenség


Platformfüggetlenség

Az első ok – melyet ebben a cikkünkben már körbejártunk – a platformfüggetlenség. A platformfüggetlenség azt jelenti, hogy a programunk minimális – vagy semmilyen – módosítással fut különböző operációs rendszereken és platformokon. Éppen ezért ahelyett, hogy ugyanazt a programot 4-5 különböző operációs platformra megírnánk, írunk egy verziót, és amelyik számítógépen rajta van a JVM, azon futtatni tudjuk a szoftverünket.

Amennyiben többet szeretnél olvasni a platformfüggetlenségről, ezt a cikket ajánlom. Amennyiben konkrét információra vagy kíváncsi egyes platformfüggetlen nyelvekről – pl. a Java-ról -, ez a cikk szerintem remekül összefoglalja a legfontosabbakat, azok előnyeivel és hátrányaival együtt. Ez utóbbi összevetésből is kitűnik, hogy a Java népszerűsége töretlen.


A Java népszerűsége Android rendszereknél

A Java népszerű az Android-fejlesztésben is

A két legnépszerűbb nyelv, amit Android fejlesztésre használnak, a Kotlin és a Java, de a Kotlin egy olyan nyelv, ami Java virtuális gépre fordul, és 100%-ig kompatibilis a Java-val.

A Kotlin tehát ebből a szempontból nem versenytárs, ráadásul az interneten rengeteg útmutató található kifejezetten Java fejlesztőknek, akik át szeretnének térni a Kotlin használatára.


Stabil keretrendszerek

A Java-hoz írt keretrendszerek többségében rendkívül robosztusak, éppen ezért rengeteg bank, pénzintézet és multinacionális cég használja ezeket a nyelveket az üzleti szférában.


Jól strukturáltság – a Java népszerűségének kulcsa

A Java azért ajánlott kezdő nyelvnek, mert egyszerű, logikus, jól felépített, és megtanulásával kifejezetten erős programozói alapokat lehet szerezni. A Java segítségével könnyen megértheted és használhatod az objektumorientáltságot, aminek segítségével teljesen logikusan és életszerűen strukturálhatod az alkalmazásodat.

A Java népszerűsége annak is köszönhető, hogy a megtanulása után nagyon könnyen át lehet térni más nyelvekre. A másik két legnépszerűbb nyelv, a Python és a JavaScript is könnyen megtanulhatóak a Java után.

A C# megtanulása különösen egyszerű lesz, hiszen azt nyelvet deklaráltan azért hozták létre, hogy egy a Java-hoz hasonló, de annál jobb alternatívát képezzenek a szerveroldalon. Arról, hogy ez a kísérlet mennyire volt sikeres, arról ez a felmérés objektív képet ad: 19 év eltelte után 2019 októberében a Java népszerűsége több mint négyszerese a C#-énak.


Rengeteg legacy rendszer és sok új projekt

Mivel a Java nagyon régóta a legnépszerűbb nyelvek között van, ezért rengeteg, már meglévő rendszert írtak Java-ban. Az így megírt szoftverek stabilak, ismerik az erősségeit és esetleges gyenge sebezhetőségeit, éppen ezért ezeket a rendszereket nem írják át más programnyelvre. Ez azt jelenti, hogy ha holnaptól senki nem kezdene Java-ban projektet, akkor is rendkívül népszerű nyelv maradna, mert a meglévő rendszerek karbantartása, frissítése és egyes új funkciók hozzáadása rendkívül erőforrás-igényes.

Ha megnézzük a PHP népszerűségének alakulását, ott pont azt látjuk, hogy annak ellenére, hogy ma már szinte senki nem kezd ezen a nyelven projektet, még mindig a leggyakrabban használt nyelvek között van. Ez azért van, mert rengeteg olyan 10-20 évvel ezelőtt elkezdett projekt van, amelyek mára többmillió soros kódbázissal rendelkeznek. Ha ennek a nagy részét PHP-ban írták, akkor relatíve kicsi az esély, hogy áttérjenek valami újra. Ennek több oka van. Egyrészt azok a szakemberek, akik adott esetben 5-10 éve ugyanazon a kódbázison dolgoznak, ahhoz a kódhoz értenek. Tudják pontosan, hogy mi hol van, ismerik a projekt felépítését, a programban lévő egyes elemek szerepét, a használt keretrendszereket. Újraírni az egészet úgy, hogy ugyanolyan biztonságos és használható legyen, mint volt, rengeteg plusz költséget jelent, amit végül senki nem fizet meg, hiszen ugyanazt tudja a program, amit előtte tudott.

A Java helyzete ennél is nagyságrendekkel jobb: az úgynevezett zöldmezős projektek jelentős része ma is Java-ban indul, így nem csak legacy projektek, hanem Java 9-12-ben indult projektek is indulnak. Ilyen zöldmezős projektekre azért is jó bekerülni, ha van lehetőséged, mert ott a kezdetektől vehetsz részt egy program megtervezésében és felépítésében. Ez remek tapasztalat, amiből rengeteget tanulhatsz, és később is jó referencia lesz az önéletrajzodban, ha alkalmazottként szeretnél dolgozni.


Remek szemléletfejlesztő nyelv

Ezt úgy értem, hogy a Java tanulásának rengeteg olyan előnye van, ami en bloc a programozói karrieredben is rettentő hasznos, nem kizárólag a Java esetén.

Olyan általános programozási paradigmákat ismerhetsz meg és alapelveket gyakorolhatsz, amit később akkor is tudsz használni, ha teljesen más utat választasz végül. Ezek közül megemlítek néhányat csak felsorolás-szinten; a jövőben lehet, hogy írok róluk hosszabban:

  • Metódusok
  • Objektumorientáltság és annak az alapelvei
  • Clean code
  • SOLID principles
  • Dependency injection
  • Garbage collection
  • Design patterns – tervezési minták

Ezek olyan elvek illetve gyakorlati megoldások, amik gyakorlatilag minden modern nyelvben visszaköszönnek.


A Java népszerűsége a szakmai közösségi oldalakon

A Java népszerűsége önmagát gerjesztő jelenség: sokan pont azért használják, mert ennyire népszerű, és ezért ha elakadnak, nagyon gyorsan választ kaphatnak a kérdéseikre.


Erős IDK-k

Ha kérdés számodra, hogy mi az az IDK, azaz az integrált fejlesztői környezet, ebben a cikkünkben választ kapsz a kérdésedre. Röviden: az integrált fejlesztői környezetek olyan szoftverek, amik könnyűvé, gyorssá és XXI. századivá teszik a fejlesztést. Értelmezik és elemzik a kódot, és javaslatokat tesznek a kódminőség javítása érdekében. Grafikus felületet biztosítanak bizonyos műveletekhez (pl. fordítás, debug-golás), és kifejezetten kényelmes szoftveres környezetet biztosítanak ahhoz, hogy a programozók sokkal hatékonyabban végezhessék a munkájukat.

A Java-ban az IntelliJ, az Eclipse a legnépszerűbb integrált fejlesztői környezetek, és mindkettő kiváló. Az Eclipse gyors és kompakt, az IntelliJ pedig rengeteg smart hint-tel segít. A megfelelő IDE tehát hatalmas előny, ami kifejezetten pozitív a Java népszerűsége szempontjából.


Kompatibilitás

Nem zökkenőmentesen, de ez nagyjából sikeres is. Természetesen vannak olyan verziók, amik között a váltás relatíve nagyobb kihívás, mert nagyon sok mély változtatás volt az új verzióban az azt megelőzőhöz képest. Alapvetően azonban a Java visszafele kompatibilis nyelv – és ez számunkra hatalmas előny.


A folyamatosan fejlődő Java népszerűsége töretlen

A Java-nak folyamatosan újabb és újabb verziói jönnek ki igen komoly változtatásokkal és sokszor új paradigmák beemelésével. A Java verziókról egy másik cikkben írok, de összeállítok egy szubjektív listát néhány példával, hogy néhány verzióban milyen nagymértékű változtatások történtek:

  • A Java 5-ben bekerültek a generikus típusok, amik rengeteg problémára megoldást nyújtanak, és megfelelő alkalmazásuk csökkenti az ún. kód-duplikációk számát.
  • A Java 8-ban az ún. lambda-kifejezésekkel és a Stream-ekkel bekerült a funkcionális programozás a Java-ba.
  • A Java 9-ben bekerült a modularitás, ami egy új absztrakciós szintet teremtett a package-ek felett.
  • A Java 12-13-ban megreformálták a switch-et, és a statement-ek mellé behozták az ún. switch expression-öket.

Mindezek mellett rengeteg ötlet vár még megvalósításra, amit az Oracle is kommunikált.

Végezetül felmerül a kérdés: egy mondatban megfogalmazva miért a Java a legnépszerűbb nyelv?

Azért, mert jól strukturált, átgondolt, könnyű tanulni, könnyű ,,áttanulni” más nyelvre Java-ról, nagyon erősek a keretrendszerek, szuperek az integrált fejlesztői környezetek hozzá, és nem utolsó sorban folyamatos fejlődésen megy keresztül. Kicsit hosszú mondat lett, de csak sikerült röviden megfogalmazni 🙂


Remélem, tetszett ez a rész, és informatívnak találtad! Tarts velünk legközelebb is!

Fejlesztői környezetek – mikor melyiket érdemes használni?

Ízelítő a fejlesztői környezetekről szóló tartalomból:


Előszó

Ebben a bejegyzésben kicsit részletesebben beszélünk az előző részben említett Java fejlesztői környezetekről, a megválasztásuk fontosságáról, átvesszük azok előnyeit és hátrányait, és segítek az optimális fejlesztői környezet kiválasztásában. Mindezek előtt azonban nem árt tisztázni: mik is az integrált fejlesztői környezetek?


Mik is azok az integrált fejlesztői környezetek?

Az integrált fejlesztői környezetek vagy röviden IDE-k (Integrated Development Environment) alkalmazások, melyek jelentősen megkönnyítik és meggyorsítják a szoftverfejlesztést. Ahogy a korábbi fejezetben körbejártuk, önmagában a fejlesztéshez egy szövegszerkesztő is elég lenne, viszont az IDE sokkal több ennél. Az alábbiakban – a teljesség igénye nélkül – leírok néhányat egy XXI. századi modern IDE funkciói közül:

  • Ismeri a nyelv szintaxisát: az integrált fejlesztői környezetek ismerik a nyelv jellegzetességeit. Miért jó ez? Két dolog miatt is: egyrészt könnyedén kiszűri a hibákat, másrészt optimalizációs javaslatokkal tud élni a tisztább kód elérése érdekében.
  • Tudja futtatni a projektet: minden környezet tartalmaz mindent, ami a program lefordításához és futtatásához szükséges. Tartalmaz egy fordítót (compiler / interpreter) és tartalmazza a futtatási környezetet (runtime environment). Ezenkívül tartalmaz debugger-t is, ami a hibák feltárását segíti.
  • Támogatja a verziókezelést: egy modern környezet felhasználói felülettel támogatja a legkorszerűbb verziókezelő rendszerek (Git, SVN, TFS, …) valamelyikét, ezzel felgyorsítva a verziókezelés folyamatát. Természetesen a verziókezelés parancssorból is megvalósítható. Az viszont mindenképp fel tudja gyorsítani a munkát, ha nem minden parancsot parancssorból kell bepötyögni 🙂
  • Sablonokat tartalmaz: egy IDE rengeteg sablont (template) tartalmaz, ami az automatizálható dolgokat automatikusan végrehajtja. Ez több száz sornyi kódot és több órányi felesleges munkát takarít meg a számunkra.
  • Rengeteg további dolgot támogat: egy modern IDE rengeteg egyéb dolgot támogat (adatmodellezés, unit tesztelés és számos egyéb funkció).
  • Teljesen testre szabható: mindezeken túl egy modern fejlesztői környezet igényeid szerint testre szabható. Rengeteg beállítás és letölthető plugin segít abban, hogy a lehető legkényelmesebben és leghatékonyabban tudjunk dolgozni.

Java integrált fejlesztői környezetek – melyiket válasszam?

A legnépszerűbb ingyenes elérhető Java integrált feljesztői környezetek az IntelliJ IDEA Community Edition, az Eclipse és az ezeknél jóval kisebb és nehézkesebb Netbeans. Az, hogy a programozó melyiket választja, egyrészt vallási kérdés: mindegyikük azért van a piacon, mert hatékonyan lehet velük dolgozni.

Ha a jövőben alkalmazottként szeretnél dolgozni, a munkaadód is jó eséllyel megmondja, hogy melyik IDE-t használd, mert ha valami probléma adódik a környezettel, amit hirtelen meg kell oldani, akkor így könnyebben tudtok egymásnak segíteni. Lehetséges az is, hogy előfizetnek neked egy fizetős verzióra, mert a fejlesztéshez szükségesek azok a funkciók, amiket az tartalmaz.

Az IntelliJ IDEA eredetileg Android programozásra készült, később beleépítették az összes keretrendszer használatának lehetőségét. Akik szeretik, általában azt mondják, hogy a kódfelismerő funckiója intelligensebb, mint a piacon lévő többi IDE-é. Sokan azt írják, hogy ha szeretnél fizetni, akkor valóban az IntelliJ IDEA szoftvere a legjobb, de az Eclipse a legjobb ingyenes megoldás. Egyrészt azért, mert rendkívül alacsony a gépigénye. Ez a bejegyzés egy rettentő komprehenszív elemzést végzett az IntelliJ vs. Eclipse témakörről. A lentiekben egy kis segítséget szeretnék adni, hogy mikor melyik integrált fejlesztői környezetet érdemes használni.

Mikor melyiket használjam?

Az alábbiakban leírok néhány tényt az Eclipse-ről és az IntelliJ IDEA-ről:

  • Az Eclipse-nek sokkal kisebb a rendszerigénye
  • Az Eclipse-nek jelentősen jobb a memóriamenedzsmentje
  • Az Eclipse gyakorlatilag minden egyéb programnyelvet támogat, mivel open source, és ezért sokkal dinamikusabban fejlődik
  • Az IntelliJ jónéhány más programnyelvet támogat, de kevesebbet mint az Eclipse
  • Az IntelliJ IDEA Java-n belüli kódfelismerő-és javító funkciója egyértelműen jobb
  • Felhasználói élmény szempontjából az IntelliJ bizonyul jobbnak

Röviden tehát nincs egyértelműen, minden egyes esetre jobb választás, viszont néhány tanulság leszűrhető:

  • Ha lassabb, régebbi, gyengébb teljesítményű számítógéped van, az Eclipse egész biztosan jobb választás.
  • Ha egyéb programnyelveket is ki szeretnél próbálni ugyanazon az IDE-n belül, és később full-stack programozással szeretnél foglalkozni, az Eclipse valószínűleg jobb választás.
  • Ha back-end programozó szeretnél lenni, és jó eséllyel Java lesz a fő profilod, fontold meg az IntelliJ használatát.
  • Ha Android programozással szeretnél foglalkozni, az IntelliJ IDEA lesz a megfelelő IDE.

A győztes tehát…

Amint ebből az elemzésből és az előzőekből is kiderül, nincs egyértelmű győztes, de az látszik, hogy a két integrált fejlesztői környezetnek mások az erősségei és gyengéi. Egy biztos: ha ezek közül valamelyiket választod, akkor a nagy közösség miatt sokkal gyorsabban kapsz választ a kérdéseidre, mintha egy kisebbet használnál.

Én back-end fejlesztőként erős Android-os érdeklődéssel fejlesztésre az IntelliJ IDEA-t jobban szeretem, de oktatni általában az Eclipse-ből szoktam.


Világos vs. sötét témák

Az előzőekben felsorolt IDE-k mindegyike támogatja a világos és a sötét témákat.

Integrált fejlesztői környezetek - IntelliJ Community sötét téma
IntelliJ – sötét téma
Integrált fejlesztői környezetek - Eclipse világos téma
Eclipse – világos téma

A legjobb tanács ezzel kapcsolatban az, hogy használd azt, amelyik a szemednek pihentetőbb. Én általában a természetes fény függvényében szoktam váltogatni: alapértelmezetten sötét témát választo, de ha nagyon nagy mennyiségű napfény jut be az irodába, ahol dolgozom, akkor világosra váltok.

Ez egyrészt megszokás, másrészt stílus kérdése, viszont legalább ugyanilyen fontos, hogy figyeld, hogy a szemed hogyan reagál az egyes témákra, és ne terheld túl!

Köszönöm, hogy ismét velem tartottál. Amennyiben hasznosnak találtad az itt leírtakat, kérlek, oszd meg, hogy a barátaidhoz is eljuthasson!