java web programozás, hogyan kezdjek neki?
Sziasztok!
Leginkább php-s emberek vannak itt, ezt tudom, de hátha akad valaki aki ért java-hoz is :)
PHP-ban már elértem egy szintet, más webes programozási nyelvek iránt is elkezdtem érdeklődni, a java tetszett meg. Neten keresgélek leírásokat, de gondoltam java-ban tapasztaltabb emberektől megkérdezem:
Mit tanácsoltok, hogyan fogjak hozzá webes java tanuláshoz? Milyen keretrendszereket ismertek (Liferay amit eddig találtam)? A java szintaktikát menet közben tanulom, de ha tudtok jó leírásokat azt is szívesen venném :)
■ Leginkább php-s emberek vannak itt, ezt tudom, de hátha akad valaki aki ért java-hoz is :)
PHP-ban már elértem egy szintet, más webes programozási nyelvek iránt is elkezdtem érdeklődni, a java tetszett meg. Neten keresgélek leírásokat, de gondoltam java-ban tapasztaltabb emberektől megkérdezem:
Mit tanácsoltok, hogyan fogjak hozzá webes java tanuláshoz? Milyen keretrendszereket ismertek (Liferay amit eddig találtam)? A java szintaktikát menet közben tanulom, de ha tudtok jó leírásokat azt is szívesen venném :)
Java EE, Spring, és
Ui.: De szerintem a Java SE változattal érdemes ismerkedni, amiben nem tudsz webes alkalmazást írni de az adatok feldolgozásához az alap osztályok ebben vannak (Bufferek meg hasonlók).
Könyvek
ránézek ezekre, tág téma,
Korlátozott?
nem konkrét projektetet
Egyszerűen érdekel valami php-n kívül, gondolkodok a python-on vagy ruby-n is
PHP-n kívül
Ami szerintem gázos ezekkel:
- nem találtam olyan IDE-t, amiben ne találtam volna valami nagyon zavaró hibát (főként az automatikus kódkiegészítés terén)
- a ruby dokumentáltsága lehetne valamivel szebb/jobb is. Sokáig azt hittem, csak én vagyok lusta és ügyetlen, de valahol láttam egy komolyabb leírást, ott a szerző részletezte, hogy a ruby alkotója szerint a forráskód böngészésével több infóhoz lehet jutni, mint a dokumentációval.
- adatbázis használattal kicsit hadilábon állnak. Pl. python-hoz talált MySQL driver még a PDO színvonalát sem éri el, amennyire fel tudtam mérni.
- ha valami GUI-t szeretnél gyártani... idáig a ruby-val nem jutottam, de pl. a Pythonhoz van Qt, de a doksija elég hiányos és ahogy elnéztem, alig-alig használják. Van más, egyszerűbb környezet is, de azok meg kimondottan rondák linux alatt.
- ruby-val voltak még olyan gondjaim, hogy ami kiegészítés van hozzá, az mind a hobbiból írt szoftverek színvonalán áll (vagy működik vagy nem, esetenként eléggé összecsapott érzetet kelt stb.)
Ezek mellett a java... hát ég és föld. Bár bonyolult, meg néha nagyond tudtam utálni (különösen a swing miatt :) ), de mégis egy profi darab.
Ha nem ragaszkodsz a viszonylagos platformfüggetlenséghez, akkor lehet, hogy érdemes még körülnézni a .net-es cuccok környékén (pl. C#)
Én a Python-t Eclipse
A kódkiegészítése annak sem
Komodo?
Azt sohasem próbáltam, mert
Az Eric és az IDLE is pythonos fejlesztés, oszt... néha a falat kaparom, különösen az Eric miatt. :)
Egyelőre marad a vi, mint a szövegszerkesztők svájci bicskája ;)
(nem fejlesztek, csak játszok, tanulgatok - átlag napi 10-20 percet rászánva :( )
Edit
Igaz, de az (számomra) nem
Persze az is tény, hogy évekkel ezelőtt nézegettem, akkor is perl miatt.
Egyébként azon már töröm a fejem egy ideje, hogy hogyan is tudná bármilyen ide, kulturáltan megoldani az automatikus kódkiegészítést egy gyengén típusos, OO nyelv esetében.
Viszonylag jól
Egyébként azon már töröm a
Én erre kitaláltam egy jó megoldást csak kevés vagyok a kivitelezéshez.
JavaScript-ben bosszant a dolog, és arra gondoltam, hogy az IDE pl. egy WebKit motorral értelmezhetné a kódot, így pl. az se lenne gáz ha egy closure-ban hozol létre egy osztályt. Persze nyilván lassabb lenne az IDE ez miatt meg lehet elmebeteg ötlet is ez részemről...
Sok esetben képtelenség...
Pl.
x=1 if a==10 else "xxx"
x.
Mit fog a . után felajánlani az IDE? Szóval macerás... :)
hat ez nem tul szep
Egyebkent en amikor programozok, altalaban tisztaban vagyok az altalam hasznalt objektumok tipusaival, sot olyan metodust is ritkan akarok meghivni, amirol nem tudom, hogy letezik-e, ezert nekem az altalad emlitett problema nem problema.
Nehany eve tartottam a budapestpy meetupon egy eloadast a vimrol, ha ugyis azt hasznalsz, akkor talalhatsz benne hasznos dolgokat. Azota persze csak javult a helyzet, de mar akkoriban egesz jol mukodott benne a kodkiegeszites (bar en a ctrl+space (vagy ctrl+x ctrl+o) kombot sosem hasznalom, szinte mindig eleg a ctrl+p).
Jó, ez most egy extrém példa
Mellesleg a tudom, hogy milyen metódusai vannak, meg a lusta vagyok begépelni, mert egyszerűbb listából választani, az ugye nem egy kategória? ;)
lustasag
Egyebkent igen, dinamikus tipusos nyelveknel ezt nehez megoldani (a python erosen tipusos), de en meg sosem ereztem akkora szukseget, mint amikor javaval dolgoztam, ott en is lelkesen nyomkodtan a ctrl+space-t. Hogy ez miert van, azt nem tudom (talan mert ritka a 40 karakter hosszu python metodusnev?), de nembiztos, hogy a nyelv "hibaja", hanem inkabb a tulbonyolitott library-k tehetnek rola?
Es ezzel talan kicsit vissza is jutunk a thread eredeti temajahoz, ha java programbol akar az ember egy "Hello word!" stringet valaki mas bongeszojebe juttatni (es erteni is szeretne, hogy ez hogy mukodik, raadasul kvazi szabvanyos modon"), akkor nehany ezer oldalt nem art hozza elolvasnia, mig mondjuk python eseteben elolvassa a WSGI PEP-jet, es kb. tudja is, hogy mit kell csinalnia. Mindkettonek megvannak az elonyei, illetve hatranyai, altalanossagban szerintem nem lehet kijelenteni, hogy melyik a "jobb".
???
update: bocs, közben utánanéztem, részben igazad van. Amit írtam, az valóban a dinamikus típuskezelés következménye, a gyengén típusos pusztán annyit jelent, hogy nem kényszeríti a programozót az adattípusok közti konverzióra, megoldja magától. (ettől még a Python gyengén típusos, mert pl. stringhez bármikor hozzá tudsz fűzni numerikus értéket anélkül, hogy konvertálnod kellene ;-) )
---------
Egyébként nem állítottam, hogy a nyelv hibája lenne. Ez csak egy a sok közül, ami zavart a javaval való ismerkedés után. Nem mellesleg: én folyamatosan _automatikus_ kódkiegészítésről beszélek, amikor gépelés közben automatikusan feldobja a lehetőségeket, ha kis szünetet tartok.
pedig nem tudsz
Akkor tegnap mit
Valahogy sikerült egy kifejezésbe összehozni stringbe tett számot és valóban numerikus értéket...
MySQL-lel játszottam, szóval nem kizárt, hogy csak a "...%s...)%numerikus_valtozo ..." miatt emlékeztem így. Normális körülmények közt eszembe sem szokott jutni ilyesmit elkövetni.
Na mindegy, ezt már nem fogom megtudni. Ahogy azt sem, hogy abban a leírásban (rosszul emlékeztem, ez nem fordítás - viszont ELTÉ-s) miért írták, hogy gyengén típusos.
Ott is lehetnek diszlexiások
Ezek szerint... mindenesetre
De közben gúgli pajtit is megkértem, hogy keressen még olyan oldalt, ahol gyengén típusosként említik a pythont és... hát van még... inf.elte.hu-s cím is. :(
%s -> str()
"%s" % x
explicit konverziot hajt vegre, meghivja a beepitett str() fuggvenyt az adott valtozoval (ami pedig kb. a __str__ metodust hivja meg az adott objektumon). Igy nem csak szamokat, hanem barmi mast is ki lehet iratni, szamoknal az __str__ nem meglepo modon a szamot adja vissza stringkent.Arrol lehet vitatkozni, hogy mivel az str()-t helyetted hivja meg, ezert ez kb. implicit konverzio, de altalanosan nem igaz, hogy mindent atkonvertal valami masra, amikor nem kompatibilis tipusok talalkoznak (pl. javascript, ami ezt raadasul nem feltetlen elsore is atlathato modon csinalja).
OK, felfogtam elsőre is, csak
Sajnos(???) amikor én tanultam, még nem nagyon voltak ilyen nyelvek, így meg sem fordul a fejemben, hogy keverjem az adattípusokat. Ráadásnak meg ott a példa, hogy elég sok helyen emlegették gyengén típusosnak a nyelvet, én meg elhittem. (pontosabban általában a dinamikus szinonimájaként láttam emlegetni, nem néztem utána, mit is jelent valójában)
Összeírtam
A leggyorsabb ugrás talán az,
NetBeans képes deployolni és bökdösni az alkalmazás szervert. Te pedig máris a JavaServer Pages (azaz JSP) és Java Servlet tanulmányozására összpontosíthatsz.
Ami a személyes véleményemet illeti, felejtsd el. Én elég sok mindent tanultam meg önerőből, csak dokumentációból és webes keresésekből, de a szerver oldali Javát nem tartom alkalmasnak az effajta ismerkedésre.
Köszi a tanácsot, azért