fbpx

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!

Java programozás kezdőknek

Java programozás kezdőknek

Minden hosszú út során az egyik legnehezebb dolog az elindulás, és ez igaz a Java programozás kezdőknek szóló tananyagokra is. Elkezdeni és kitartani nehéz. Akkora hegynek nézünk elébe, hogy sokszor elszédít minket, és szinte bátorságunkat szegi az önbizalomhiány, bizonytalanság, a sejthető nehézségek okozta szorongás.

Mit tehetünk ellene? Szembenézünk vele, a szorongás óriási hegyét racionális alapon kisebb, meghódítható dombokra, félelmekre bontjuk, majd egyesével bevesszük mindet, tudással, tanulással, bátorsággal.

„Az elégedett és boldog élet kulcsa a tanulás és az öröm összekapcsolása. Az öröm nélküli tanulás kimerít, a tanulás nélküli öröm pedig rendkívül unalmas.”

Richard David Precht

Ízelítő mai blogunk tartalmából:

  1. Mi az a Java?
  2. Miért pont a Java?
  3. Mi az a Java Virtuális gép?
    1. Classloader
  4. Garbage collector
    1. Execution engine
  5. Mik azok a változók?
  6. Mik azok az operátorok?
  7. Mik azok a vezérlő szerkezetek?
  8. Hogyan tanulhatsz még hatékonyabban?
  9. Teszteld a tudásod!

Java programozás kezdőknek? Vágjunk bele!

Mi az a Java?

Ha csak egyszer is rákerestél a Java nyelvre korábban, akkor már kívülről fújod, hogy objektum orientált, platformfüggetlen, robusztus, általános célú, magas szintű programozási nyelv. Szintaxisa hasonlít a C-re és C++-ra. Az objektumorientáltság egy nagyon fontos része a nyelvnek, mely annyit tesz, hogy az objektumok szerint csoportosít és nem az objektumok által elvégzett feladatok alapján. Az objektumok változókból és a hozzájuk tartozó metódusokból felépülő egységek. Lényegében a valódi életünkben is objektumokkal vagyunk körbe véve (pl. autók) és ezeknek is vannak változói (pl. sebességük). Ezért áll közel az emberi gondolkodáshoz is a Java programozás, hasonlóképp kell gondolkodni ebben is.

Miért pont a Java?

A Java nem csak egy programozási nyelv, de egy ún. platform és middleware is. A middleware egy olyan szoftvert jelent, ami a számítógépes OP rendszerek mögött működő alkalmazás, és feladata az adatkezelés és kommunikáció különböző alkalmazások között. A Java SE pedig egy népszerű platform, mely tartalmazza a JVM-et (Java virtuális gépet, ami lényegében a futtatókörnyezet), és a Java package-eket, könyvtárakat. Nem csak asztali és kézi számítógépeken, de még Android platformra is egy Java szerű nyelvben fejlesztenek, így méltán lett híres és népszerű. Toplistás, vezető programozási nyelv évek óta, akármilyen felmérést is nézel.

Java programozás kezdőknek? - kezdjük az alaplapnál
Neked milyen géped van?

Mi az a Java virtuális gép?

A JVM működését le lehet írni néhány szóban és több ezer oldalban is. Igen összetett feladatokat végez, nagyon izgalmas. Legfőbb feladatai közé tartozik a Java bájtkód futtatása, melyet classloader, garbage collector és execution engine segítségével végez. Nézzük meg egyesével, mik is ezek!

Classloader

A classloader feladata a bájtkód előkészítése, betöltése a JVM-be. Része a futtatókörnyezetnek. A Java futtató környezet indulásához 3 classloadert használ:

  1. bootstrap classloader
  2. extensions classloader
  3. system classloader

Garbage collector

A garbage collector a megfelelő memóriakezelés egy formája. Célja, hogy a memóriában levő, már nem használatos objektumokat eltávolítsa, helyet és kapacitást szabadítva fel ezáltal.

Jelenleg a G1 GC, azaz Garbage First Garbage Collector az aktuális, melyet először a Java 7-ben vezettek be kísérleti jelleggel, és Java 9 óta ez az alapértelmezett garbage collector. Ezt főleg több processzoros, sok memóriával rendelkező eszközökre tervezték. Ennek működéséről részletes, animációval ellátott előadást tartott András tavaly a Schönherz bázison, jó szívvel ajánlom figyelmedbe YouTube csatornánkat, ahol ezt teljes hosszában meghallgathatod.

Execution engine

Ez pedig a végrehajtó motor.

Class loader
A kép forrása: javatutorial.net/jvm-explained

Mik azok a változók?

A változók adatok tárolására szolgáló speciális adatelemek, melyek mindegyike egy azonosítóval van ellátva. Java-ban a változók adattípusát létrehozásukkor mindig meg kell adni, és ez egyben megszabja azt is, hogy milyen értékeket vehet fel a változó. A változó nevét érdemes beszédes formában megadni, hogy később javítsa a kód olvashatóságát. Minden változónak van egy érvényességi köre is, amely megadja, hogy milyen határokon belül érvényes. Az, hogy hol vesszük fel a változót egyértelműen meghatározza azt is, hogy mettől-meddig érvényes.

Mik azok az operátorok?

Lényegében hasonlók, mint a matematikában a műveleti jelek, segítenek abban, hogy különböző műveleteket hajthassunk végre a programunkban, pl. összeadhatunk vagy kivonhatunk egymásból két változót. Megkülönböztethetünk:

  1. relációs: kisebb, nagyobb, egyenlő
  2. logikai: és, vagy, tagadás
  3. aritmetikai: + , – , * , / , %
  4. értékadó: változó = kifejezés

és egyéb operátorokat.

Mik azok a vezérlő szerkezetek?

Már tudjuk, hogy vannak tehát változóink és azokkal mindenféle műveleteket végezhetünk. A vezérlő szerkezetek abban segítenek minket, hogy ezeknek a műveleteknek a végrehajtását vezéreljük. A programunk helyes működését végül igazából az adja, hogy a megfelelő sorrendben a megfelelő műveleteket a megfelelő számban hajtatjuk végre a géppel.

A vezérlő szerkezeteknek három fő típusa ismert:

  1. döntéshozó utasítás: egy feltételtől függ, hogy adott utasításokat végrehajtsunk vagy ne
  2. elágaztató utasítás: egy feltételtől függ a folytatás módja
  3. ciklusszervező utasítás: egy feltételtől függően többször végrehajtásra kerül az adott programrészlet

Ezeket aztán akár egymással, akár önmagukkal kombinálva rengeteg lehetséges út alkotható. Más nyelvekben találkozhatsz még a goto utasítással, de a Java ezt nem támogatja, mert sok esetben túl szövevényes, átláthatatlan kódot eredményezhetne és ez szándékainkkal ellentétes a mindennapokban.

További programozással kapcsolatos cikkek: Programozás

Programozás tanulás monitor előtt ülve
Te kitől szoktál kérdezni, ha elakadsz?

Hogyan tanulhatsz még hatékonyabban?

Sokan a gyakorlatban hisznek, mások a pontos elméleti alapokkal szeretik kezdeni a tanulást. Tapasztalatunk, hogy mindkettőre szükség van, lehetőleg egyszerre, egymás mellett. Ha egyedül nehézkesen haladsz otthon a Java nyelv tanulásával, rengeteg kérdésed merül fel, melyekre nem találod a választ, érdemes lehet átolvasnod képzésajánlónkat: Programozás alapjai tanfolyam

Ahhoz, hogy megtanulj programozni, nincs másra szükséged, mint türelemre, kitartásra és alap logikai készségekre. De a türelem a legfontosabb mind közül. Merthogy ez nem fog sikerülni egyik napról a másikra. Időre van szükség ahhoz, hogy megemészd és magadévá tedd a tanultakat, és sokszor csak napokkal, sőt hetekkel később „esik le” egy-egy megoldás. Ezt ki kell tudni várni.

„Az emberek úgy gondolják, hogy a számítástechnika a zsenik művészete, de a valóság az ellenkezője: sokan csinálnak olyan dolgokat, amelyek egymásra épülnek, mint mini kövekből a fal.”

Donald Kunth

Milyen tanulástechnikákat ismersz?

Sokat tudsz javítani a tanulási hatékonyságodon, ha megfelelő tanulási körülményeket teremtesz magadnak. Programozni tanulni nem lehet 20 perc alatt. Szükség van összefüggő időre, hogy legyen lehetőséged elmélyedni abban, amit csinálsz. Elcsípni a logikát és tovább gondolni. Ehhez nyugodt körülményekre és időre van szükség. Ráadásul bele kell gondolnod abba is, hogy soha nem fogsz a végére érni. Folyamatosan tanulnod kell, mert olyan sebességgel halad a technológia, hogy leállnod soha nem szabad, mert nem fogsz tudni lépést tartani a munkádban. Épp ezért különösen fontos az, hogy megfelelő tanulási szokásokat alakíts ki, hiszen jó eséllyel amíg aktív munkát végzel, ezt a szokást fogod ismételni nap nap után.

Hozzászólásban mesélj nekünk:

  • Te hogyan tanulsz?
  • Kézzel írt jegyzeteket készítesz?
  • Könyvből vagy app-okból tanulsz szívesen?
  • A tutorialokra esküszöl vagy a mentorprogramokra és kurzusokra?
  • Milyen tapasztalataid vannak?

Teszteld a tudásod!

Ha az itt olvasottak alapján szívesen felmérnéd, mit sikerült eddig elsajátítanod a Java programozás kezdőknek tananyagokból, teszteld a tudásod itt: Programozási alapfogalmak