Melyik programnyelv-el érdemesebb kezdeni, JAVA/BASIC?
A magas IQ sajnos nem helyettesíti a gyakorlatot. Bármelyik nyelvet is választod, legalább 1..2 év kell, mire készség-szinten, kellő kreativitással és hatékonyan tudod használni az adott nyelvet. Sajnos ez van.
A basic-et felejtsd el.
Delphi Pascal nagyon jó, csak sajnos nem fejlesztik tovább, ami nagy hiba.
C++ ismerete már-már kötelező lesz, kvázi megkerülhetetlen.
A Java egy folyamatosan fejlődő nyelv, ráadásul platformfüggetlen app-okat írhatsz vele, vagyis bármely oprendszer alatt fog futni a progid, ha ebben programozol.
Félig jó.
Bytecode lesz belőle és az is marad. A bytecode futtatásáról a JVM (java virtuális gép) gondoskodik (amit minden nagyobb oprendszerre külön megírtak), ennek segítségével lesz "platformfüggetlen" a kód.
Ebből következik, ahhoz hogy a Java-s progid fusson egy adott oprendszeren, arra először fel kell telepíteni a JVM-et.
A Java-ban egyébként az a jó, hogy tengernyi info van róla, a rossz az, hogy van néhány borzalmasan idegesítő baromság a nyelvben, amit elég nehezen vesz be az ember gyomra. Dehát nincs mit tenni, ez az egyik legjobban futó nyelv. A szintaktika és a szemantika jórésze alapvetően a C nyelvből lett összelopkodva (szebben fogalmazva, "továbbfejlesztve"), Object (Delphi) Pascalt nyomokban sem tartalmaz, ami nagyon nagy hiba, dehát ez van.
"nagyon nagy hiba"
Miért hiba?
Én ennek kifejezetten örülök és nem sok olyan dolgok találtam benne, ami idegesítő.
Egy elég jól kitalált nyelv a java, jól használható és mostanában gyorsabb is. (A JIT is segít ezen kicsit.)
Nem akarok itt "hitvitába" szállni ezzel kapcsolatban, de az tény, hogy a Delphi Pascal már tíz éve olyan hatékony nyelvi elemekkel rendelkezett, amit a Java a mai napig nem tud, gondolok itt pl. a Delphi Property kezelésére amit a Java "getter/setter" elnevezésű, rettenetesen nyögvenyelős megoldással tud csak kiváltani. (Megjegyzem, ez sem nyelvi elem, csupán ajánlás.)
A Java String kezelése egyszerűen katasztrofális, no persze már azért is hálásnak kell lenni, hogy egyáltalán eljutottak a String fogalmáig, noha a Pascal nyelv a kezdetektől fogva támogatta a karakterláncok (mint "primitive") használatát.
A "case sensitive" kódot mindig is egy ökörségnek tartottam, és ez a Java esetében sincsen másképp, hiszen nem csak a változó vagy metódus nevére kell emlékezned, de még arra is, hogy milyen kisbetű/nagybetű kombinációt használtál a létrehozásánál. Erre persze meghatároztak egy elnevezési szabály ajánlást (konvenciót), hogy - többek között - az ebből eredő problémákat kezelni lehessen, ez viszont egyrészt fából vaskarika, másrészt mivel ez nem nyelvi szintaktikai szabály (hogyan is lehetne az), emiatt vagy betartja a programozó vagy nem.
A Javaban a pointerek használatának teljes hiánya egyfajta biztonsági garanciát próbál nyújtani, valójában csak a programozás hatékonyságát rontja, és bár nincsenek pointerek, ennek ellenére Javaban az egyik leggyakoribb hiba a nullpointeres kivételek megjelenése. Nesze neked pointermentes kód.
Igazából megállás nélkül tudnám sorolni még egy ideig a problémáimat, de nincs értelme, mert alapvetően nem vagyok a Java ellensége, csak az bosszant, hogy e nyelv a fejlesztők némileg (nem kicsit) egysíkú látásmódjának lenyomatává vált. Nem ártott volna a fejlesztések kezdetén legalább 1 embert bevonni a projektbe, aki nem csak hírből ismeri a Pascal nyelvet, mert akkor tényleg egy nagyon hatékony és könnyen kezelhető nyelvet lehetett volna létrehozni. De mivel mindenki a C programnyelvek csecseit szopogatva találja fel a legújabb spanyolviasz keveréket, ezért úgy tűnik sajnos le kell mondanunk a nyelvi hatékonyságnak eme magasabb szintjéről.
Hát nem tudom, a case sensitive-ségnek hála rendezettebb szerintem pont a kód.
Mivel nem születik olyan megoldás, hogy itt így írja valaki a változó nevet ott meg úgy.
A getter/setter megint egy olyan dolog ami szerintem jól használható, ha publicba teszed a változót, akkor ezek nélkül is simán elérheted és azt csinálsz velemi amit akarsz.
Pointer külön nincs, valóban, viszont mindenhol referencia szerinti átadás történik, tehát valamennyire megvan ez.
Az meg, hogy sok a nullpointer hiba a programozók hülyesége miatt lehet. Egy tömböt bármilyen nyelven túl lehet indexelni. Ez szokott leggyakrabban előfordulni. (Persze erre is van megoldás, ott vannak az iterátorok.)
Az meg, hogy mi primitív típus és mi nem szintén nézőpont kérdése, hogy mi a jó. Nekem sosem volt bajom abból, hogy a String osztályt "kellett" használni.
De hogy ne menjünk teljesen offban privátban írhatnál még pár dolgot ami szerinted rossz, mert érdekel.
Alapvetően én jól elvagyok a java-val és ezeket amiket felsoroltál én egyáltalán nem tartom rossznak, sőt néhány nem véletlenül alakult így.
Kezdheted a Javával, az amúgy is egy sok helyen használt nyelv, amibe érdemes magad akár profi szinten is beledolgoznod.
Viszont létezik az SE mellett a ME is, ami mobilos változat, tehát nem biztos, hogy a mobilon is ugyanaz fog működni, mint a számítógépen.
14/18 Pontosan így gondoltam csak nem írtam,hogy a JAVA VM generál a bájtkódból natív kódot,egyébként ezekből a programozói vitatkozásokból ami az imént lezajlott JAVA VS PASCAL,hogy mindenkinek az a jobb nyelv amelyikben jártas tehát Elkezdem a JAVA-t vagyis folytatom,mert már elkezdtem
Ja és lenne még egy kérdésem akkor a JAVA-ban írt programok futtatásához fel kell telepíteni az adott gépre a JAVA VM-et? Anélkül nem is működik?
Nem volt itt vita, pusztán eszmecsere.
Engem tényleg érdekel, hogy a másik válaszolónak mi nem tetszik még a javaban és miért.
Igen, fel kell.
És nem, a virtuális gép nem fordít gépi kódra, csak ha a JIT be van kapcsolva.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!