Balogh Péter emlékére

Mély megrendüléssel tudatjuk, hogy oktatói csapatunk egyik tagja, Balogh Péter elhunyt.

Ismeretségünk az ELTE MSc informatikatanár szakán kezdődött, ahová egy évfolyamra jártunk és 2005-ben végeztünk. Az egyetemi időszak alatt az általunk Kockakörnek hívott 6-8 fős csapat tagjaként mindannyian aktívan támogattuk egymást. Akkoriban ő Kecskeméten lakott én pedig Cegléden, így évekig vonatoztunk többen is együtt a csoportból a fővárosba – a MÁV Szeged-Budapest vonalán – és küzdöttünk az ELTE-s diplomáért. Sokat ötleteltünk, építő jellegű kritikával segítettünk egymást a szakdolgozatírásban, kölcsönösen számíthattunk egymásra.

Magunk között az ELTE-s zh-kat csak IQ-tesztnek hívtuk, hiszen általában mindig olyan feladatokkal találkoztunk, amikre bármennyit készültünk is, elsőre minden alkalommal ismeretlennek és megoldhatatlannak látszottak. Belemélyedve a papíros és kódolós feladatokba, már korántsem bizonyultak annyira elvontnak és persze megugrottuk az akadályokat.

Az egyetem után – változó intenzitással, de – többen is együttműködünk a Kockakörből. Online gyakrabban, de offline is találkozunk néhány alkalommal évente. Mindannyian fejlesztünk és tanítunk is. Változatos, hogy ki milyen területtel foglalkozik éppen, de a programozás, mintapéldák, módszertani kérdések, érdekes szakmai problémák időről-időre felbukkannak. Körkihívásokat is szoktunk csinálni. Aggteleken 2-3 évente nyáron néhány napot azóta is eltöltünk.

Péter szakmai kíváncsisággal fogadta, amikor összeállítottam 2009-ben a Programozási alapok és 2010-ben a Programozási technológia tankönyveimhez tartozó Java példatárakat. Sok ötletet kaptam tőle, több evolúciós feladat kidolgozásában is segített. Szakmai publikációimat mindig véleményezte. Ha adódott lehetőség, akkor még az előkészítés fázisában, vagy ha ez éppen nem úgy alakult, akkor utólag mindig értékelt, reagált, javasolt. 2012-2014-ig több pályázaton dolgoztunk együtt, főként tananyagfejlesztéshez kötődően. 2014-2018-ig több webes alkalmazás fejlesztésében, karbantartásában, továbbfejlesztésében közreműködtünk: terveztünk, elemeztünk, implementáltunk. Több szakmai továbbképzésen is részt vettünk közösen.

Az it-tanfolyam.hu projekthez Péter 2019 tavaszán csatlakozott. Több vidéki és külföldi csoportunknak tartott Java SE és EE szoftverfejlesztő tanfolyamokat és speciális Java tematikával több, egyedi céges tréninget is. Lelkesen blogolt is velünk, már évek óta. Amikor bemutatkozó szöveget kértem tőle az Oktatók lapjára, ezt írta: „Saját bevallása szerint munkamániás, illetve kommunikációs készsége jóval az átlag IT kocka szintje felett van és ennek minden előnyére igyekszik építeni. Szoftvertervezést és programozást tanít magyar, angol és német nyelven is. Szakmai kihívásként tekint az oktatásra.” Mottót is kértem tőle: „Nem kell mindig tökéletesnek lenni. De ha itt az ideje, akkor tökéletesnek kell lenni.”

2020. márciusában összeültünk ünnepelni – a szokásos KFC-s vödör csirkével – néhány nappal a 38. születésnapja után, amikor így fogalmazott: „Nem lesz több születésnapi csirkém. Komoly baj van. Ezen a világon néhány hónapom van hátra. This is already the end of the road, nothing can be done.” Szokása volt, hogy privát beszélgetések közben egy-egy gondolatmenetének lezáró mondatát angolul, németül, franciául vagy oroszul mondta. Többé ezt nem hoztuk szóba, mert így kérte. Aktívan dolgozott tovább velünk, mert így akarta. Tegnapelőtt küldte utolsó előadásának vázlatát a kapcsolódó Java forráskóddal együtt, amit már novemberre készítettünk elő a Kutatók éjszakája rendezvényünkre és mára egyeztettük, hogy megbeszéljük. Tegnap elment.

Péter lelkes sci-fi rajongó volt. Sokszor beszélgettünk kedvenc sorozatairól, karaktereiről. Star Trek, Végtelen határok, A bolygó neve: Föld, Orion űrhajó… Egyszer azt mondta: „Azért nézünk a tizenéves fiaimmal együtt sci-fit, hogy lássanak alternatív világokat, elképzeléseket. Ezzel kizökkenünk a hétköznapokból. Fontos, hogy elgondolkodjanak arról, hogy lehet(ne) másképp is élni, élményeket szerezni, látni, tapasztalni. Létezhet(né)nek más prioritások is.”

A Star Trek Voyager sorozat 5. évad 11. Látens kép című epizódjában a csillaghajó legénységének egyik tagját Janeway kapitány ezekkel a szavakkal búcsúztatja a temetési szertartáson: „We are assembled here today to pay final respects to our honored dead… His intelligence and his charm have made our long journey home seem not quite so long. As he continues on a journey of his own. We will keep him in our hearts and in our memories.”

Ezzel búcsúzom Pétertől.

Szoftverfejlesztő mémek

IT mémek

IT mémekAz IT kockáknak speciális humorérzéke van. Nekünk külön kategóriákba sorolható mémek készülnek és persze magunk is gyártjuk időnként. Az alábbi összeállítást szabadon keresgélve a weben szedtem össze és csoportosítottam a szoftverfejlesztés, programozás ismert szakterületeihez, folyamataihoz kötődően. Nem fordítottam le angolról magyarra a szövegeket. Aki érti, úgyis érti. Aki nem, úgyis továbbgörget. Enjoy!

Alapelemek, ciklusok

Az algoritmusok alapvető építőelemeivel, egyben a strukturált programozás alapfogalmaival illik tisztában lenni. Ismerni kell ezek működését, egymásba ágyazásának lehetőségeit. Szekvencia, szelekció, iteráció. Időnként döntéseket is hozni kell. Néha úgy érezzük, hogy túl korán, néha pedig későn. Érezzünk rá, mikor jó. Sosem árt lezárni egy-egy blokkot és tudni jól egymásba ágyazni amit kell. Azért a metódusokkal csínján kell bánni.

IT mém 1

Tisztázni kell bizonyos dolgokat

Nem érthetünk mindent és persze nem érthetünk mindenhez. A dolgokat különböző szemüvegen át látjuk, hiszen eltérő tapasztalatokkal rendelkezünk. Persze hasznos, ha egy csoportban értjük egymást, vagy legalább egy valaki tisztában van az ügyfél igényével. J Például a webfejlesztés során el kell fogadni, hogy vannak látványos, azonnali élményt nyújtó változtatások (pl.: design), és hosszú távon megtérülő háttérmunkák (pl.: technológiai SEO).

IT mém 2

Tervezni is tudni kell(ene valakinek)

Azért nem árt a precíz, pontos, konkrét feladatspecifikáció. Mindez akár több szinten is megfogalmazva: fokozatosan közeledve az ügyfél bölcsészmondataitól a kockaságig. Hasznos, ha nem csak a határidő motivál. Nyilván a pénz is. 😉 Érdekek mindig ütköznek, de ezt is meg kell tanulni elfogadni/kezelni. Néha csupán az erősebb kutya esete áll fenn, néha a hatáskörig is megy a történet.

IT mém 3

Ne feledjük: mindenki mást gondol

Mivel a különböző kapcsolódó szakterületeken tevékenykedő szakemberek szókincse eltérő, így ezekből gyakori és tipikus félreértések születhetnek. Ha a fejlesztés hosszabb ideig tart, akkor menet közben is változhatnak – és változnak is 😉 – az igények. Célszerű lenne folyamatokban gondolkodni és feltenni némi empátiával azt a kérdést, hogy igazából mit is akar az ügyfél? Vajon milyen problémát szeretne megoldani, milyen folyamatot tenne könnyebbé a fejlesztendő/karbantartandó szoftverrel? Egy bizonyos szint felett az interdiszciplináris megközelítés elengedhetetlen. Visszacsatolás során kiderül(het), hogy az ügyfél hogyan használja a szoftvert. Lehet, hogy teljesen másképpen, mint ahogyan gondolnánk. Örök bölcsesség: a tervezésre fordított idő később mindig többszörösen megtérül.

IT mém 4

IT mém 5

Módszertanok

Előbb-utóbb eljön az a szint, ahol már a különböző módszertanok is megjelennek. Ezekhez is alkalmazkodni kell. Minden fejben kerül helyre. Ezek többnyire a folyamatokhoz, a napi/heti munka szervezéséhez/ütemezéséhez is kapcsolódnak.

IT mém 6

Amikor már végre kódolunk…

Sokféleképpen mérhető/értékelhető egy fejlesztő munkája. Nyilván nem kilóra, például a megírt forráskód sorainak számával. Persze egy komplex szempontrendszernek lehetnek/vannak kvalitatív és kvantitatív mutatói.

IT mém 7

… kiderül, hogy persze semmi sem könnyű

Sosem az számít, hogy milyen hatások érnek bennünket. Az a fontos, hogyan reagálunk ezekre. Semmi sem könnyű, de természetesen erről is különbözőképpen gondolkodunk. Helyén kell tudni kezelni a dolgokat és akkor minden fenntartható hosszú távon. A programozást elkezdeni sosem késő, vagy másképpen: nem lehet túl korán kezdeni? Mindez nézőpont kérdése.

IT mém 8

A tesztelés sem árt…

Legyünk tisztában a tesztelés alapjaival és folyamatával is. Ha lefuttatjuk még egyszer az összes tesztesetet, azzal biztosan nem rontunk el semmit. 😉

IT mém 9

… ahogyan némi dokumentáció sem

Sokan és sokszor nem szeretünk dokumentálni. Bárki bármit mond és tapasztal, a dokumentálás szükséges és hasznos. Ugye senki sem gondolta, hogy ebből a mém gyűjteményből Chuck Norris kimaradhat? 😉

IT mém 10

Többnyire mindez csoportmunkában zajlik

Tisztában kell lennünk a helyünkkel a csoportban: feladatkör, pozíció, felelősség, szerep, kommunikáció. Három fontos kulcsszó: konfliktuskezelés, időmenedzsment, érdekérvényesítés. És persze a hatékony csoportmunkához szükséges soft skillek is előtérbe kerülnek. Kevesek működnek alapból/ösztönösen jól együtt csoportban, a többségnek ezzel tudatosan foglalkoznia kell. Ne éljünk a tipikus csoportmunka hozzáállással: „megcsináltam”, „elrontottuk”. Ezzel megvolt a kötelező cicás kép, már triplán is. 😉

IT mém 11

Tudni kell tanulni is a programozást

A programozási nyelvek csupán eszközei annak, hogy amit kigondoltunk, megterveztünk, modelleztünk, azt megvalósítsuk és működjön asztali gépen, böngészőben, telefonon. Elveket, koncepciókat is meg kell érteni. Kihagyhatatlanok az alapvető algoritmusok, adatszerkezetek. Meg kell ugrani az objektumorientált paradigmát is. A funkcionális paradigma is egyre népszerűbb. Hasznos, ha a tanulás során el tudjuk fogadni a tapasztaltabbak véleményét, javaslatait. Többnyire elsőre nem alkotunk tökéleteset, de minden hibából tanulunk. Tudomásul kell venni: nincsenek átugorható lépcsőfokok. Egyszerűen kell egy kritikus tömegű önálló gyakorlás és utána jön a sikerélmény.

IT mém 12

Ha elszántad magadat és szoftverfejlesztést/programozást tanulnál Java nyelven, akkor jó helyen jársz. A Jelentkezés lapon követheted, mikor indulnak csoportjaink.

Logikus gondolkodás teszt

Mensa logó

Mensa logóAz elmúlt 20 évben rengeteg logikai feladatokból álló tesztet állítottam össze. Kezdetben iskolai szakkörökhöz, versenyekre való felkészítéshez, tehetséggondozáshoz használtam ezeket. Ezután következett a Logikus gondolkodásra nevelő Diákműhely, amelyben ez már professzionális lett. Végül több cég/vállalkozás számára állítottam össze többféle programozói, szoftverfejlesztői tanfolyam tematikájához illeszkedően toborzáshoz, felvételihez, jelentkeztetéshez, kiválogatáshoz, szakmai interjúk során használható tesztet/feladatsort. Ezek eltérő igények szerint mérik/skálázzák a logikus gondolkodást, a problémamegoldást, az algoritmikus készségek meglétét, az összefüggések/szabályok felismerésének és alkalmazásának szintjét, a szakmai felkészültséget.

A logikus gondolkodáshoz kötődően rendszeresen szoktam előadásokat is tartani például országos rendezvényeken (Kutatók éjszakája, Szakmák éjszakája), tehetséggondozó versenyek szakmai napjain tanároknak, diákoknak, főiskolás/egyetemista Erasmus hallgatóknak.

Korábban blogoltam a népszerű Hány éves a kapitány? címmel, ahol ajánlottam 8 db magyar szakirodalmat a témában.

Most angol Mensa IQ teszt szakfolyóiratból [1, 2, 3, 4, 5] válogattam össze egy 10 feladatból álló, logikus gondolkodás mérésére alkalmas tesztet. A válaszok/megoldások név és e-mail cím megadásával automatikus válaszlevélben a bejegyzés végén hozzáférhetőek.

Logikus gondolkodás teszt – feladatok

1. feladat
Az alakzatok pozitív egész számokat jelölnek. Mi kerül a kérdőjel helyére?

logikai-feladat-01

 

2. feladat
A betűk és számok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-02

 

3. feladat
A számok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-03

 

4. feladat
A számok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-04

 

5. feladat
Folytatva a sorozatot mennyi az idő a 4. analóg órán?logikai-feladat-05

 

6. feladat
A számok elrendezése logikus. Mi kerül a kérdőjel helyére?logikai-feladat-06

 

7. feladat
A táblázatban a piros mintával kitöltött cellák elhelyezkedése logikus. Honnan hiányzik 1 db piros mintával kitöltött cella?logikai-feladat-07

 

8. feladat
A szimbólumok elrendezése logikus. Mi kerül a kérdőjel helyére?

logikai-feladat-08

 

9. feladat
56 db jutalomfalattal megetethető 10 háziállat, amelyek vegyesen macskák és kutyák. A macskák 5 db-ot, a kutyák 6 db-ot kapnak és végül marad 1 db jutalomfalat. Hány macska és hány kutya kap enni?

logikai-feladat-09

 

10. feladat
A 7 szám közül 6 párba állítható. Melyik szám marad ki?logikai-feladat-10


Logikus gondolkodás teszt – megoldások

    Kommunikáció a Mars és a Föld között

    Mentőexpedíció

    MentőexpedícióBevezető, avagy a szomszéd messze van

    Képzeljünk el egy helyzetet, amikor egyik barátunkat, családtagunkat felhívjuk telefonon, és videótelefonálást folytatunk vele, mobiltelefon segítségével egy látványos helyről. A mai technológia segítségével ennek a lehetősége már bárki számára hozzáférhető áron rendelkezésre áll. Ráadásul a kommunikáció szinte tökéletes, láthatóan késleltetés nélküli. Ám tételezzük fel, ha ezt a kommunikációs tevékenységet a Föld két távolabbi pontja között végezzük, mondjuk Magyarországról folytatunk videótelefonálást a 18000 km-re fekvő Új-Zélandra. A helyzet minimális szinten megváltozik, hiszen a nagy távolság következtében a fizikai törvényei itt már emberi léptékben is érzékelhető korlátot szabnak a kommunikáció sebességének. Persze nyugodtan mondhatnánk azt, hogy na és? Joggal, hiszen az átlagember számára fel sem tűnik, hogy az általa halott beszéd, és az általa látott kép a valóságban kevesebb, mint egy másodperc késéssel érkezik meg a küldőtől a fogadóhoz.

    Ha ezt elképzeltük, és megvan a 18000 km-nyi távolság és a közel 1 mp-es késleltetés, ugorjunk egy nagyobb léptékre, melynek apropójaként hívjuk fel barátainkat telefonon a Marson. Most csak egy egyszerű példa kedvéért, eltekintve a légköri jelenségektől, a műholdak aktuális helyzetén át, a napszél tevékenységig minden más további hatástól, a Mars-Föld távolság átlagos értékével számolva. Legyünk türelmesek, hiszen a bolygók közti aktuális távolság függvényében, a fénysebesség korlátainak figyelembevételével a késleltetés meglehetősen nagy lesz. Fel fogják venni a telefont. Ne, még ne tegyük le! Igen, tudom, hogy már eltelt tíz perc, de várjunk még! Biztosan fel fogják venni a telefont. És ez a 12. percben meg is történik. A vonal végéről nem hallunk semmit? Nem csoda. Hiszen a mi jelentkezésünk 12 perc alatt ért a Marsra, és újabb 12 percet kell várni arra, hogy meghalljuk barátaink reagálását. Ugye, hogy nem is olyan egyszerű ez a bolygóközi kommunikáció?

    Egy kis matematika az előzőekhez:

    A Föld-Nap átlagos távolság 8,3 fényperc, ami 149,6 millió km-es távolságot jelent. Ezt alapul véve, és mivel tudjuk, hogy a Föld-Mars átlagos távolság 225 millió km, könnyen kiszámolható, hogy a két bolygó között a fény fotonjai 12,48 perc alatt teszik meg az utat. Tehát jelen technológiákkal (a két bolygó átlagos távolsága esetében) 12,48 perc alatt lehet adatot továbbítani a két égitest között. Érdekesség, hogy 2003-ban a Mars mindössze 56,3 millió km-re volt a Földtől. Gyors számtan: a távolság 3,12 fényperc. (Legközelebb 2287-ben lesz ilyen alkalom.) Azonban 2005-ben a vörös és kék bolygó mértani távolsága elérte a 402,3 millió km távolságot, azaz a 22 fénypercet. További gondolatébresztőként megemlítendő, hogy minden évben van egy két hetes időablak, amikor a Mars a Nap mögé bújik, ezáltal a kommunikáció teljesen megszakad vörös szomszédunkkal. Ebből aztán kiderül, hogy adott dátumtól függően, a Mars és a Föld között általában 7 és 44 perc között zajlik le egy „kérdés+válasz” jellegű kommunikáció.

    A Mentőexpedíció című film

    A fenti bevezetőből kiindulva, vegyük górcső alá az Andy Weir 2011-es A marsi című regénye alapján készült 2015-ös Mentőexpedíció című filmet. Aki nem ismerné, annak röviden annyit érdemes tudnia, hogy egy kutatócsoport heves időjárási tevékenység miatt menekülni kényszerül a Marsról. A csapat egy ember híján sikeresen eljut a felszállásra kész űrhajóig, amellyel feljutnak a űrben keringő Hermes anyahajóra. Később a Marson hagyott űrhajósról kiderül, hogy a viharos erejű szelet túlélte, bár ő maga, és űrruhája is megsérült. A következő jelenetekben Mark Watney űrhajós számára realizálódik, hogy egyedül maradt a bolygón, a következő küldetés pedig négy év múlva érkezik. Tehát három fő feladata van:

    • Egy ember számára lakhatatlan bolygón, a rendelkezésre álló eszközökből biztosítania kell az életben maradásához szükséges feltételeket, mint amilyen az élelem, a víz, és az oxigén. Ez megoldhatónak tűnik, hiszen főhősünk botanikus. Növénytermesztéssel létrehozható egy alacsonyszintű ökológiai körforgás.
      Megjegyzés:
      Fontos megemlíteni, hogy a marsi talaj a nagy hőingadozások miatt rendkívül porózus, továbbá olyan anyagokat tartalmaz (például földpátok, piroxének, olivinek), amik a vízzel vegyülve az emberi szervezet számára méregként hatnak. Például a marsi por belélegzése során, a tüdőben található nedvességgel érintkezve gáz formájában, vagy a véráramba jutva halált kiváltó vegyületek jöhetnek létre. Ehhez képest Mark, ránézésre több száz kg-nyi marsi talajt a lakrészbe talicskáz, és vizzel öntöz. Az ehhez szükséges vizet, az egyik űreszközben található hidrogén elégetésével nyeri, a marsi talajt pedig emberi végtermékkel trágyázza, miközben a növények oxigént termelnek. Ez filmben jól néz ki, de fent már kifejtettem, hogy a marsi talaj az emberi szervezet számára veszélyes lehet. További kérdést vet fel, hogy az emberi végtermék vajon megfelelő tápanyagokat rejt-e, a burgonya növekedéséhez. Ezen kívül az is kérdés, hogy az a szobányi növény termel-e elegendő oxigént. Mindenesetre főszereplőnk ezen feladatát megoldotta.
      Természetes, hogy ha minden kihívást figyelembe vettek volna a filmkészítők, akkor vagy nem készül el a film, vagy megválaszolják a NASA, valamint más űr- és bolygókutató vállalatok kérdéseit.
    • Második feladataként meg kell oldania, hogy a marsjáró roverrel eljusson a 3200 km-es távolságban fekvő Schiaparelli-kráterhez, ahová négy évvel később érkezik a következő küldetés legénysége.
      Probléma:
      Ez számos problémát vet fel, főleg mert a marsjáró egy feltöltéssel elérhető hatótávolsága csak 35 km, ráadásul a járgány fűtése rögtön elviszi a rendelkezésre álló energia felét. Ezen hátrányok meglehetősen érdekesek annak tükrében, hogy a mai járművek akár 350 km-es távolságot is könnyűszerrel megtesznek, a marsjáró légmentes kialakítása és megfelelő szigetelő anyagok használata révén pedig a fűtésre fordított energia jelentősen csökkenthető. Főleg ha elképzeljük milyen fejlesztések zajlanak le a 2030-as évekig. Tény persze, hogy a laza marsi talajon, egy teherautó méretű, nyolckerekű járművel közlekedni több energiát igényel, mint egy kisebb négy kerekű járművel haladni az aszfaltozott úton, azonban arról se feledkezzünk el, hogy a Mars felszíni tömegvonzása harmada a Föld felszíni tömegvonzásának. Mindenesetre a filmbeli főhősünk a fűtés problematikáját a radioizotópos termoelektromos generátor segítségével oldotta meg, a marsjáró hatótávját pedig egy másik, amúgy megsérült marsjáró akkumulátorainak felhasználásával duplázta meg. Így a mozi szerint 70 km távolságra tud eljutni egyetlen feltöltéssel. Ekkor kipakolja a napelem cellákat, és újratölti az akkumulátorokat.
    • Továbbá fel kell vennie a kapcsolatot a Földdel. Ez utóbbinak nem lenne akadálya, azonban a vihar tönkretette a kommunikációs berendezéseket, valamint az antennát is. A filmtől elvonatkoztatva egy ilyen eset vélhetően nem történhetne meg, ugyanis a tartalék rendszer rendelkezésre állna (dobozokban földbe ásva, dobozokban bent a lakrészben, vagy bármi más módon, amit a szakemberek alkalmasnak találnak erre a célra). A kommunikáció a Földdel gyakorlatilag életfeltétel. Máskülönben az is igaz, hogy a tartalékrendszerek Marsra szállítása extra költségekkel járna.

    A film tartalma, valamint a kialakult problémák ismertetése után merüljünk bele a részletekbe, valamint az érdekes, ismert és még ismeretlen fogalmakba!

    A sol fogalma

    A történet teljes egésze alatt többször elhangzik egy csillagászati fogalom, ez pedig a sol. A sol tulajdonképpen a szoláris nap rövidítése, azonban használata némi bonyodalmat okoz, hiszen a sol-t, mint mértékegységet a NASA 1976-ban az első Viking űrszonda landolásakor, a marsi napok múlásának mérésére vezette be házi használatra. Jelenleg a sol egy hivatalosan nem elfogadott időegység, azonban általánosan elfogadható, hogy 1 sol esetében 1 szoláris marsi nap hosszáról beszélhetünk.

    Kiegészítés:

    Noha logikus lenne olyan egyértelműsítő fogalmakat bevezetni, hogy 1 földi sol, vagy 1 marsi sol, ennek ellenére az egyébként sem hivatalos időegységet ne bonyolítsuk tovább! Összehasonlításképpen 1 földi szoláris nap ~24 óra 3,5 percnek, 1 (marsi) sol pedig ~24 óra 39,5 percnek felel meg. Ez azt jelenti, hogy a Marson egy általános értelemben vett nap hossza több, mint fél órával tovább tart. További gondolatébresztő érdekesség, hogy a Földön a szoláris nap ritkán használatos. A Földön a csillagnapot szoktuk használni, ez pedig közel azonos – 0,008 s az eltérés – a Föld tengely körüli megfordulásának idejével, ami ~23 óra 56 perc. A csillagnap során azt figyeljük meg, hogy – a Földről nézve – az égbolton a távoli csillagok, mennyi idő alatt tesznek meg egy teljes fordulatot. A Föld csillagokhoz mért óriási távolsága miatt a Föld Nap körüli pályán történő mozgása egy nap alatt szinte elhanyagolható tényező. A szoláris nap esetében viszont ezzel a tényezővel is számolni kell, hiszen a Föld-Nap távolság rendkívül kicsi. Mialatt a Föld megfordul a saját tengelye körül, a Nap körüli pályán egy másik pozícióba kerül, ez utóbbi pedig már jelentősen befolyásolja a szoláris nap hosszát.

    Részecske szinten a Marsig tartó út hossza

    A filmben többször is elhangzanak változó utazási adatok arról, hogy mennyi idő alatt lehetséges eljutni a Földről a Marsra, illetve vissza. A jelenlegi technológiákkal ez jellemzően 5 és 10 hónap között változhat, attól függően, hogy éppen milyen a bolygók egymáshoz viszonyított aktuális állása. Az sem mindegy, hogy mekkora energiabefektetéssel szeretnénk elérni a vörös bolygót. Erre a megfelelő indítási ablak 26 havonta alakul ki, ami azt jelenti, ekkor áll rendelkezésre néhány olyan nap, amikor hatékonyan el lehet érni a Marsot. 2018-ban az InSight űrszonda nagyjából 5,5 hónap alatt jutott el a szomszédos égitestre, a kilövéstől a leszállásig számolva.

    Részletek:

    Itt fontos megemlíteni a Hohmann-pályát, mint pályamódosító görbét. Ennek lényege nagyjából úgy néz ki, hogy a Marsra történő utazás során, a Föld körüli pályát a rakétahajtóművek megfelelő ideig történő begyújtásával elhagyjuk. Ezzel a kör alakú pályát egy elliptikus pályára cseréljük le. A gyorsításnak olyan mértékűnek kell lennie, hogy a Nap körüli marsi pályát elérjük. Amikor ez megtörténik, a rakétahajtóműveket ismét be kell gyújtani annak érdekében, hogy az ellipszis alakú pályáról rá álljunk a Mars keringési pályájára. És itt jön képbe a megfelelő indítási ablak, ugyanis a Földről akkor kell elindulni, amikor az ellipszis pálya csúcspontjára érkezve, a Mars még éppen nem érkezett meg. Fontos tudni, hogy a Mars majdnem kétszer annyi idő alatt kerüli meg a Napot, mint a Föld. Tehát a Mars a külső pályán lassabban halad. Ez azt jelenti, hogy ha kicsúszunk az indítási ablakból, akkor a Mars pályáját elérve, a vörös bolygó már mögöttünk lesz. Így gyakorlatilag hónapokig keringhetünk a Nap körül, miközben nem kevés energiát ölünk bele a lassításba, és számos pályakorrekcióba, hogy a Mars utolérjen minket. Korábbi indulás esetén pedig pont azért kell a több energia, hogy hamarabb elérjük a Marsot, majd a nagy sebesség miatt, a találkozóhoz le is kell lassítani.

    Kapcsolatfelvétel a Földdel: a hardver környezet kialakítása

    Miután főhősünk realizálta, hogy egyedül maradt a Mars felszínén, és a következő küldetés csak négy évvel később érkezik, elkezd azon töprengeni, hogyan biztosítsa maga számára az életben maradáshoz szükséges feltételeket. Ezeket a fentiekben már ismertettem. Már csak kapcsolatba kellene lépnie a Földdel. Ekkor születik meg Mark fejében az ötlet, hogy felkutassa a Pathfindert, mely a marsjáróval immáron elérhető távolságba került. A Pathfinder űrszonda megtalálása kommunikációs csatornát nyit a NASA felé. Csupán annyit kell tennie, hogy kiássa, és a vélhetően elhasználódott, tönkrement akkumulátor kazettát kicserélje. A Pathfinder űrszonda a Discovery program második küldetésében vett részt 1997-ben. Feladata a légkör elemzése volt, továbbá magával vitte a kis Sojourner rovert is, mely a kövek vizsgálatát végezte. Felmerül a kérdés, hogy a főhős honnan ért ilyen sok mindenhez, hiszen botanikus. Az igazság az, hogy egy Marsra juttatott embernek nagyon sok mindenhez kell értenie. Kicsiben például egy weblap készítő szakembernek nem árt ha a kódolás mellett vannak grafikai ismeretei is. Egy katonai repülőgép pilótájának sem csak a gépet kell tudnia vezetni, de ahhoz is kell értenie, hogyan éljen túl egy ellenséges területre történő lezuhanást. Lényeg, hogy ha az ember egy adott szakterületen dolgozik, akkor a rá váró kihívásokra gyorsan tudjon reagálni. Feltételezhető, hogy a Marsra utazó személyek egy nagyjából 15-25 éves korban lévő, nagy létszámú, de már erősen megszűrt halmazból kerülnek ki, akiknek a kiválasztásuk után még akár 15-20 évnyi tanuláson és fejlődésen kell átesniük, hogy alkalmassá váljanak egy marsi kutató misszióban betölthető szerepre. A NASA jelenleg már futtat ilyen programot.

    Magyar vonatkozás a filmben:

    A film 48. percének 18. másodpercében, a háttérben lévő polcon egy Rubik-kocka látható.

    Kapcsolatfelvétel a Földdel: a megvalósítás

    Szóval megvan a Pathfinder, és sikerül működésre bírni. Eközben a NASA a műholdak segítségével felfedezte, hogy az űrhajós életben van, és mozgását folyamatosan követte. Mivel ennek művelete prioritásba került, ezért a NASA a Mars körül keringő műholdak pályáját úgy módosította, hogy az eredeti 41 óránként lezajló 17 perces szünet helyett legfeljebb 4 percig tartson egy szünet. Miután a Földön kiderült, hogy Mark a Pathfinder segítségével szeretné felvenni a kapcsolatot a Földdel, a NASA egyből a JPL-t hívta segítségül. A JPL a Jet Propulsion Laboratory, amit Kármán Tódor alapított, és ő volt az első igazgatója is. Rakétafejlesztő központnak indult, ám napjainkban fő területe a bolygókutató eszközök fejlesztése, és üzemeltetése, így a feljuttatott űreszközök kapcsolati csatornájának végpontján is ők vannak. Az ő termékük többek között a Pathfinder is. A Pathfinder orbitális egység nélkül, közvetlenül kommunikál a Földdel. Ez látható is a filmben akkor, amikor Mark az irányított antennát a Föld felé fordítja. Időközben a Földön a JPL kihozza a raktárból a Pathfinder másolatát, majd a két eszközt szinkronizálja egymással. A marsi szonda üzembe helyezése lehetővé teszi Mark számára, hogy elküldje magáról az első fotót, maga elé tartva egy táblára írt kérdéssel:

    „Veszitek az adást?”

    A fentiekben már említettem, hogy a Föld-Mars távolság miatt az adatok továbbítása sok időt vesz igénybe, azonban nagyobb probléma, hogy a kamera segítségével Mark ugyan tud hosszú szöveges üzeneteket, kérdéseket fotózott formában továbbítani a Földre, azonban a Pathfinder nem képes arra, hogy a Földről érkezett válaszokat bármilyen formában is megjelenítse. Viszont a JPL képes arra, hogy távolról irányítsa az űrszonda kameráját. Ezt használja ki Mark azzal, hogy első üzenetében egy eldöntendő kérdést tesz fel. Egymástól távol, egy IGEN és egy NEM táblát cövekel le a talajba, ő pedig beállt közéjük, egy harmadik táblával a kezében, amin a kérdés szerepel. A JPL pedig válaszként a kamera fejét a megfelelő tábla irányába fordítja.

    Mentőexpedíció

    A filmből sajnos nem derül ki, hogy a fotót a Pathfinder mi alapján készítette el pont abban a szögben. A fotó valószínűleg automatikusan készült. Ez azt is feltételezi, hogy a Pathfinder folyamatosan készítette a fotókat, és küldte azokat a JPL részére. Ami viszont biztos, hogy az űrszonda rövid idő alatt több fotót is készít, ezeket küldi el a megfelelő paraméterekkel a JPL-nek, a földi vevőegység pedig a képeket panorámaképként összeillesztve jeleníti meg.

    Kapcsolatfelvétel a Földdel: „hexadeci segít a bajban”

    A kapcsolatfelvétel sikeressége után a kommunikáció fejlesztése a cél.  Ezen nyilván mind a két oldalon dolgoznak, ám első körben főhősünk ötlete lendít egyet az ügyön. Az eldöntendő kérdésekkel a JPL nem tud megfelelő válaszokat adni, hiszen korlátot szab, hogy csak a kamera fejének mozgatásával tudnak üzenetet küldeni. Mark kitalálja, hogy a JPL-nek hexadecimális ASCII kódrendszerben kell válaszolnia a kérdésekre. Ez azt jelenti, hogy a Pathfindert az angol ábécé 26 betűjét, illetve további 10 számjegyet, esetleg írásjeleket tartalmazó táblák helyett csupán 16 táblával kell körbe rakni. Tíz tábla a számjegyeknek, további hat tábla pedig a betűknek A-tól F-ig. Ezzel, valamint az ASCII kódtábla segítségével két hexadecimális helyiértéken 256-féle szimbólum jeleníthető meg, úgy mint az angol ábécé kis- és nagybetűi, számok, írásjelek, illetve jelen esetben kevésbé fontos vezérlőkódok. Így minimális mennyiségű tábla kihelyezésével megfelelő kommunikáció érhető el, hiszen ha túl sok tábla kerülne kihelyezésre, úgy nehezebben lehetne észrevenni, hogy az űrszonda forgatható kamerája melyik tábla irányába néz.

    Mentőexpedíció

    A film ugyan nem mutatja, de feltételezhető, hogy a Pathfinder valamilyen időközönként, talán egy változáskövető/szinkronizáló algoritmus segítségével folyamatosan fotókat küld a JPL részére. Az ottani mérnökök a képek alapján így hamar rájönnek, hogy Mark milyen módszerrel szeretné fejleszteni a kommunikációt. Ennek révén a JPL csapata is ugyanazokkal a táblákkal bástyázza körbe az űrszonda másolatát, majd ennek elkészülte után azonnal el is küldik az első üzenetüket.

    Mentőexpedíció

    Filmbeli baki?

    A film 52. percének 12. másodpercében, amikor Mark az első Földről érkezett ASCII üzenetet dekódolja papíron, az ASCII kódok második sorának végén egy kérdőjel látható. A valóságban ott nem kérdőjelnek kellene lennie, hanem 3F-nek. A kérdőjelnek pedig a 3F alatt kellene lennie, ugyanis a „?” ASCII kódja 3F. Az megint egy másik kérdés, hogy amikor a Pathfindert körbe rakja táblákkal, akkor az egyik táblán van egy kérdőjel, illetve a JPL központjában a pizzás dobozra felvázolt terv is számol egy kérdőjel karakterrel. Persze innen nézve nincsen szó bakiról, ám kérdés, hogy vajon miért kellett azt a plusz kérdőjel táblát elhelyezni.

    Mentőexpedíció

    Kapcsolatfelvétel a Földdel: chateljünk a Föld és a Mars között

    A kommunikáció újabb szintre emelésének egyik momentuma, amikor a NASA által megadott módon, a marsjáró operációs rendszerét úgy frissítik, hogy az kommunikálni tudjon a Pathfinderrel. Ennek egyik érdekessége, hogy a marsjárót a NASA fejlesztette, a Pathfindert viszont a JPL. Ebből is látható, hogy a szabványok használata mennyire megkönnyíti a rendszerek közti átjárhatóságot, hiszen főhősünknek csupán egy rövid kóddal kell módosítania a marsjáró operációs rendszerét, így az használni tudja az űrszonda rádiófrekvenciáját. (Más kérdés, hogy egy ilyen minialkalmazás miért nincs eleve beépítve a marsjáróba?) Továbbá a rendszer valószínűleg egy egyedi fejlesztésű Linux alapú operációs rendszer, mely úgy került megírásra, hogy az operációs rendszer a marsjáróból is módosítható legyen. További érdekesség, hogy a szoftver módosítása a film 54. percében mutatott képek szerint hexadecimális gépi kóddal történik. Tulajdonképpen a módszer lehetséges, azonban a NASA-nak – a JPL-en át – a hagyományos ASCII kódtáblázat segítségével kell ezt lekommunikálnia, ami egy meglehetősen hosszadalmas folyamat lehet.

    Mentőexpedíció

    Érdekesség még az is, hogy miközben Mark módosítja az operációs rendszert, az életben maradásához szükséges levegőt nem a marsjáróból vételezi, hanem a szkafanderéből. Űrhajós sisakja végig a fején van. Feltételezhető, hogy az operációs rendszer módosítása után egy önellenőrző tesztet is futtatni kell. A rendszer újraindítása a jövőben már nem biztos, hogy feltétel lenne.

    Filmbeli baki?

    A történetben az hangzik el, hogy az operációs rendszer módosítása után a NASA ráállíthatja a marsjárót a Pathfinder rádiófrekcenciájára. Ez nyilván nem lehetséges, hiszen ahhoz, hogy Mark kommunikálni tudjon a marsjáró segítségével a Földdel, előbb szükség van az űrszonda – mint adattovábbító eszköz – közbeiktatására. Vagyis a NASA nem tud kommunikálni közvetlenül a marsjáróval, így közvetlenül nem is tud segíteni az űrszondával történő összeköttetés létrehozásában. Ellenkező esetben a kapcsolat már korábban élt volna, valamint nem a JPL folytatna kommunikációt az űrhajóssal, hanem a NASA.

    A kapcsolat létrejötte után, immáron egy chat felületen zajlik a beszélgetés a JPL és Mark között. Feltételezhető, hogy a marsjáró már eleve rendelkezett valami szöveges üzenetek fogadására és küldésére alkalmas programmal. Innentől már sokkal könnyebb a kommunikáció, bár még mindig nem annyira, mint ahogyan az a filmben látszik. Ahogy nézzük az eseményeket, úgy érezzük, mintha csak a Földön chatelnének egymással. Azonban a valóság még mindig az, hogy egy kérdés-válasz kör 32 percig tart. Tehát, amikor Vincent megkérdezi a JPL-t, hogy a társai hogyan fogadták a hírt életben maradásáról, az üzenet elküldése után legalább 32 percet vár a válaszra. Mivel válasz nem érkezett, ezért egy újabb üzenetet küld el korábbi érdeklődését illetően, melynek a válaszára ismét legalább 32 percet vár. Gondoljunk csak bele, hogy ez mennyire idegtépő lehet, továbbá arról se feledkezzünk meg, hogy még itt a Földön zajló kommunikáció esetében is mennyire egyszerű egymás „szavába” vágni, hát még ilyen késleltetéssel rendelkező üzenetváltás esetén.

    Az ellátmány-küldetés

    Az első beszélgetések során Mark megtudja, hogy a NASA egy ellátmány-küldetést állít neki össze. Ez annyit jelent, hogy a JPL rohamtempóban megtervez és megépít egy teherszállításra alkalmas űrszondát, melyet eljuttatnak a Marsra. Érdekesség, hogy ekkor a bolygók rossz állása miatt az utazás megtételére kilenc hónap áll rendelkezésre.

    Érthetetlen?

    Bár az ellátmány-küldetés elkészítését az ideális hat hónap helyett a NASA csupán három hónapra rövidítette, mégsem készült egy probléma esetén azonnal indítható tartalékpéldány. Abban az esetben, amikor egy űrhajós egy idegen bolygó felszínén ragad, és ellátmány-küldetést kell számára eljuttatni, erősen kétséges, hogy a valóságban is csak egyetlen hajóval számolnának. Sokkal valószínűbb, hogy más űrügynökségek segítségét is igénybe vennék, és szükség esetére építenének még egy, vagy kettő redundáns példányt. Annál is inkább mert hasonló eset nem egyszer már a valóságban is megtörtént. Amikor a Nemzetközi Űrállomásra (ISS) indult ellátmány-küldetés, az néhány esetben kudarcba fulladt (2014: Orb-3, 2015: Progressz M–27M,  SpaceX CRS-7). Ez azonban nem jelentett veszélyt az űrben tartózkodók életére, mert minden esetben rendelkeznek annyi tartalék élelmiszerrel és más szükséges erőforrásokkal, hogy egy ilyen balul elsült küldetés ne okozzon közvetlen életveszélyt.

    A jövő: kvantumkommunikáció

    A kommunikáció sebességének felgyorsításán talán épp a modern fizika segíthet a jövőben. A részecskék kvantum-összefonódásának jelensége meglehetősen biztató eredményekkel kecsegtet.

    További részletek:

    2017 nyarán kínai kutatóknak sikerült adatot továbbítani 1200 km-es távolságba késleltetési idő nélkül. Ez gyakorlatilag a sci-fi történetekben fellelhető teleportálásnak feleltethető meg. Amennyiben ez a mindennapi gyakorlatban is megvalósulna, az szinte olyan lenne az emberiség számára, mint a tűz birtokba vétele, a fémeszközök használatának kezdete, a kerék feltalálása vagy a csavart kötél alkalmazása. Az információ késleltetés nélküli átvitelénél gyorsabb megoldás gyakorlatilag nem létezhet (leszámítva az időben visszaküldött információt, de ez már sokkal mélyebben az elméleti fizika asztala).

    A kvantumkommunikáció a kvantum-összefonódás alapjain nyugszik. Ez annyit jelent, hogy egy részecskepár – például foton vagy neutron – két részecskéje között olyan jellegű kapcsolat van, hogy az egyik állapotának megváltozása akkor is hatással van a párjára, amennyiben közöttük több millió fényévnyi távolság van. Tehát ha a részecskepárokat szétválasztjuk egymástól, és két különböző helyre visszük őket, a közöttük fennálló kapcsolat ebben az esetben sem szakad meg. Amennyiben az egyik részecskében változást idézünk elő, arra a másik részecske – függetlenül a távolságtól – azonnal reagál, így az információ átadás azonnali, szám szerint 0 ms.

    2019 szeptemberében a Google és a NASA kutatóinak sikerült egy olyan kvantumszámítógépet megépíteni, amely a betáplált feladatot 3 és fél perc alatt végezte el, szemben a mai hagyományos számítógépek tízezer évig tartó számítási idejével. Sajnos a hírt érdemes fenntartással kezelni, mert a NASA webhelyén közzétett cikket végül törölték.

    A blog bejegyzés írása közben a hangulatról az AMAZING SPACE TRAVELING ~ Ambient Music ~ Background Music gondoskodott.

    A blog bejegyzés képei az említett Mentőexpedíció (2015) című filmből származnak.

    Programozási nyelvek népszerűsége

    programming-language-java-logo

    programming-language-java-logoIgen érdekli a programozást most tanulni kezdőket, a magukat átképzőket és a cégeket is, hogy aktuálisan melyek a legkurrensebb programozási nyelvek, illetve melyeket használják rendszereik fejlesztéséhez.

    Az alábbiakban felhasználási területet és egyéb szempontokat figyelembe véve tekintjük át a programozási nyelvek népszerűségének mérését, illetve azok között azt, hogy a Java jelenleg hol helyezkedik el, hogyan változott az elmúlt néhány évben népszerűsége. Mindez a kezdő programozóknak iránymutatás, a haladóknak megerősítés lehet. Láthatják a Java használatának trendjét, és hogy „jó nyelvre tettek”, hosszú távon is megtérül befektetésük magas szintű elsajátításába. A blogbejegyzés végén napjainkban a webprogramozáshoz használt legkedveltebb nyelveket tekintjük át és a profi webfejlesztővé válás javasolt hét lépését.

    Tartalom

    A programozási nyelvek iránti érdeklődés

    A Google szerint a legkeresettebb programozási nyelvekre angolul keresve a találatok száma 2019 augusztusának közepén – amikor a többség nyaral és lassan a fű sem nő –, az alábbi volt:

    • programming languages toplist: 586 * 103;
    • top programming languages: 159 * 106.

    A Google Trends segítségével azt is vizualizálhatjuk, hogy a Föld és Magyarország mely részein kiugróan magas például a „programming” szövegre keresés, illetve hogy ahhoz milyen kapcsolódó témakörökre keresések kiugróak. Például: https://trends.google.com/trends/explore?q=programming vagy https://trends.google.hu/trends/explore?geo=HU&q=programming. A témakörök között világviszonylatban a nyelvek közül 4-5. helyen megjelent a C, illetve a Python. Magyarországon 5. helyen áll a Kotlin.

    google-trends

    A „programming” kifejezésre világszerte (balra) és Magyarországon (jobbra),
    az elmúlt egy évben, minden kategóriában,
    internetes keresővel végzett keresések a Google Trends szerint
    (2019. augusztus 18.)

    A legszélesebb körben használt programozási nyelvek a legfelkapottabbak a kezdő programozók körében, hiszen nagy az ezeket ismerők iránti kereslet. De nem egyszerű meghatározni, hogy mely programozási nyelveket használják a legszélesebb körben, illetve a nyelvek közötti választás attól is függ, hogy milyen felhasználási terület vagy egyéb szempont szerint választanak a megbízók, mit igényel fejlesztési projektünk.

    Felhasználási területüket nézve a nyelveknek, futnak ma is vállalati adatközpontokban, nagygépeken 30-40 éve Cobolban írt banki rendszerek. A Fortran használata erős a számítástechnikában és a mérnöki munkában. C-t érdemes használni beágyazott alkalmazások és operációs rendszerek írásához. És vannak programozási nyelvek, amelyek sokféle területen használhatók. További szempont lehet a programozási nyelvek elterjedtségének vizsgálatára a befektetendő programozói óra, szükséges kódsor, CPU-felhasználási igény stb.

    A programozási nyelvek jellemzői és a közülük való választás

    A programozási nyelvet, vagyis olyan jelölésrendszert, amely segít az algoritmusként azonosított programok megírásában, már a számítógépek feltalálása előtt is alkottak, azóta pedig több ezer született, illetve folyamatosan hoznak létre újakat.

    A nyelvek több szempont szerint csoportosíthatók, például általános célú és specifikus nyelvek; számítási modell szerinti (Neumann-elvű, automata elvű, funkcionális, logikai) nyelvek; alacsony és magas szintű nyelvek. A különböző csoportokon, a különböző célokra írt nyelvek között is eltérő tulajdonságokkal és erősségekkel rendelkeznek a nyelvek. Például batch nyelv helyett nem fogunk XML-alapút választani, gépközeli programozáshoz sem objektumorientáltat, vagy szóelemző nyelv helyett szkriptkezelőt.

    A mai hardver-/szoftverfejlesztők lényegesen több programozási nyelvvel dolgoznak, mint elődeik. Az informatikai cégek is számos nyelvet alkalmaznak, hogy a különféle típusú alkalmazásaikat elkészíthessék. A választható nyelvek sokfélesége miatt esetenként nem kis feladat megtalálniuk a megfelelő nyelveket ismerő programozókat.

    A programozási nyelvek jellemzőire tulajdonságaikkal hivatkozhatunk, amelyek közül a legfontosabb három az absztrakciók, a funkció és cél, valamint a kifejezőerő [forrás: Martin, 2015].

    • Absztrakciók. A programozási nyelvek rendelkeznek szabályokkal – például az adatszerkezetek megadásához/jelöléséhez, a parancsok végrehajtásához –, amelyeket absztrakcióknak nevezünk. Az absztrakció elve bizonyos esetekben az absztrakciók felhasználására adott ajánlásokból származik.
    • Funkció és cél. A programozási nyelv teljes meghatározásába beleértjük azt a dokumentációt vagy hardveregységet is, amelyet az adott nyelvre optimalizáltak. Ez is oka annak, hogy a programozási nyelvek eltérnek az emberi interakció nyelveitől.
    • Kifejező erő. A nyelveket többnyire az általuk kifejezhető számítások alapján osztályozzák.

    A programozási nyelvek változatossága miatt a fejlesztőknek nehézséget okozhat a használandó(k) kiválasztása. Az alábbiakban a választást segítő tényezőket tekintjük át: célplatform, nyelvtartomány-egyezés, hatékonyság, rugalmasság és teljesítmény, könyvtárak elérhetősége, projekt mérete, kifejezőképesség és gyártási idő, eszköztámogatás [forrás: Martin, 2015].

    • Célplatform. Először is azt kell meghatározni, hogy milyen PC-s és/vagy mobilplatformon, beágyazott rendszerben stb. kell futnia a készítendő programnak. Ha változatos platformokon, akkor fordítókat, interpretereket is kell futtatni.
    • Nyelvtartomány-egyezés. A nyelvet a meglévő problématartomány alapján kell kiválasztani. Ehhez megvizsgálhatjuk azt a nyelvet, amelyet az adott szakterületen, iparágban mások használnak, vagy megpróbálhatunk a problémánkat megoldandó kódot is keresni.
    • Hatékonyság. Hogy a nyelvi platform gyors legyen, a nyelvvel együtt futó compilernek is hatékonynak kell lennie.
    • Rugalmasság és teljesítmény. A választott nyelvnek elég rugalmasnak kell lennie további programok vagy funkciók implementálásához. Ezen kívül általános teljesítményének meg kell felelnie igényeinknek.
    • Könyvtárak elérhetősége. A programozási nyelvnek rendelkeznie kell olyan könyvtárakkal, amelyek meg tudják oldani például a webfejlesztéshez kiválasztott nyelvvel kapcsolatos összes problémánkat.
    • Projekt mérete. Olyan nyelvet kell választani, amely támogat a kis vagy nagy projektünk magvalósításában.
    • Kifejezőképesség és gyártási idő. Kifejező nyelvet válasszunk, és a programok/kódok elkészítéséhez szükséges idő ne érintsen hátrányosan.
    • Eszköztámogatás. Eszközorientált nyelvet válasszunk, amely segít a szerkesztésben, vezérlésben, illetve a munkában.

    A következőkben a felhasználási területtől független és egyéb szempontokat nem figyelembe véve tekintjük át a programozási nyelvek népszerűségének mérését, illetve azok között azt, hogy a Java jelenleg hol helyezkedik el, hogyan változott az elmúlt években népszerűsége. Mindez a kezdő programozóknak iránymutatás, a haladóknak megerősítés lehet. Láthatják a Java használatának trendjét, és hogy „jó nyelvre tettek”, hosszú távon is megtérül befektetésük magas szintű elsajátításába.

    A programozási nyelvek népszerűségének mérése

    A programozási nyelvek népszerűségének mérésére több, más-más szempont szerinti (elfogódottságú) módszert javasoltak. Ezek közül rangsoraik készítéséhez a https://en.wikipedia.org/wiki/Measuring_programming_language_popularity forrásaik megjelölésével az alábbi módszereket gyűjtötte össze az egyes programozási nyelvek esetén:

    • nevükre keresés internetes keresőmotorral;
    • internetes keresésekben említésük (például Google Trends);
    • nevüket tartalmazó álláshirdetések száma;
    • tanító/bemutató eladott könyvek száma;
    • rajtuk írt kódsorok számának becslése – alábecsülheti a nyilvános keresésekkel ritkán talált nyelveket;
    • a felhasználó projektek száma a SourceForge-on és a GitHubon;
    • az egyes programozási nyelv Usenet hírcsoportjaiban a hozzászólások száma;
    • az Open Hubon nyílt forrású projektekben előforduló vagy módosított forrássoraiknak a száma;
    • a bootcamp-ek eladott tanfolyamainak száma;
    • képzésekre a világon beiratkozottak száma;
    • hozzájuk megjelenő videók száma a YouTube-on;
    • hozzászólásaik száma a Redditen vagy a Stack Overflow-n.

    Ezek mellett gyakran találunk az interneten például blogbejegyzéseket, amelyeket programozás-szakmabeliek készítenek saját tapasztalataik és véleményeik alapján.

    A TIOBE és a PYPL programozási nyelvek ranglistája

    A Google szerint 2019 augusztusának közepén a széles körben hivatkozott két ranglistára keresve az alábbi számú találat volt:

    • TIOBE programming languages: 157 * 103;
    • PYPL programming language: 160 * 103.

    A TIOBE (The Importance of Being Earnest) programozási közösségi indexet, amely a nyelvek népszerűségének közismert mutatója, havonta aktualizálja a hollandiabeli TIOBE Company. Az egyes nyelveket használó mérnökök, tanfolyamok és harmadik fél gyártók számán alapul. Számításaihoz figyelembe veszi a népszerű keresőmotorok használatát (Google, Bing, Yahoo!), valamint a Wikipedia-n, az Amazonon, a YouTube-on és a Baidu-n kereséseket. A TIOBE listából tehát azt tudhatjuk meg, hogy programozási készségeink naprakészek-e; stratégiai döntést hozhatunk új szoftverrendszer fejlesztésekor programozási nyelv alkalmazásáról. A TIOBE a Turing-teljes nyelvekre összpontosít, ezért nem nyújt információt például a HTML népszerűségéről. A TIOBE-n 2019 augusztusában is vezetett a Java.

    A TIOBE listájával szemben leggyakrabban a PYPL (PopularitY of Programming Language) indexszel találkozhatunk, amelyet Pierre Carbonnelle készít 2004 óta. A Google-n elemzi Föld- és öt ország (US, India, Németország, Egyesült Királyság, Franciaország) szintjén, hogy milyen gyakori a programnyelv tutoriáljaira keresés. (Ugyanezzel a módszerrel a legnépszerűbb integrált fejlesztői környezeteket, online fejlesztői környezeteket és adatbázisokat is listázza.) Nyers adatai a Google Trends-ből származnak. A PYPL index szerint a Java elől van, de 2018 elejétől második helyre csúszott.

    tiobe-pypl

    A TIOBE (fent) és a PYPL (lent) index szerinti első öt legnépszerűbb programozási nyelv
    (2019. augusztus 18.)

    Az alábbi diagramon megfigyelhető, hogy a legkedveltebb tíz nyelv közül a TIOBE index szerint 2002 és 2018 augusztusa között még mindig a Java az első.

    tiobe

    A legkedveltebb tíz nyelv a TIOBE index szerint 2002 és 2018 augusztusa között
    (2019. augusztus 18.)

    Ingyenes közösségi platformok, szakmai oldalak ranglistái

    A GitHub a kódkezelés és -megosztás legnépszerűbb platformja, több mint 31 millió felhasználó dolgozott már rajta, összesen 337 programozási nyelven. Ezért ideális hely annak vizsgálatára, hogy mely programozási nyelvek a legnépszerűbbek a projektek számát tekintve. Ezek közül Martins D. Okoi 2019 áprilisának végén a nyelvhasználat aktvitását tekintve a hét legnépszerűbb nyelvet emelte ki. Ezek rangsor szerint: JavaScript, Java, Python, PHP, C++, C#, TypeScript.

    A Black Duck Open Hub ingyenes közösség és nyilvános könyvtár a szabad és a nyílt forráskódú szoftverek (FOSS) számára. Elemzési és keresési szolgáltatásokat nyújt a nyílt forráskódokhoz és projektekhez. A BlackDuck OpenHub az általunk kiválasztott programozási nyelveken végzett kódsormódosításokat mutatja. A legutóbbi hónap adatait nem ábrázolják, hiszen még nem állnak rendelkezésükre az adatok. Ezen közösség szerint is, mint más indexek szerint meredeken emelkedik a Python használata, és fej-fej mellett van a Java és JavaScript.

    black-duck-open-hub

    Havi commitek (a teljes százalékában) az Open Hub szerint
    (2019. augusztus 18.)

    Programozási nyelvek hozzászólásainak száma a szakmai oldalakon

    Az elmúlt évtizedben a vezető programozási nyelvek esetén a velük dolgozók munkájának megkönnyítésére összpontosítottak. Ha a programozási szakmát művelők nyelvek iránti vonzalmát vizsgáljuk, nem járhatunk rossz úton, ha a szakmai-közösségi oldalaikat vizsgáljuk. Az érdeklődési kör egyértelműen megjelenik a témákban, hozzászólásokban. A GitHub és a Stack Overflow méretük miatt és az elemzéshez szükséges adatok nyilvános megjelenése miatt érdemel külön figyelmet.

    A Stack Exchange Inc. tulajdonában levő Stack Overflow tudáspiac széles körben tartalmaz programozással kapcsolatos kérdéseket és válaszokat. A weblap szlogenje: Where Developers Learn, Share, & Build Careers. A felhasználók kérdéseket tehetnek fel, amelyekre tagtársaik segítőkészen válaszolnak. A kérdések-válaszok wikistílusban szerkeszthetők, valamint pozitív/negatív értékeléssel láthatók el. A felhasználók további elismeréseket is szerezhetnek (hírnév pontokat [Reputation points], majd kitüntetéseket [Badges]). A növekvő elismertségi szinttel új jogosultságok érhetők el (szavazhatnak, kommentálhatnak, más hozzászólásait szerkeszthetik).

    Egyre több programozó cég teszi „kötelezővé” a Stack Overflow aktív használatát programozói számára munkájuk támogatásához Magyarországon is. 2019 januárjától a Stack Overflow regisztrált felhasználóinak száma 10 millió fölött van, lekérdezéseinek száma pedig 2018 közepén meghaladta a 16 millió kérdést. A kérdésekhez rendelt címkék típusa alapján a webhely nyolc legélénkebb témája: JavaScript, Java, C#, PHP, Android, Python, jQuery és HTML – többnyire a webprogramozáshoz kötődva.

    A felhasználókat kb. 20 perces kérdőív kitöltésére kérik meg, amelyek segítségével változatos szempontok szerint mérik fel a programozás világát. Tudják, hogy vannak rendszerszintű mintavételi problémáik, és azokat korrigálják is súlyozással (például ha a kitöltők között alulreprezentáltak a nők, vagy felülreprezentáltak az USA-beliek).

    stack-overflow1

    2019 augusztus havi Stack Overflow látogatások

    Ahol releváns, rákérdeznek a leginkább kedvelt, megtanulni kívánt, keresett eszközökre, technológiákra, stb. A legnépszerűbb technológiák között (programozás, szkriptelés, jelölőnyelvek terén) minden válaszadó és a professzionális fejlesztők között is megegyezik az első nyolc sorrendje, amelyben a Java az 5. helyen van.

    stack-overflow2

    A legnépszerűbb technológiák arányai (programozás, szkriptelés, jelölőnyelvek terén)
    2019-ben a Stack Overflow szerin

    A Stack Overflow a munkavállalók és a munkaadó számára több eszközt is biztosít, hogy egymásra találhassanak. Havonta kb. 50 millió tanulni, tudást megosztani, karriert építeni látogatója van. Közülük kb. 21 millió profi fejlesztő vagy egyetemi hallgató.

    A 2019-es év legfontosabb eredményeiből szemezgetve a Stack Overflow kiemelte például, hogy a Python a leggyorsabban terjedő fő programozási nyelv. 2019-ben megelőzte a Java-t és a második legkedveltebb nyelv. A fejlesztők a Stack Overflow-t használva heti 30-90 percet takarítanak meg.

    Stack Overflow 2019-es felmérésének anonimizált eredményei letölthetők az Open Database License (ODbL) alatt.

    A Reddit közösségi weboldal 2005-ben alapított vállalkozás. Jelmondata: The front page of the internet (az internet kezdőlapja). Az Alexa Internet szerint 2019 júliusától a Reddit az USA 5. leglátogatottabb és világszerte a 13. leglátogatottabb webhelye. A regisztrált felhasználók megoszthatják híreiket, képeiket és cikkeiket az ún. „alredditeken”, illetve értékelhetik a már meglevőeket „fel” és „le” nyilakkal.

    A Reddit bejegyzései alapján a nyolc legaktívabban használt nyelv helyezési sorrenben: Python, Java, C++, C#, Rubby, Javascript, PHP, Go.

    reddit

    A legnépszerűbb programnyelvek a Reddit szerint 2019-ben

    A RedMonk szoftverfejlesztőkre koncentráló iparági elemző cég USA-beli székhellyel, figyelembe veszi a kereskedelmi szoftverek változó szerepét. A szoftveripar trendeket tekintettel állítja elő programozási nyelvi rangsorát a GitHub használatának és a Stack Overflow-n folyó beszélgetéseknek a korrelációjából származtatva. Elemzése GitHub részéhez használt adatforrása a GitHub Archive. A RedMonk hasonló lekérdezést használ, mint a GitHub a nyelvek 2016 októberi állapotának összeállításához, továbbá a RedMonk lekérdezéseit összehasonlíthatóvá teszi. Rangsorai nem a programozási nyelvek általános felhasználását mutatják, hanem két olyan populáció közötti korrelációt vizsgálnak, amelyekről úgy gondolja, hogy előrejelzik a nyelvek jövőbeli felhasználását, ezért értéküket.

    2019 harmadik negyedévében első helyen a RedMonknál is a JavaScript áll, az élbolyban követi a Java, Python, PHP, C++, C# és CSS.

    redmonk

    A RedMonk programozási nyelvek ranglistája 2019 3. negyedévére

    A Krihelinator nyílt forráskódú projekt rangsorolása alternatíva a GitHubhoz. Az egyes adattárak kriheliméterét az elmúlt heti szerzők száma, kérések, problémák és commitek alapján számítja: Krihelimeter = 20 * authors + 8 * merged and proposed pull requests + 8 * new and closed issues + 1 * commits.

    A szerző szerint a GitHubot biztonsági mentési szolgáltatásként használják, hetente több száz commitot automatizálva. Ezen projektek kiszűrése érdekében csak egynél több szerzővel rendelkező projektek lépnek be a Krihelinator adatbázisba. Tehát számítása azon alapul, hogy milyen arányú a fejlesztők saját hozzájárulásának aránya a programozási nyelvek használatához a GitHubon. Itt a Java a 4. leginkább használt nyelv.

    Álláskereső portálokon készített ranglisták

    Az Indeed 2004 novemberétől működik. Az egész világon elérhető keresőmotor álláskereséshez, több mint 60 országban, 28 nyelven. Portálján a legkeresettebb a Java programozó volt 2019 januárjában is.

    indeed

    A legkeresettebb programozási nyelvek
    az Indeed álláskereső portálon 2017-2019 között

    A Trendy Skills a népszerű hirdetési webhelyekről a munkáltatók által keresett készségekről és technológiákról végez kutatásokat és készít kivonatot. Kategóriáit osztályozza, amelyek közül az egyik a programozási nyelvek. Ez lehetővé teszi a felhasználó számára, hogy a meghatározott időtartományokban megfigyelhessék egy vagy több készség vagy kategória trendjeit. Az adatok nyilvános API-n keresztül is elérhetők, így bárki elkészítheti saját statisztikáit. Trendy Skills szerint a legkedveltebb programozási nyelv 2019. január 1 – augusztus 18 közötti időszakban messze a Java volt.

    trendy-skills

    A Trendy Skills listája az első tíz legkedveltebb programozási nyelvről
    2019. január 1 – augusztus 18 közötti időszakra

    Ahogy a fenti képernyőkép bal oldalán látható, az első fülön több szűrési lehetőség adható meg a programozási nyelvek rangsorolásához: időszak, kulcsszó/kategória, ország. A második fülön állásokra kereshetünk.

    Az IEEE Spectrum rangsora

    Az IEEE Spectrum az év legjobb programozási nyelveinek rangsorolásához 10 forrásból 12 mutatót szintetizál. A különféle mutatókat a GitHub, a Google Search and Trends, a Twitter, a Stack Overflow, a Reddit, a Hacker News, a Career Builder, a Dice.com és az IEEE Xplore Digital Library alapján gyűjti. Az interaktív rangsoroló alkalmazás lehetővé teszi a mutatók súlyának beállítását, a nyelvek szűrését típus (web, mobil, enterprise, beágyazott) szerint. Rangsorát évente készíti, alább a 2018-as első 10 helyezettje látható a teljes IEEE spektrumra. A Java itt 2. helyen van.

    ieee-spectrum

    Az IEEE Spectrum interaktív rangsoroló alkalmazásában
    a 2018. évi első legjobb 10 programozási nyelve

    Iparbeli események

    A programozási nyelvek, például a Java kedveltségi, felhasználási rangsorbeli helyezésére események is hatnak. Például 2004 áprilisában a Google igyekezett megszabadulni bizonyos weboldalaktól, amely eredményeként a TIOBE indexben a Java és a C++ nyelvek óriásit zuhantak vissza. Az ilyen nagy ingadozások kivédésére az MSN és Yahoo! keresőmotort is elkezdték használni néhány hónap múlva a TIOBE index készítéséhez.

    A Groovy, amely Java-kompatibilis, először 2016-ban került be az első 20 programozási nyelv közé, mert a Jenkins folyamatos integrációs eszközt főként Groovy-ban írták. 2019 augusztusára a 13. helyig lépett elő, mert az egyre népszerűbb Gradle build automatizációs rendszer is Groovy-t használ szkripteléséhez.

    A webprogramozáshoz használt legkedveltebb nyelvek

    Az internet egyre intenzívebb használatának eredményeként gyorsan fejlődik a webhelyek és a webes alkalmazások fejlesztése. A vállalatok folyamatosan foglalkoznak webfejlesztési szolgáltatásokkal, azzal, hogy weboldalaik és webes alkalmazásaik a lehető legszélesebb célközönséget vonzzák be.

    A webfejlesztéshez programozási nyelvek, adatbázisok és kommunikációs hálózatok széles skálája tartozik. A webprogramozással foglalkozóknak nem elegendő csak egy nyelvben és az ahhoz szorosan kapcsolódó például fejlesztői környezet(ek)ben profinak lenni, minden általában használt és feltörekvő nyelvben otthonosan kell mozogniuk. Az alábbi röviden jellemzett nyelvek mellett mindenekelőtt ezeket a nyelveket, keretrendszereket, futtatási környezetet, adatbázist stb. kell ismerniük napjainkban: HTML és CSS, jQuery, Bootstrap, React.js, MySQL, Node.js.

    A Stone River eLearning szerint a webprogramozáshoz használt nyelvek 2017 végén gyakoriságuk sorrendjében: HTML5, Javascript, PHP, Java, Python, .NET, Ruby volt. 2018-ban a FreelancingGig szerint a 100 milliónyi felhasználót kiszolgáló webszájt készítéséhez legmegfelelőbb programnyelvek: PHP, Java, Python, Final Verdict. A Webby Giants szerint 2019-ben a nyolc legmegfelelőbb nyelv: Python, Rust, Java, Go, JavaScript, TypeScript, C#, PHP.

    Ahogy láttuk, a Python jelenleg, és növekedési ütemét tekintve még jó ideig biztosan az egyik legszélesebb körben használt magas szintű programozási nyelv. Ez a nyílt forráskódú nyelv az elemzők és a fejlesztők számára is a legjobb választás szabványos könyvtárával, megvalósítási funkcióival, beépített API-jaival, illetve háttérszolgáltatásaival a biztonság és az URL megbízhatóságának mérésére. Támogatja sikerét számos webfejlesztési keretrendszer is, például a Django, a Pyramid, a Turbo Gear és a Flash. Használják ipari alkalmazások, webes alkalmazások, webhelyek, asztali alkalmazások, gépi tanulás, adatelemzés, hálózatépítés és még sok más területen.

    A 2018-ban a Stackoverflow Developers felmérésen keresztül bevezetett Rust forradalmasíthatja a szoftveripart. Alacsony szintű programozási nyelv, teljesítménykritikus feladatok megvalósításához való. Fejlesztése során cél volt, hogy elkerüljék a függő mutatókat, a puffertúlcsordulásokat, a szintaxis- és memóriahibákat.

    Évtizedek óta a Java-t tartják a legnépszerűbb objektumorientált programozási nyelvnek. Bár a rangsorokban nem mindenütt az első, csak az első közötti, értékét és megbízhatóságát alátámasztja, hogy platformfüggetlen – write once tun anywhere, vagyis írd meg egyszer, és fut bárhol (ahol fut a Java Virtual Machine).

    A nyílt forráskódú Go-t a Python ihlette, nyelve is hasonló ahhoz, egyszerűbb szintaxisú, a C/C ++-hoz hasonló hatékony erőforrásokkal. A Go-t többmagos alkalmazásokhoz, konkurens programok készítéséhez javasolják funkciói és továbbfejlesztett forrásai miatt. A nyelv egyesíti a funkcionális és az objektumorientált alapú programozási nyelvek legjobb aspektusait többek között beépített fejlesztési eszközökkel.

    A JavaScript magas szintű, interpreter típusú, objektumorientált programozási nyelv, amely viselkedést vált ki a weboldalakon. A nyelv fontos szerepet játszik a front-end fejlesztésében. Leginkább a közösségi média platformjai számoltak be arról, hogy a JavaScript intuitív módon nyújt statikus és dinamikus weboldalakat zökkenőmentesen.

    A JavaScript több böngészővel kompatibilis, felépítése logikus. Mivel front-end fejlesztési nyelv, számos népszerű keretrendszerben is használják, például AngularJS, Node.js és React.js keretrendszerekben. A 2018-as statisztikák szerint a JavaScript az egyik legnépszerűbb programozási nyelv, amely előrelép a játékfejlesztés, a dolgok internete és a robotika területén.

    A JavaScript által ihletett TypeScript nyílt forráskódú programozási nyelv. Elsősorban nagyszabású alkalmazásfejlesztéshez használják. Nemcsak a front-end fejlesztésben elterjedt, hanem manapság hibrid mobil alkalmazások, mesterséges neurális hálózatok és mesterséges intelligencia alapú robotok programozásában is használt.

    A C# domináns alkalmazásprogramozási nyelv Windows-ra, webalapú és mobil alkalmazásokhoz, illetve a Microsoft platform egyéb tagjaira. A C# szintaxisstruktúrája a C/C++-éból származik, de azoknál könnyebb használata azok számára, akik ismerik a C/C++ családot.

    A C# tartalmazza az általában webhelyek és webalapú alkalmazások készítéséhez használt ASP.NET-keretrendszert, amely gyors alkalmazásfejlesztést tesz lehetővé. Virtuális valóság alkalmazások esetén is érdemes a C# tanulásába fektetni, továbbá 2D és a 3D videojátékok fejlesztéséhez a Unity 3D platform választása esetén is ez az ajánlott nyelv.

    Az egész világon a PHP a legnépszerűbb szerveroldali szkriptnyelv. Folyamatosan fejlesztik, frissíthetjük verziónkat, ha a soros kódrészleteket statikus HTML fájlokban valósítottuk meg. A PHP ideális a professzionális webfejlesztők és a hatékonyan programozni kívánók számára azért is, mert számos keretrendszerrel együttműködik, például Laravel, Code Igniter és Symphony keretrendszerrel.

    De ennyi nyelvet hogyan sajátítson el a kezdő programozó? Jean-Baptiste Jung (2019 július) az alábbi hét lépést javasolja a professzionális webfejlesztést megcélzóknak:

    1. Specializálódás. Szakosodhat a front-end vagy a back-end webfejlesztésre. A full stack fejlesztést megcélzóknak a front-enddel kell kezdeniük.
    2. Programozási nyelvtudás megszerzése. A szakosodásból következik, hogy mely programozási nyelveket kell megtanulni.
    3. Kis projektekben részvétel, saját online portfólió létrehozása. Kis projektekkel kezdve egyre nagyobbakat kell végigvinni. A nagy és összetett webhelyek egyszerű elveken alapulnak, kis projektek során felépíthetők. A kis projektekben létrehozott eredmények beépítve a saját weboldalba bemutatják a fejlesztő készségeit, tapasztatait. A közösségi média, illetve szakmai közösségekben jelenlét is ajánlott a programozási tudás megmutatására, a többi kódolóval találkozáshoz és a projektek kidolgozásához.
    4. Türelmes tesztelés és hibakeresés. A kódokat alaposan ellenőrizni kell, és ha türelemesek vagyunk a hibakeresés során, a jövőben a nagyobb projektekben kisebb eséllyel ismételjük meg hibáinkat.
    5. Webfejlesztői fórumhoz csatlakozás. Ezeken a fórumokon tanulhatunk mások hibáiból, megítélhetjük mások munkáit, tájékozódhatunk a fontos frissítésekről és hírekről, kérhetünk szakmai segítséget.
    6. Webhelyekről tanulás. Számos webhely nyújt újrafelhasználható kódokat is, amelyek beépíthetők a saját projektbe, segítve a gyorsabb tanulást.
    7. Gyakorlás. A sikeres weboldalak mögött hatalmas mennyiségű képzésben részvétel és gyakorlat rejlik. Ez csak önálló gyakorlással érhető el.

    Összegzés

    A Java compiler típusú, általános célú, magas szintű, objektumorientált programozási nyelv. Világszerte minimum 15 milliárd eszközt irányít, és több mint 10 millió fejlesztő dolgozik vele. Az SE fejlődése töretlen. Hatékonyan készíthetők vele platformfüggetlen szoftverek, amelyek bárhol futtathatók, ahol van telepítve Java virtuális gép („compile once, run anywhere”). Használják Android- és asztali alkalmazások, adatbázisok fejlesztésére, és gyakorlatilag az elsődleges nyelv az ügyviteli, vállalati rendszerekhez, a szerver-architektúrákhoz és a felhőben történő fejlesztéshez. A legnépszerűbb weboldalak többségénél használják a Java-t (is) szerveroldalon.

    Első programozási nyelvnek kiváló a Java. Azért is, mert a tanulás kezdetén online is lehet tanulni a kódolást. Később az EE fejlesztői környezet kialakítása már komolyabb tervezést és fejlesztést igényel.

    A fent bemutatott rangsorok alapján is látható, hogy a Java tanulásába előnyös fektetni. Nem minden feladathoz legjobb választás a Java, illetve minden nyelvnek megvannak az előnyei és a hátrányai. Mindig a feladat igényeire kell összpontosítani, hiszen a népszerűségen kívül sok más tényező is meghatározza a szoftverek fejlesztéséhez legmegfelelőbb programozási nyelve(ke)t.