Milyen programozó könyvet ajánlanátok nekem?
Mond nekem valaki egy konkrét okot, miért nem jó a Java és a JavaFX egy GUI-s alkalmazásra? És miért jó/jobb ezzel szemben C#-ban megcsinálni ugyanazt?
(A játékokat most felejtsük el, maradjunk felhasználói programok terén.)
Csak szeretném érteni, köszi.
Én csináltam már mindkettővel GUI-t.
A javanál csak az az egyetlen gondom volt, hogy teleszemetelte a .class fájlomat. C#-ban külön fájlban van, ha valamit szerkeszteni akarok, megtehetem, mert he netalántán kettő szövegmezőt és két gombot nem legépelni akarok, hanem programmer interfacen összekattintgatni, akkor ha olyan kedvem van, utána nem a retardált görgetős propertyknél kell átírom a neveket, eventeket, stb.-t, hanem a forráskódban is megtehetem, és még csak át sem javítja a VS.
Ellenben a Netbeans IDE igen, mr ha sikerül szerkeszteni azt, amit nem enged.
A végeredmény könnyen lehet ugyanaz, bár C#-nak közelibb ismerőse a Microsoft SQl, de végtére ez nem számít: nekem csak a megírás sokkal könnyebb C#-ban.
> Mond nekem valaki egy konkrét okot, miért nem jó a Java és a JavaFX egy GUI-s alkalmazásra? És miért jó/jobb ezzel szemben C#-ban megcsinálni ugyanazt?
Két csomag van a Java-ban ami erre való az awt és a Swing. A Swing idén 20 éves (igen múltszázadi) és legalább 10 éve nem aktív a fejlesztése. Az awt pedig ennél is régebbi gyakorlatilag azt cserélte le a swing. Se a Sun sem az Oracle nem foglalkozik ezzel, egyrészt mert már van jobb technológia, illetve mert ipari szinten senki sem használja a java-t asztali gui-s alkalmazásra.
Az awt egy absztrakt réteg volt, ami kb azt tudta, hogy platformfüggetlenné tette a gui-s elemeket, azaz a virtuális gép az aktuális platformjának ablakozó API-ját hívta (WinAPI, X Window, Gtk, CDE, ...), és így csinált ablakokat, kontrollokat stb. Na ez egy katarzis volt, mert volt ahol totál máshogy néztek ki az elemek és volt ahol konkréten hiányoztak. Szóval használhatatlan volt, és közel sem platformfüggetlen.
Erre kitalálták a swinget. Ez nem csinál mást csak rajzol, pixeleket vonalakat színes téglalapokat. Ez azért jó mert a rajzolás minden platformon egyértelmű, pl: húzz fekete vonalat x,y ből x,y-ba. A swing gyakorlatilag egy dinamikus kép amit egy ablakba rajzolunk. Maga az ablak kezelése maradt multi platform, azaz a JVM tudja hogy kell létrehozni az adott platformon, a többi viszont rajzolgatás. Ez marha jó volt, mert könnyű volt stílusokat csinálni, meg úgy alapjáraton minden a helyén volt és valódi platform független cucc volt. Egyetlen baj van vele: Drasztikusan lassú! Mivel minden rajzművelet rendszerhívás byte-kódból ezért lassú, ráadásul maga a firkálás is telegórja a memóriát, persze ez a rész JVM-en belül azért meg van csinálva rendesen, a mérnökök a körülményekhez képest jó munkát végeztek.
Közben meg készültek jó multiplatform GUI-s könyvtárak, amik több nyelven is elérhetőek voltak. Gtk, wxWidget, stb. Ezek külön megírták Windowsra és Unixra a Gui-s felületet, és igazából csak elrejtették a függőségeket, kb úgy mint az awt, de persze jobban. Ráadásul a asztali környezetek is fejlődtek, másolták egymást stb, szóval ár nem volt olyan körülményes ez az egész multiplatform dolog. Meg persze gyors volt, szép, és nem ütött el az adott platformon.
A swing és a awt tanulni tökéletes, de használni már egy cég sem használja. Eljárt felette az idő, ez olyan mintha egy a Win 3.1 GUI API-ját használnád. Elévült, ez van.
A swinget a JavaFX cserélte le. Gyakorlatilag webre való, de fut asztalon is, mellékesen. De kb olyan mint ha csavarhúzóval akarnál szöget beverni, működik csak olyan fura és tovább is tart.
A dotNet Windows rendszerekre való (Most hagyjuk a MONO-t). Van saját managed GUI-s API-ja; a WinForms, ami tele van rendszerhívásokkal a saját natív APi-juk felé (WinAPI). Nyilván ezért jól is működik, és persze gyorsan.
A Windows egy asztali operációs rendszer, a dotNet pedig egy erre való keretrendszer, nem meglepő. ha egy jól működő hatékony GUI-s eszköztár van hozzá.
A Java EE szerver oldali technológia, arra viszont nagyon is jó, és bizony vannak rá jó eszközök. Olyan jól bevált eszközök amivel pl. az ASP nem veszi fel a versenyt, márcsak azért is mert az ASP nem fut normálisan Linuxon, a webszerverek pedig többnyire Unix alapúak.
tl;dr: Mert nem ugyanarra a területre fejlesztették ki őket. Egy robikapát nem ítélhetünk meg a főnyírási képessége alapján, bár kétségkívül van neki, Ahogy a fűnyíró sem jó talajlazításra. Az IT-ben nem lehet megmaradni úgy ha valamit "csak másolsz", kell bele vinni újítást, alternatívát.
#13 vagyok
#18: Köszönöm szépen a részletes kifejtést! :) (zöld o/)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!