Tudom, hogy az a pár ember aki még figyel rám, ki van készülve idegileg, hogy mindig a Java anyját, sőt, mit anyját, rögtön a családját szidom, de hát a tizenkét órányi géptermi gyakorlat előhozza belőlem a rosszt. Szóval, ez a legnagyobb bajom az egésszel (kódrészlet következik, a témáért kevésbé rajongó olvasóknak javaslom a továbblapozást):
package masodikGyakorlat;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
// Ablak osztály.
public class Ablak extends JFrame {
// Konstruktor.
public Ablak(){
setSize(300,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Dimension kep = Toolkit.getDefaultToolkit().get
ScreenSize();
setLocation((int)(kep.getWidth() -this.getWidth())/2,
(int)(kep.getHeight()-this.getHeight()/2)
);
setVisible(true);
}
// Main metódus.
public static void main(String[] args) {
new Ablak();
}
}
Teljesen egyszerű gyakorlati feladat, létrehoz egy ablakot, amit a képernyő közepére helyez, és az X-re való kattintáskor lelövi az alkalmazást. Mégis, egy rakatnyi importálás, definíciók és miegymás, holott ez még butább nyelvekben is egysoros műveletnek számít. Arról nem is beszélve, hogy dög lassú. Elég erős, sokmemóriás-duálkóros gépek vannak itt a suliban, mégis tíz-húsz másodperc, mire elindul. És ez még semmit nem csinál. Értem én hogy platformfüggetlenség, de valami miatt hihetetlenül irritál az egész környezet. (Tudom, nem értek hozzá.) És nem is az hogy tanítják, ennek örülök, sokkal inkább az, hogy – mint azt már sokszor említettem – ebben van a pénz, ebben van rengeteg lehetőség.
Ettől függetlenül én u-t-á-l-o-m.
Oké, nem sírok tovább, este úgyis lesz Lost. (woot)
KTamas
2009. április 09. — 16:06:02
Igen, en nagyon keveset dolgoztam vele, de kerülöm nagyon. Rubyban ugyanez tenyleg egy sor, es az is platformfuggetlen 🙂
KTamas
2009. április 09. — 16:11:43
@KTamas (najo, bizonyos esetekben ketto is lehet.)
erenon
2009. április 09. — 16:35:41
Tehát akik ebbe nyomják a pénzt, azok nem értenek hozzá?
Szerintem abban dolgozz, ami a legmegfelelőbb számodra és a feladatra, de nagyobb projecteknél rá fogsz jönni, hogy a javának is van létjogosultsága.
Mefi
2009. április 09. — 16:56:26
[re=58740]KTamas[/re]: Rubyval még sosem csináltam semmit, pedig dicsérték már páran.
[re=58742]erenon[/re]: félreértesz. Nem azt mondom hogy nem érteken hozzá (nem is igazán értem ezt miből szűrted le), csak azt, hogy nekem személy szerint nem szimpatikus, hogy ennyire tolják előre a Javát.
A projekt-dologgal az a baj, hogy nagyon kevés ember teheti meg, hogy saját maga dönti el min fejleszt projektet. (Most nem egy blogmotorra gondolok éppen.) Ha megnézed az álláshirdetéseket, tíz programozói állásból nyolc Java köré épül. És a vállalatnál nem mondhatod azt, hogy bocsi, nekem szimpibb a másik környezet.
Marcell
2009. április 09. — 17:10:35
Javába én sem vagyok szerelmes, ellenben a Lost kva jó mostanság… 😀
Mainframe
2009. április 09. — 17:26:45
Én is utálom a Javát, túlbonyolított és gusztustalan (és a diplomámnak sem tesz jót). Lostot meg sosem néztem.
slink
2009. április 09. — 17:38:30
Azért valljuk meg, igazából édes mindegy, hogy egy ablakot a képernyőre toló app három másod percig fordul, vagy egyből felpattan. A kérdés akkor van, amikor a 24 ezer soros programnak kell megmozdulnia, ott a kedvenc skript nyelved igen csak nagyokat pislog. Hovatovább a fordítási időköltség kevésbé releváns a futtatás során felemésztett erőforrás szempontjából, márpedig a JVM elég erős platform ezen a téren, nem véletlenül van mindenből Jkedvenc skript nyelved. Meg aztán, hello GAE/J.
Mefi
2009. április 09. — 18:26:48
[re=58744]Marcell[/re]: bizony jó, garantált WTF-életérzés minden csütörtökön, egyenesen Amerikából. 😀
[re=58747]Mainframe[/re]: LOST-ot ajánlom. Nekünk Java I és Java II van kötelező szinten, az egy megvan, remélem a kettő is meglesz.
[re=58748]slink[/re]: Egy komolyabb Javában írt rendszert megnéznék, bár eddig amit láttam (annyira nem komoly alkalmazásokat, meg most vicces lenne épp az adóbevallás-kitöltővel előjönni) nem igazán a gyors és kényelmes működéséről volt híres. Nektek egyébként volt már GDF-en Java-oktatás?
erenon
2009. április 09. — 23:00:50
[re=58743]Mefi[/re]: és azért épül 10-ből 8 javára, mert a projectmanagerek úgy gondolják, hogy abban lehet megcsinálni legjobban. Ha pedig értenek hozzá, akkor mégiscsak igyekeznek a legjobb döntést meghozni, nem?
ogabi
2009. április 10. — 00:22:11
Azért nincs az ok nélkül ám, hogy mind a Java, mind a .NET nagyon felkapott platformok lettek mostanság. Direkt mondok platformot, mert itt már bőven többről van szó, mint egyszerű nyelvekről.
A lényeg a háttérben meghúzódó framework-ben bújik meg, amely olyan mennyiségű előre elkészített komponenst és szolgáltatást nyújt, amellyel nehéz versenyezni. Jópár éve már az iparban dolgozom, nagyon nagy projekteken, így úgy érzem van tapasztalatom a témával kapcsolatban.
A projekt managerek se csak azért választják a leendő alkalmazásuk mögötti környezetnek mert ez olyan menő. Komoly mérlegelések után hozott döntések egész sorozat húzódik meg a háttérben, melyek sok év tapasztalattal architect csapattal a közreműködve hoznak meg.
Csak két dolgot emelnék ki: ROI és RAD. Ez két fontos fogalom, amelyek komoly szerepet játszanak a fent említett rendszerek elterjedésében. Aki akarja Google barátunk segítségével utánanézhet a témának, én viszont itt lezárom a mondókámat… így is úgy érzem, hogy egy meddő vitát fogok ezzel elindítani.
PAStheLoD
2009. április 10. — 00:32:08
Oh, Mefi, te elveszett bárány. 😀
Pedig a Java még istenes. Jó, nem egy Python, de azért erősen konvergál a C# szinthez.
Ha nagy Java projectet akarsz, nézd meg az Eclipse-t, vagy mondjuk ott az Azureus (nem tudom, hogy az új Vuze miben szülődött, de a régi Azureus az java volt).
Java azért jó, mert ott a Sun software stack, és az meg elég ügyes, ha épp egy ~1-2 milló főt foglalkoztató céget akarsz megtámogatni IT ügyileg. Mármint így kívül-belül. Felveszel sok jó Java szakembert, pár profi koordinátort, és egy év alatt összedobnak neked egy vállalatirányítási rendszert, úgy, hogy minden szépen él mondjuk pár Oracle adatbázisban, perzisztenciát a JEE-vel megoldják, van rá API, onnantól meg Sun Java System dolgokat kalapálnak egybe. Ezt C/C++ segítségével kicsit nehezebb 🙂
Persze, a Java nem egy C. Lassú, de ahol van JVM, ott elmegy. És miután bytecode-ba fordul, igazából mindegy.
És a Java nem egy C, tehát könnyen tanulható, viszonylag hamar nyújt sikerélményt. Nagy rá az igény, sok a kókler.
És SAP is enged a nyomásnak, a moduljait már lehet Java segítségével is okosítani, nem csak ABAP-pal.
És Oracle is erősen ráfeküdt a Java technológiákra.
Az IBM kb. 5 perc múlva megveszi a Sun-t (vagy nem, lévén tegnap utasították el a 7 milliárd dolláros ajánlatot :p)
És a Java nyílt forráskódú. A Java igazából egy specifikáció, szabvány, mint mondjuk az ISO C99 vagy ISO C++. És nem egy zárt egyházi csoda, mint a .NET framework. (Mondjuk mostmár észbekapott a Microsoft és megnyitotta a .NET forráskódját, valószínűleg pont az alternatívák térnyerésének hatására.)
És még valami. Az objektum-orientált programozás lényege, hogy lehetőleg minden feladatot egyszer oldj meg, de akkor jól. Csinálsz egy MefiAblak osztályt, belerakod ezeket, és ott elég lesz egy new MefiAblak();
Ha veszed a fáradtságot és ügyesen megírod a konstruktort, csinálsz egy enumot, stb.. , akkor simán csinálhatsz new MefiAblak(800,600,MefiAblak.AblakHelye.Centered, MefiAblak.Opciok.Valami);
És mivel valami okos IDE-t használsz, mikor beírod, hogy MefiAblak[pont] már ugrik is fel a sok lehetőség, tehát megvan a “discoverability”, azaz nem kell online doksikat túrni, hogy megtudd, mit tudsz csinálni az adott osztállyal, interfésszel, stb..
Plusz így a végére azért hangsúlyozom, hogy nem attól lassú a Java program, mert Java. Ennek kapcsán érdemes utánanézni a JIT technológiának, pl. amit most a Google elkezdett a Python kapcsán, “unladen swallow” néven. 🙂
Mefi
2009. április 10. — 20:51:54
[re=58764]ogabi[/re]: akkor már viszont inkább .NET, sokkal szimpatikusabb nekem mint a Java.
[re=58765]PAStheLoD[/re]: igen, az Azureus Java volt, lassú és használhatatlan is mint a dög. 😀
[re=58765]PAStheLoD[/re]: na, ezeket köszi. Egyébként NetBeans 6.5-ben fejlesztünk, kényelmesnek kényelmes, de már maga a környezet is elég lassú. A Visual Studio nekem jobban kézre állt, bár megvagyok a nagyon interaktív fejlesztői környezet nélkül is. 🙂
PAStheLoD
2009. április 12. — 03:25:08
Új NetBeans-t nem próbáltam még, de csak jót hallottam róla.
Én mondjuk Eclipsel játszok, de nekem nem lassú. Gondolom a benti gépek nem épp a legjobban karbantartottak közé tartoznak. Tele vannak szeméttel, nincsenek jól konfigolva, stb.. és akkor esélyes, hogy csigalassan kúszik minden. Vagy lehet, hogy nincs jól beállítva, hogy mennyi memóriát egyen a JVM?
Mefi
2009. április 12. — 11:37:28
[re=58785]PAStheLoD[/re]: szerintem elég jól be vannak állítva, bár ebbe nem látok bele, szeméttel meg annyira nem lehetnek tele mert elég gyakran telepítik újra az egészet. Én pl. egy kétmagos 2GHz-es procis 4 GB DDR2 memóriás vasnál ültem, és kicsit zavart hogy a szkript futtatása és az eredmény megjelenése között sokszor nyolc-tíz másodperc is megjelent.
PAStheLoD
2009. április 14. — 15:34:28
Hm, lehet, hogy minden esetben újraindítja, újratölti a teljes JVM-et az adott programhoz, ami simán tarthat annyi ideig, de ez nem jelenti azt, hogy utána maga a program is lassan fog futni.
Mefi
2009. április 14. — 21:33:27
[re=58825]PAStheLoD[/re]: ebben látod van logika, nem gondoltam rá. De például az Azureus, ami Java alapú, agyhalál. Vagy mondjuk a LimeWire nevű régebbi P2P alkalmazás szintén. Meg volt még valami nagy Java-cucc, nem emlékszem rá, de az is durván lassú volt.