Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: i 26. 06. 2012, 15:41:48
-
Pred vice desitkami let jsem zacinal s BASICem pak Pascal, C, ASM, C++, objektovy Pascal, a vse v pohode, pak dlouha leta mix C a skriptovaci jazyky to se mi zda jako nejproduktivnejsi kombinace. V kazdem pripade jsem byl stale velmi produktivni.
Nyni me zamestnavatel nuti do Javy, snazim se uz dva roky a stale to nejde, neco je spatne, myslim teda J2EE.
Muze byt alergie na programovaci jazyk/prostredi?
jake s tim mate kdo zkusenosti?
Nepripada vam take ze J2EE je jen prostredek pro zvyseni odbytu velmi draheho serveroveho HW?
-
Pokud jsi zvyklý třeba jen na Perl nebo Python, tak ti Java nemá co nabídnout. A to nemluvím o jiných specialitách. Kdybych měl hodně času, tak možná, ale vývoj v ní je strašlivě pomalý a o ničem. Jak ale vidím všude nabídky zaměstnání, tak si říkám, že bych to měl zkusit :D
Pokud mě tu někdo dobře namotivuje, budu jedině rád, protože nabídek je fakt moc.
-
Můj soukromý názor je, že ve všem tom co jste popsal jste mohl úspěšně programovat i bez znalosti OOP (objektově orientovaného programování). V Javě to už ale bez OOP nejde. Takže doporučuji nainvestovat čas do nastudování teoretických základů OOP a pak půjde i ta Java, včetně JEE.
-
jak pise někdo - je treba umet OOP, pak to uz neni tak tezke
samozrejme je treba se tim vice zabyvat, nebo to dopadne tak, jako vetsina zacinajicich programatoru - poradne se nenauci zaklady a uz chcou delat honem honem velke projekty
dobra je treba kniha Java 6 od Zakhoura
-
Moc pěkná je i kniha od Pecinovského, dost se tam zabývá OOP principy, viz Google preview.
http://www.grada.cz/myslime-objektove-v-jazyku-java_5401/kniha/katalog/
-
Ne, v Javě programovat nejde, protože je to skriptovací jazyk.
Ano, Javu může psát úplně každý.
Java je velice oblíbená mezi businessmany, protože Java skriptařů je hodně a dají se tak bez problémů nabírat a vyhazovat podle aktuálních potřeb, takže zdánlivě je vývoj v Javě levnější, ovšem díky vážným chybám v návrhu a zaostalosti Javy je práce v Javě málo produktivní a ve výsledku to vyjde ještě dráž, tou dobou už je ale businessman na jiném fleku a je mu to tak nějak jedno.
Pokud tě Java nebaví, zkus C#, tam to bude o něco stravitelnější.
-
Ne, v Javě programovat nejde, protože je to skriptovací jazyk.
dafuq??
-
Ne, v Javě programovat nejde, protože je to skriptovací jazyk.
Ano, Javu může psát úplně každý.
Troll, ololol?
-
Kde se ale bere ta poptavka prave po jave?
Dit treba Python je podle me daleko vic OOP nez java.
-
este par prispevkov a debata sa zvrhne na to, kto ma vacsieho a ze ked niekto neprogramuje v C tak je menejcenny, java vobec nie je na tom tak zle, napr. jej "fork" scala sa povazuje za nastupcu javy a urcite sa budem ucit to ako C alebo perl ... céčkoidi ale radi zostavaju v osemdesiatych rokoch.
.
vseobecne vobec nechapem dlhodobe vojny o programovacie jazyky, ktory je lepsi ... uz ta debata je uplne odveci. existuje len jeden najlepsi programovaci jazyk a to ten, z ktoreho ma clovek pri jeho pouzivani radost.
.
ak ma autor tohoto threadu problem ci osobny odpor k jave a oop, tak nie je chyba v nom ani nie je chyba v jazyku, ale je chyba v specifickom spojeni jeho a toho jazyka. ak nieco robim nerad tak si nebudem kazit zivot tym, ze budem rano vstavat k niecomu, co ma vrcholne nebavi. to ma akoze aky zmysel?
.
taktiez ma dost stve ze java a c# sa podobne sa hadzu do jedneho vreca s tym, ze "v tom vie programovat kazdy". no ved to je super nie? co je na tom zle, ze sa ten jazyk uci lahko? to sa akoze ludia vyzivaju v tom ze sa ucia uplne komplikovane c++ z ktoreho mi idu oci sikmo? na programatorov v jave ci c# sa "ti pravi programatori" pozeraju skrz prsty, pretoze oni sa museli naucit uplne nezazivne C/C++. No to je ich vec ...
.
a mozno koderi v c/c++ mentalne proste na oop nemaju (tak isto ako mozno koderi v jave / c# nemaju mentalne na c/c++). debata uzavreta.
-
Mozna jsem se spatne vyjadril, asi nejde o javu jako javu ale o balik balastu ktery tahne sebou, napriklad, springs, hybernate a podobne, nechutne molochy.
behem 30 let praxe s programovanim z toho 20 profesionale jsem dospel k nazoru ze neni zadny jazyk lepsi, kazdy ma sve vyhody a nevyhody a kazdy je dobry na neco jineho, jen nemohu nalezt jedinou vyhodu tech baliku pridanych k jave.
Nemam odpor k jave a OOP, naopak OOP mi pripada jako uzasny nastroj pro organizaci zabordeleneho kodu. Pouzival jsem ho v Delphi, a v C++ a pouzivam v python, a nemam odpor k hole ciste jave, jen se snazim z ostatnich dostat nejaka pozitiva tech nechutnych baliku ktere musim s ni pouzivat.
Nechci hodnotit ani javu ani C#, pravda je ze jsem si dve ucebnice C++ cetl z nudy na vojne nekolikkrat dokola :-)
Asi ten uvodni text byl trochu nestastny, zkusim to teda jinak:
"Mate nekdo nejaky figl jak se szit s temi odpornymi molochy ktere se lepi na chudinku javu?"
-
"Mate nekdo nejaky figl jak se szit s temi odpornymi molochy ktere se lepi na chudinku javu?"
Bojujem s tym aj ja. Tiez nie som rad ked ma nejaka kniznica ci aplikacia par kilobajt a k tomu musim pribalit par mega "balastu" a zda sa mi to tiez cudne. Je to zial dan za to, ze ako programator mate k dispozicii hned komplet vsetko ... asi.
Kazdopadne pred vasimi skusenostami skladam hlboku poklonu a Vas odpor mi je pochopitelny. Tych kniznic a technologii je strasne mnozstvo a vela krat mi tie nastroje pripadaju ako kanon na vrabce.
Ja som podobny "mentalny sok" zazil ked som sa zblizoval s maven-om. Tam sa tie jar dependencies tahaju rovno z netu a teda ... bola to detektivka. Bez internetu by som ten projekt ani neprelozil. Kam sme sa to dostali ... Teda, nepocitam vlastny repozitar a podobne ... i ked na serioznejsiu pracu sa asi zalozi nejaky firemny ci rovno na pc.
-
Ne, v Javě programovat nejde, protože je to skriptovací jazyk.
Ano, Javu může psát úplně každý.
Java je velice oblíbená mezi businessmany, protože Java skriptařů je hodně a dají se tak bez problémů nabírat a vyhazovat podle aktuálních potřeb, takže zdánlivě je vývoj v Javě levnější, ovšem díky vážným chybám v návrhu a zaostalosti Javy je práce v Javě málo produktivní a ve výsledku to vyjde ještě dráž, tou dobou už je ale businessman na jiném fleku a je mu to tak nějak jedno.
Pokud tě Java nebaví, zkus C#, tam to bude o něco stravitelnější.
Naprosty souhlas. V praci mame asi 5 C++ a 5 Java programatoru a ten rozdil v praci je obrovsky.
Ceckari sice vazi kazdy metrak, ale kdyz uz neco napisi tak je to napsane poradne, kdezto Javisti je parta cucaku co sotva dokoncila skolu a snazi se programovat. Ve finale furt neco fixuji a posun zadny.
A kdyz to srovnam tak mame 80% problemu s Javou, 20% je vse ostatni dohromady...
-
...kdezto Javisti je parta cucaku co sotva dokoncila skolu a snazi se programovat...
A proč tedy najímáte na pozici javistů čerstvé absolventy a ne zkušené seniory? Jak tohle souvisí s technickými vlastnostmi jazyka? Samozřejmě, že lidi, co bouchají jednu technologii 20 let asi velmi dobře ví, co a jak. Kdo by to byl řekl... ::)
-
> "Mate nekdo nejaky figl jak se szit s temi odpornymi molochy ktere se lepi na chudinku javu?"
Pouzivam javu od roku 98 a mam s JEE uplne stejny problem. Osobne si myslim, ze pruser neni ani v jazyku, VM nebo core API, ale v enterprise resenich. Pokud by si enterprise sfera zasedla na nejake jine prostredi, dopadlo by to pravdepodobne jeste hur nez v Jave.
-
Postoj k Springs a Hybernate vo mne evokuje "ty internety" pani Pohlovej.
-
Mozna jsem se spatne vyjadril, asi nejde o javu jako javu ale o balik balastu ktery tahne sebou, napriklad, springs, hybernate a podobne, nechutne molochy.
"Mate nekdo nejaky figl jak se szit s temi odpornymi molochy ktere se lepi na chudinku javu?"
Otázka je, jestli se Vam ty molochy nezdaji spatne proste z toho duvodu, ze jejich velikost/funkcionalita proste neodpovida Vasim pozadavkum na vytvarenou. Uvedu priklad - par aplikaci uz jsem vytvoril jen na zaklade jednoducheho MVC, kde byly servlety, JSP stranky + nejaka logika pro praci s databazi (takovy mikro Hibernate :-) a bohate to stacilo. Ovsem znam lidi, kteri by na stejne rozsahlou aplikaci (zhruba 20 trosku slozitejsich HTML dialogu) nasadili Springs, Hibernate, popr. cele JEE - ja bych z toho mel taky divny pocit, ze ty technologie jsou na uplne jinou skalu aplikaci.
Stejne jako v C++ - dlouho jsem si vystacil jen se zakladnimi knihovnami a treba Boostu jsem se vyhybal nikoli proto, ze by byl spatny (to vubec ne), ale na tech par tisic radku kodu me to proste prislo jako moc velka zavislost.
No a Hibernate + dalsi podobne nastroje proste vzdycky budou trosku problemove, protoze ORM k problemum vede uz z principu :)
-
Mozna jsem se spatne vyjadril, asi nejde o javu jako javu ale o balik balastu ktery tahne sebou, napriklad, springs, hybernate a podobne, nechutne molochy.
"Mate nekdo nejaky figl jak se szit s temi odpornymi molochy ktere se lepi na chudinku javu?"
Ten balík balastu mi vadí také. Pořád všude čtu, jak je Java pomalá. Udělal jsem si malý test, ve kterém Java soupeřila s jinými jazyky, včetně C a Fortranu. Java sice nebyla první, ale byla za C v těsném závěsu. Ovšem to byla Java bez toho balastu. Z toho mi vyplývá, že ty slavné knihovny jsou prostě jen špatně napsány a možná i špatně navrženy. Nebo jen jsou pro většinu běžných aplikací "overkill".
-
No a Hibernate + dalsi podobne nastroje proste vzdycky budou trosku problemove, protoze ORM k problemum vede uz z principu :)
Problém bude asi v tom, že autoři ORM myslí víc objektově, než relačně. Pak z toho vznikne paskvil.
-
No a Hibernate + dalsi podobne nastroje proste vzdycky budou trosku problemove, protoze ORM k problemum vede uz z principu :)
Problém bude asi v tom, že autoři ORM myslí víc objektově, než relačně. Pak z toho vznikne paskvil.
Klasika k povinnému prostudování pro každého uživatele ORM: http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx
-
Problém bude asi v tom, že autoři ORM myslí víc objektově, než relačně. Pak z toho vznikne paskvil.
Klasika k povinnému prostudování pro každého uživatele ORM: http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx
Pěkné počteníčko. Své názory na ORM jsem tam našel také. Místo includování tisíců řádek ORM mi zpravidla stačí napsat pár řádek do modelu. Prostě ORM je pro většinu aplikací "overkill" nebo chcete-li "kanón na vrabce", který ani moc dobře nestřílí.
-
Ne, v Javě programovat nejde, protože je to skriptovací jazyk.
Ano, Javu může psát úplně každý.
Java je velice oblíbená mezi businessmany, protože Java skriptařů je hodně a dají se tak bez problémů nabírat a vyhazovat podle aktuálních potřeb, takže zdánlivě je vývoj v Javě levnější, ovšem díky vážným chybám v návrhu a zaostalosti Javy je práce v Javě málo produktivní a ve výsledku to vyjde ještě dráž, tou dobou už je ale businessman na jiném fleku a je mu to tak nějak jedno.
Pokud tě Java nebaví, zkus C#, tam to bude o něco stravitelnější.
<trapne ticho>
-
Dva roky na naučení Javy je víc než dost, na vysokých školách je k tomu potřeba jeden, maximálně dva semestry. Mluvím z vlastní zkušenosti, sám jsem si takto kdysi po absolvování dvou semestrů Javy na FI našel letní stáž a vcelku jsem stíhal. Nicméně zmíněné dva roky na seznámení se s celou platformou Java EE jsou velmi málo. Přeci jenom mluvíme o nejrozsáhlejší programovací platformě, která je primárně určení k provozování aplikací typu Facebook. Nicméně využít ji pro malé projekty bez problémů lze, jak již zmínili kolegové přede mnou, je jen třeba znát ty správné nástroje a nebrat kanóny na vrabce.
Co se týče OOP, Javu bych považoval za referenční implementaci. Má objekty a jejich vztahy, metody, atributy, pár primitivních typů a nic víc. Žádné struktury, ukazatele ani podobné pozůstatky imperativních jazyků. Ostatní jazyky z Javy převzaly mnoho principů, jde třeba o zmiňovaný Python, PHP, a C#, který jde v mnoha ohledech dál, ale nedejbože když v něm začne někdo uplatňovat postupy z C.
Asi nikdy nepochopím konflikt mezi zastánci kompilovaných a řízených jazyků. Vždyť každý má své oblasti využití, které se příliš neprotínají. Rychlosti Javy nespočívá v chroustání smyček, ale například v snadnosti konfigurace a nasazení v prostředí distribuovaných systémů.
-
která je primárně určení k provozování aplikací typu Facebook.
Velká část Facebooku je PHP strojově zkonvertované do C/C++ a zkompilované běžným kompilátorem C/C++ jako nativní binární kód. Budete si muset najít jiný příklad :)
-
která je primárně určení k provozování aplikací typu Facebook.
Velká část Facebooku je PHP strojově zkonvertované do C/C++ a zkompilované běžným kompilátorem C/C++ jako nativní binární kód. Budete si muset najít jiný příklad :)
Proč? Přirovnání tím nic na významu neztrácí.
-
Co se týče OOP, Javu bych považoval za referenční implementaci.
Hm. To bude asi tím, že se na FI neučí SmallTalk nebo Objective-C...
-
Co se týče OOP, Javu bych považoval za referenční implementaci.
Hm. To bude asi tím, že se na FI neučí SmallTalk nebo Objective-C...
+1 je to implementace OOP kompatibilní s přemýšlením lidí programujících v rodině C jazyků. Zase na druhou stranu tam nic důležitého nechybí a co je ještě důležitější, nic tam nepřebývá. Java boduje právě svojí jednoduchostí, i když je to občas na úkor větší ukecanosti.
-
Po mnoha letech jsem dal dohromady krátkou charakteristiku:
J2EE komplexně řeší problémy, které nemáš a na 90% nikdy mít nebudeš.
Problém je, že prakticky nikdo si ani nepřečte kompletní specifikace, resp. přeskočí "netechnické kecy okolo" - z nich je jasně patrné, proč to soudruzi vymysleli takto. Prvotním důsledkem je vybudování cargo-cultu v podobě "stadardních praktik" a "návrhových vzorů" (tak ze sebe dělají blbce jedni). Druhotným důsledkem je pak zpětný ráz, kdy se z tohoto cargo-cultu vyvodí závěr že J2EE a celá Java je jen produkt debilů a marketingového oddělení Sunu (tak ze sebe dělají blbce jiní).
Krásně je to vidět na springu - pro ty co poznali J2EE (včetně EJB1) je to jen taková pěkná knihovna ze které si vezmu co potřebuji a navíc umožňuje věci zjednodušit. Protože vím přesně co chci a ve zdrojácích vidím přesně co která třída dělá.
Jenomže čas pokročil, ze Spingu se stal standard hozený na hlavu nic netušícím nováčkům, kteří ho teď považují za "moloch".
Problematika je obecnější, objevuje se i v jiných prostředích a jazycích - všude kde dlouhodobě působí "enterprise" požadavky (jak zde někdo psal).
-
Můj soukromý názor je, že ve všem tom co jste popsal jste mohl úspěšně programovat i bez znalosti OOP (objektově orientovaného programování). V Javě to už ale bez OOP nejde. Takže doporučuji nainvestovat čas do nastudování teoretických základů OOP a pak půjde i ta Java, včetně JEE.
C++ bez porozumění OOP? No jedině tak, že by se v něm psalo jako v C. Protože čistě z hlediska OOP toho C++ nabízí hodně (a troufám si tvrdit, že žádný z následovníků ještě C++ nedotáhl např. v tom, co všechno je možné s C++ templates a děděním z nich v kombinaci s multidědičností, i když ty snahy tu jsou).
-
Opravdu může každý programovat v Javě? - No jistě, stejně tak jako každý může vařit. Proto ostatbě Java vznikla, aby každý, opravdu každý mohl matlat kód. Jinak ovšem naprosto souhlasím s Raxem, že se v tom programovat nedá.
-
Můj soukromý názor je, že ve všem tom co jste popsal jste mohl úspěšně programovat i bez znalosti OOP (objektově orientovaného programování). V Javě to už ale bez OOP nejde. Takže doporučuji nainvestovat čas do nastudování teoretických základů OOP a pak půjde i ta Java, včetně JEE.
C++ bez porozumění OOP? No jedině tak, že by se v něm psalo jako v C. Protože čistě z hlediska OOP toho C++ nabízí hodně (a troufám si tvrdit, že žádný z následovníků ještě C++ nedotáhl např. v tom, co všechno je možné s C++ templates a děděním z nich v kombinaci s multidědičností, i když ty snahy tu jsou).
Jenomže i dnes se najde spousta knihoven, programů, frameworků nebo jak se tomu všemu říká, které jsou psané v C++ nebo dokonce v C# a stejně jsou v nich použité pouze struktury a statické funkce. To, že se v nějakém jazyku dá psát objektově neznamená, že to každý dělá. Zase to není vina jazyka, ale toho, že někteří programátoři si myslí, že z C programu udělají C++ program, když ho přeloží C++ kompilátorem.
-
"Mate nekdo nejaky figl jak se szit s temi odpornymi molochy ktere se lepi na chudinku javu?"
S tim mam tyky problem. Pred par lety vysla v cestine knizka (cca 100) stran, ktera obsahovala popisy vsech z3p (zkratka ze tri pismen) technologii ktere s Javou souvisi. Cela ta masinerie se neuveritelne ryhle vyvyji a kdo jeste pouziva JSP je looser protoze tu mame JPA, a kdo pouziva JPA je looser protoze tu mame JPA2, ... Problem Javy je v tom, ze tech technologii je moc a zadna se dlouho neudrzi(viz treba JDBC 1.0/2.0/3.0/4.0) Ten svet Javy je velikej a zacina pozirat sam sebe, lidi co vylezou ze skoly a umi "jenom" Javu netusi nic o Unixu neumi ani zaklady TCP/IP (proc taky kdyz tu mame webove sluzby) a databazema primo opovrhuji.
Kdyz jako Oracle admin srovnam aplikace podle narocnosti na spravu tak mi to vychazi takhle:
COBOL -> C/C++ -> Perl -> Java -> PHP
Vyhodou COBOLu je, ze prezily pouze ty aplikace, ktere opravdu funguji.
Cckari si sakramentsky rozmysli, nez neco napisou.
Perl je tak nekde mezi a neni moc rozsirenej.
Javisti davaji vsechno na prvni dobrou a programuji stylem copy-paste z Internetu.
PHP se neda poradne testovat a delaji v nem i lidi, kteri nikdy nestudovali IT.
-
Mozna jsem se spatne vyjadril, asi nejde o javu jako javu ale o balik balastu ktery tahne sebou, napriklad, springs, hybernate a podobne, nechutne molochy.
Ahoj,
znám ASM, BASIC, C, C++, Object Pascal z Delphi, JavaScript, PHP, C# .NET i Javu.
Java je nádherná, ale J2EE mi přijde jako šílená žumpa!
Výtvor šíleného magora, který co vidí, to chce a to implementuje.
Obecně se tomu říká komplex malého péra, čím menší péro máte, tím víc krámů na honění svého ega potřebujete.
To do J2EE přidali JSP jako kopii PHP, Servlety jako svou původní, ale dost těžkopádnou technologii, Java Server Faces jako výstřel do tmy a tak dále, a tak dále, EJB no a pak to chce umět i ty pomocné molochy. Výsledek je ten, že Java je krásná a přehledná, ale k J2EE má hodně lidí odpor! Jestli chceš přehlednou Javu, nauč se ASP .NET MVC 2.
Microsoft se vydal jinou cestou a kormidlem nemáchá tak prudce.
Jako lékař bys byl v klidu, většina lidí má a i příštích padesát let standardní srdce, jako programátor budeš mít pořád něco nového a nového. Například mám vztek na M$, a jeho odklon od .NETu. Když už to vychytali, když už jim to fungovalo, tak prohlásí, že je všechno špatně a že se bude používat kombinace C++ a JavaScriptu. WTF?
-
PHP se neda poradne testovat a delaji v nem i lidi, kteri nikdy nestudovali IT.
A PHP je ještě menší SHIT než JavaScript :P
JavaScript byl určený k ošetření stisku tlačítka, dneska nad tím dělají aplikace rozsahu původního MSDOSu ::)
A aby to vůbec šlo, používají nesmysly jako Coffeescript a pod.
Zádný jazyk, kde se dá zavoláním příkazu mojeprom_a123++; vytvořit nový objekt, není vhodní na nic většího.
-
a mozno koderi v c/c++ mentalne proste na oop nemaju (tak isto ako mozno koderi v jave / c# nemaju mentalne na c/c++). debata uzavreta.
To je co za hlupost? Kto uz mentalne nema na OOP? Ved to zvladne aj cvicena opica. Co je tazke, je SPRAVNE programovat v C/C++ : myslim spravny memory management, etc... GC nie je idelany
-
a mozno koderi v c/c++ mentalne proste na oop nemaju (tak isto ako mozno koderi v jave / c# nemaju mentalne na c/c++). debata uzavreta.
To je co za hlupost? Kto uz mentalne nema na OOP? Ved to zvladne aj cvicena opica. Co je tazke, je SPRAVNE programovat v C/C++ : myslim spravny memory management, etc... GC nie je idelany
Ani nevíš, jak je pro některé stávající C++ programátory těžké pracovat s pokročilým OOP!
Jak vidíš, píšu pro některé, nepíšu pro všechny!
V OOP se dají kolikrát udělat dost zapeklivé věci a čitelnost pak jde prudce dolů.
Stačí to s OOP přehnat, přidat pár mělkých kopií objektů, smíchat je s voláním předka nebo odkazy na proměnné nějaké původní třídy, v proměnných si schovat pár objektů, jejichž metody voláme a je z toho hezký oříšek!
Na některý šmodrchele musí být už PAN programátor a obvykle to není největší bůh v C++, kdo to rozmotá.
-
Ani nevíš, jak je pro některé stávající C++ programátory těžké pracovat s pokročilým OOP!
1.To pokrocile OPP, tim myslis "nove zazite knstrukce" ? nebo "nové vlastnosti jazyka" ? Pokud to druhé tak které ?
2.Je otázkou co vedlo tyto zmiňovné programátory k použití C++ na misto C.
-
Studujem na VS a programujem v Jave, samozrejme ze nie len podla toho co preberame. Ucenie javy beriem vazne a ucim sa ju na uplnej inej kolaji ako veci do skoly. Po 2 rokoch jej studia a programovania ma stale udivuje a vzdy mi pride nadherna. Nepovazujem ju za jediny jazyk a urcite sa pustim aj do inych (kodim aj v C napr. a v buducnosti chcem skusit Python popripade nieco ine inspirujuce), ale vsetky tie problemy s Javou ktore sa tu popisali vidim skor ako chyby zlych programatovorom a nie chyby jazyka. Tak isto ako sa da pokazit, zneprehladnit a dokaslat kod v inom jazyku da sa aj v jave a je to smutne ze sa niekte produkuju take sracky. Tazko sa meni nazor ineho cloveka ale ja som sa doteraz v Jave nestretol s nicim zlym a viem si v nej predstavit hocico. Je ale pravda ze do EE som sa este nepozrel a mozno nazor zmenim ale naozaj velmi pochybujem aby to bolo nieco diametralne ine. Ja by som prirovnal porovnavanie programovacich jazykov k realnym jazykom. Ktory je najlepsi ? Kazdy ma ten svoj oblubeny a mal by v nom vediet vyjadrit vsetko co len chce a ak mu to nejde, mal by sa vratit do skolky a porozmyslat ci mu venoval dostatok studia a praxe.
-
Mozna jsem se spatne vyjadril, asi nejde o javu jako javu ale o balik balastu ktery tahne sebou, napriklad, springs, hybernate a podobne, nechutne molochy.
To do J2EE přidali JSP jako kopii PHP, Servlety jako svou původní, ale dost těžkopádnou technologii, Java Server Faces jako výstřel do tmy a tak dále, a tak dále, EJB no a pak to chce umět i ty pomocné molochy. Výsledek je ten, že Java je krásná a přehledná, ale k J2EE má hodně lidí odpor!
A pritom zrovna JSP a servlety patri v ramci JEE mezi ty "lehkotonazni" technologie, ktere se fakt daji zacit pouzivat ja nevim po tydnu praxe nebo po dvoudennim skoleni (pro ty, co znaji zakladni veci okolo HTTP - sessions atd.), navic ani neni zapotrebi aplikacni server, jen servlet kontejner ala Tomcat ci Jetty. EJB (jednicka a dvojka), to je pro novacky uz jiny humus - resit vyrobu stubu atd. pro zavolani jedne vzdalene metody atd. atd. Trojky to uz resi o dost lip (vsak taky byly "protesty" vuci pouzivani EJB2 - napriklad vznik pojmenovani POJO atd.)
-
Flame, Flame, Flame...:D
Všichni jsou chytří jak rádio a samozřejmě mají ten svůj "jediný správný jazyk".:)
Myslím si, že byste to měli nechat na trhu. On to vyřeší za vás...:)
-
Flame, Flame, Flame...:D
Všichni jsou chytří jak rádio a samozřejmě mají ten svůj "jediný správný jazyk".:)
Myslím si, že byste to měli nechat na trhu. On to vyřeší za vás...:)
Thumbs up!
-
Myslím si, že byste to měli nechat na trhu. On to vyřeší za vás...
Jako že dokud bude mít Oracle dost peněz, tak bude nejlepší Java a pak se uvidí ? :D
-
Myslím si, že byste to měli nechat na trhu. On to vyřeší za vás...
Jako že dokud bude mít Oracle dost peněz, tak bude nejlepší Java a pak se uvidí ? :D
No pak už bude příznivjejší poměr odborníků a demokratickým hlasováním zvítěží pravda a láska nad "vím co dělám a vím proč to funguje/nefunguje" :-)
-
Vy borci (Java-borci, C-borci, PHP-borci) jste asi jeste nikdy nezkusili Python :)
Jinak, cloveku se nemuze na 100% libit jazyk, co si sam nenapsal ;)
-
Nyni me zamestnavatel nuti do Javy, snazim se uz dva roky a stale to nejde, neco je spatne, myslim teda J2EE.
Muze byt alergie na programovaci jazyk/prostredi?
Těžko říct, v čem je tvůj problém, ale já to vidím takhle: Java je jednoduchá jako jazyk, dá se v ní bezpečně programovat, nesvádí tolik k chybám a prasení, jako jiné jazyky, hodně pomáhá kompilátor a IDE. Kvůli tomu je hodně oblíbená, rozšířená, vhodná i pro začátečníky. Druhá věc jsou ale knihovny a frameworky – těch je nepřeberné množství, což považuji za pozitivum, ale má to i stinnou stránku – těch znalostí je potřeba celkem dost – to se týká hlavně architektů, kteří musí být schopní vybrat správné technologie a postupy (tady je rozdíl oproti jiným jazykům/platformám, kde moc na výběr není a je to více méně nalajnované dopředu). Pro řadové programátory – členy týmu – to až tak náročné není – tedy pokud je kvalitní „buildovací“ systém a analýza/dokumentace.
jake s tim mate kdo zkusenosti?
Nepripada vam take ze J2EE je jen prostredek pro zvyseni odbytu velmi draheho serveroveho HW?
Jednu dobu jsem taky podléhal tomuto bludu, ale bral jsem to jako daň za tu pohodlnost a bezpečnost. Ovšem postupně jsem se z toho vyléčil po setkání s pár programy (jednou python jindy perl atd.), o kterých jsem si říkal, že je to „jen pár nenáročných skriptíků“ a nakonec to požralo víc RAM než JEE server a přitom to bylo bez zátěže/uživatelů.
-
Můj soukromý názor je, že ve všem tom co jste popsal jste mohl úspěšně programovat i bez znalosti OOP (objektově orientovaného programování). V Javě to už ale bez OOP nejde. Takže doporučuji nainvestovat čas do nastudování teoretických základů OOP a pak půjde i ta Java, včetně JEE.
C++ bez porozumění OOP? No jedině tak, že by se v něm psalo jako v C.
Přesně tak. Už jsem takových programů bohužel viděl víc než by se mi líbilo. Ono to tak v C++ bohužel jde, to že si s sebou táhne zpětnou kompatibilitu s C je sice z jedné strany jeho síla, ale z druhé strany jeho ještě větší slabost. Podle mě je to důvod, proč se v delším horizontu mnohem víc uchytila Java, která si prostě mohla dovolit se na zpětnou kompatibilitu s problematickými vlastnostmi C vykašlat. Ukázkový příklad je například explicitní memory management (nahrazený v Javě bezpečnými referencemi a GC). Můžete stokrát argumentovat bezpečnějšími variantami v C++, ale dokud tam bude použitelné i původní malloc/free a někde v obrovské aplikaci (třeba v nějaké pomocné knihovně třetí strany) to bude způsobovat těžko laditelné memory leaky (protože v C je na heapu ve srovnání s Javou neskutečný chaos) tak to prostě je problém. Nebo třeba segfaulty (když máme štěstí) nebo rovnou zmatené chování aplikace (když máme smůlu) související s tím úžasným vynálezem jménem pointerová aritmetika...
-
Přesně tak. Už jsem takových programů bohužel viděl víc než by se mi líbilo. Ono to tak v C++ bohužel jde, to že si s sebou táhne zpětnou kompatibilitu s C je sice z jedné strany jeho síla, ale z druhé strany jeho ještě větší slabost. Podle mě je to důvod, proč se v delším horizontu mnohem víc uchytila Java, která si prostě mohla dovolit se na zpětnou kompatibilitu s problematickými vlastnostmi C vykašlat. Ukázkový příklad je například explicitní memory management (nahrazený v Javě bezpečnými referencemi a GC). Můžete stokrát argumentovat bezpečnějšími variantami v C++, ale dokud tam bude použitelné i původní malloc/free a někde v obrovské aplikaci (třeba v nějaké pomocné knihovně třetí strany) to bude způsobovat těžko laditelné memory leaky (protože v C je na heapu ve srovnání s Javou neskutečný chaos) tak to prostě je problém. Nebo třeba segfaulty (když máme štěstí) nebo rovnou zmatené chování aplikace (když máme smůlu) související s tím úžasným vynálezem jménem pointerová aritmetika...
Víme, známe, místo pár byte leaků máš stovky MB nenažranosti Javy runtime, místo hlášky segfault ze zabugované knihovny se uživateli vypíše naprosto neznámá výjimka se stacktrace, takže je tam kde byl.
-
jake s tim mate kdo zkusenosti?
Nepripada vam take ze J2EE je jen prostredek pro zvyseni odbytu velmi draheho serveroveho HW?
Jednu dobu jsem taky podléhal tomuto bludu, ale bral jsem to jako daň za tu pohodlnost a bezpečnost. Ovšem postupně jsem se z toho vyléčil po setkání s pár programy (jednou python jindy perl atd.), o kterých jsem si říkal, že je to „jen pár nenáročných skriptíků“ a nakonec to požralo víc RAM než JEE server a přitom to bylo bez zátěže/uživatelů.
Paměťožroutský program se dá napsat i na 3 řádcích. Je vcelku jedno, v jakém jazyku.
-
I v Javě se dá programovat neobjektově. Dá to sice mnohem víc práce než v C++, ale znám experty, kteří to bez problémů dokáží a, bohužel, pravidelně praktikují.
-
I v Javě se dá programovat neobjektově. Dá to sice mnohem víc práce než v C++, ale znám experty, kteří to bez problémů dokáží a, bohužel, pravidelně praktikují.
Ano, to je bohužel naprosto běžné. Teprve v takovém prostředí člověk opravdu pozná, o čem je "softwarové inženýrství" (a ztratí spoustu iluzí).
-
ano.
-
Matlá se tu několiv věcí dohromady,
Nemělo to být o javě ani o OOP,
Mělo to být o těch přidávaných bumbrlíčcích, Stále se totiž nemohu zbavit dojmu že mi nic nepřínáší, že jejich údajný přínos jsem ve všech dřívjejších projektech získal několika řádky vlastního kódu, nebo jednodouchou a přehlednou cizí knihovnou kterou bylo možné nastudovat za pár desítek minut, případně vlastní přehlednou knihovou, kterou jsem si během několik projektů postupně vypiplal.
Pokud si někdo myslí že ti bumbrlíčci jsou právě to OOP tak bych ho rád ujistil že to je omyl. OOP je jen způsob organizování kódu tak aby byl přehledný, není nic co lze realizovat v C++ nebo v javě a nelze to třeba v C, no možná snad definice vlastních operátorů, i to je ale jen skryté volání funkce které tímto zápisem jen umožňuje skrýt další chybu.
Chtěl jsem hlavně znát zkušenost ostatních s:
* Jak začínali s těmito bumbrlíčky pokud předtím opravdu úspěšně programovali i bez nich? Názory těch kteří začínali rovnou s nimi mi moc k ničemu nejsou.
* Pokud někdo dříve programoval bez nich a dnes je používá tak mé zajímalo zda to bylo dobrovolné nebo z donucení? a pokud dobrovolné tak co je k tomu vede, snažím se nalézt nějaká skutečná pozitíva jiné než to že ti kteří je používají bývají z mě zatím záhadného důvodu lépe placeni.
Možná že jsem občas i doufal v nějaký ten flame protože při něm padají občas docela slušně propracované agrumenty pro i proti ze kterých se dá ledacos odnést :-)
V každém případě díky i tak za všechny reakce.
-
získal několika řádky vlastního kódu, nebo jednodouchou a přehlednou cizí knihovnou kterou bylo možné nastudovat za pár desítek minut, případně vlastní přehlednou knihovou, kterou jsem si během několik projektů postupně vypiplal.
Problem je v slove "vlastny". Not Invented Here Syndrom.
Ked vidim springacky projekt, tak automaticky vidim dobre spravenu dependency injection, pekne pouzity navrhovy vzor template, projekt ma zaklad mat dobru hlavu a patu. (Detto JEE 5.0 - 6.0; starsie verzie su mnohyhmi ludmi povazovane za hrozu na koleckach). Zaroven to dava priestor pre inych vyvojarov, lebo ked prijde do timu iny springak, tak relativne rychlo vie, co kde je, narozdiel od badania v in-house variante riesenia tohto problemu a patrania, ze zase nejaky vyvojar vymyslel vlastnu verziu Hibernate.
Prinos vidim v momente, ked mam analogicky projekt rovnakych rozmerov a mam to spravit bez toho.
keby mne sef povedal, ze mam robit v PHPcku, tak nebudem chodit dokola a vykrikovat, ake je to uchylne, nepouzitelne, nezmanazovatelne, ako mam nanho alergiu -- jednoducho sa pokusim zmenit job. Z vasej strany to vyzera na averziu zalozenu na emociach, nie na technologickych argumentoch -- a debata typu "presvedcte ma, ze to nemam nenavidiet" je prakticky nezmyselna.
-
Problem je v slove "vlastny". Not Invented Here Syndrom.
Ked vidim springacky projekt, tak automaticky vidim dobre spravenu dependency injection, pekne pouzity navrhovy vzor template, projekt ma zaklad mat dobru hlavu a patu. (Detto JEE 5.0 - 6.0; starsie verzie su mnohyhmi ludmi povazovane za hrozu na koleckach). Zaroven to dava priestor pre inych vyvojarov, lebo ked prijde do timu iny springak, tak relativne rychlo vie, co kde je, narozdiel od badania v in-house variante riesenia tohto problemu a patrania, ze zase nejaky vyvojar vymyslel vlastnu verziu Hibernate.
Prinos vidim v momente, ked mam analogicky projekt rovnakych rozmerov a mam to spravit bez toho.
keby mne sef povedal, ze mam robit v PHPcku, tak nebudem chodit dokola a vykrikovat, ake je to uchylne, nepouzitelne, nezmanazovatelne, ako mam nanho alergiu -- jednoducho sa pokusim zmenit job. Z vasej strany to vyzera na averziu zalozenu na emociach, nie na technologickych argumentoch -- a debata typu "presvedcte ma, ze to nemam nenavidiet" je prakticky nezmyselna.
velmi trefne poznamky v kazdom odseku :)
-
Matlá se tu několiv věcí dohromady,
Vždyť vůbec není jasné, o čem je vlastně řeč. Tedy kromě toho, že někdo dva roky dělá v zaměstnání věci aniž by tušil co je jejich smyslem - na to existují jen dvě odpovědi ("změnit zaměstnání" a "držet hubu a krok") a není o čem diskutovat.
Takže jediná možnost je po hyperbole sklouznout k osvědčeným tématům flame, jako je OOP, konkrétní jazyky a podobně. Na abclinuxu.cz by se samozřejmě řešila politika.
Pokud někdo dříve programoval bez nich a dnes je používá tak mé zajímalo zda to bylo dobrovolné nebo z donucení? a pokud dobrovolné tak co je k tomu vede, snažím se nalézt nějaká skutečná pozitíva jiné než to že ti kteří je používají bývají z mě zatím záhadného důvodu lépe placeni.
Bohužel, těžko odpovědět když se jaksi nedozvím konkrétně o čem je řeč.
Obecně platí že když potřebuji například HTTP server nebo distribuované transakce, tak si je nepíšu sám. Něco jsem i (svého času) zkoušel a moc dobře to nedopadlo (v nejlepším případě zůstalo neudržované torzo).
ORM je velmi kontroverzní. Určitě je velmi užitečné mít konverzi řádku tabulky/resultsetu na objekt a opačně (včetně správné konverze datových typů), to velmi ušetří práci. Cokoliv víc (a hlavně mapování relací) už je dost "ošajstlich" a je potřeba si velmi dobře rozmyslet co potřebuju a dávat pozor co vlastně dělám. Existuje ale třída aplikací, kde je použití ORM doporučitelné (nenáročné CRUD).
Spring beru především jako velkou zásobárnu užitečných utilitek, ze kterých si můžu pěkně vybrat co potřebuji a složit. Samozřejmě, musím vědět co potřebuji a pořádně si prozkoumat zdrojáky. Na složení pak můžu použít IoC container, ale nemusím. Největším přínosem při použití smotného kontejneru je AOP - obejde se tím hlavní problém Javy, kterým je absence metaprogramování. Samozřejmě, lepším řešením by bylo použít zcela jiný jazyk... no k tomu také dojde.
-
Dva roky na naučení Javy je víc než dost, na vysokých školách je k tomu potřeba jeden, maximálně dva semestry. Mluvím z vlastní zkušenosti, sám jsem si takto kdysi po absolvování dvou semestrů Javy na FI našel letní stáž a vcelku jsem stíhal. Nicméně zmíněné dva roky na seznámení se s celou platformou Java EE jsou velmi málo. Přeci jenom mluvíme o nejrozsáhlejší programovací platformě, která je primárně určení k provozování aplikací typu Facebook. Nicméně využít ji pro malé projekty bez problémů lze, jak již zmínili kolegové přede mnou, je jen třeba znát ty správné nástroje a nebrat kanóny na vrabce.
Podla toho co viem, Facebook chat je naprogramovany v Erlangu. Neviem, kolko kolko je spravny cas na naucenie Javy, ale prikladam zaujimavy clanok Naucte se programovat za 10 let (http://"http://www.misantrop.info/673768-naucte-se-programovat-behem-deseti-let.php").
-
Bez toho aby som cital celu diskusiu ti (po prebrani jedneho vacsieho projektu) odpoviem - nie. Kazdy nemoze programovat a je jedno ci to je java..
-
OOP je jen způsob organizování kódu ...
Todle myslíš vážně?
-
Matlá se tu několiv věcí dohromady,
Nemělo to být o javě ani o OOP,
Mělo to být o těch přidávaných bumbrlíčcích
http://discuss.joelonsoftware.com/default.asp?joel.3.219431 :-)
-
Důležitý je výsledek.
Existují úspěšné aplikace/projekty napsané jak v Javě, tak v C, C++, C#, Pythonu i v jiných jazycích. S použitím všemožných "bastlů" (rozuměj frameworků a knihoven) či bez nich. A rozhodnutí zvolit určitý jazyk/technologii se tedy v každém konkrétním (úspěšném!) případě ukázalo být správným, což zároveň dokazuje, že i použité technologické prostředky jsou pro daný účel dobré. Někdy by to s jinými prostředky možná šlo lépe, s jinými by to zase zcela určitě nešlo vůbec, a to je důležité.
Programovat v jakémkoliv jazyce (a tedy i v Javě) může každý, zakázáno to není; ale až správná kombinace lidí, znalostí, rozhodnutí a technologií (+ jejich správné použití) a zároveň definování cílů a měřítek úspěšnosti a posléze i jejich dosažení – to vše teprve dává dohromady nějaký smysl.
Každá technologie byla vynalezena s určitým cílem a očekáváním. Ty, které byly nesmyslné, dávno skončily či rychle skončí v propadlišti dějin. Ty dobré se naopak uchytily a používají se. Některé z nich budou časem překonané a nahradí je jiné. Otázka, jestli má smysl používat něco, co evidentně používají a dále hodlají používat tisíce jiných lidí, není na místě. Spíše je lepší zabývat se tím, proč to používají, zdali je k tomu něco nutí, nebo zda to používají dobrovolně a rádi. V případě pochybností buďto navrhnout, najít či zavést do praxe lepší řešení, anebo se na danou oblast vykašlat a vydat se úplně jiným směrem.
-
Ano.
-
OOP je jen způsob organizování kódu ...
Todle myslíš vážně?
No jistě, nebo snad víš o něčem co lze naprogramovat jen v OOP, to znamená že to nelze naprogramovat třeba v C nebo třeba v ASM, tj. bez tříd a objektů?
OOP jen zpřehlední kód a to jen pokud autor není rozené prase.
Pokud se týče callback-ů a injektáže a podobných konstrukcí, co třeba proměnná typu funkce v C ?
Ale tato diskuse měla být spíš o frameworcích a ne o OOP.
-
OOP je jen způsob organizování kódu ...
Todle myslíš vážně?
No jistě, nebo snad víš o něčem co lze naprogramovat jen v OOP, to znamená že to nelze naprogramovat třeba v C nebo třeba v ASM, tj. bez tříd a objektů?
OOP jen zpřehlední kód a to jen pokud autor není rozené prase.
Pokud se týče callback-ů a injektáže a podobných konstrukcí, co třeba proměnná typu funkce v C ?
Ale tato diskuse měla být spíš o frameworcích a ne o OOP.
:o
A jak bys bez OOP řešil dědičnost, potažmo polymorfismus?
-
To co tady pisete neni spravne, ze to co lze napsat v OOP nelze treba v C. V C se samozrejme da psat take "objektove" (pouzivat pointery na fce) a muzes dokonce i dedit, pokud zacnes structy do sebe zanorovat, takze co tady pisete neni tak uplne pravda
-
:o
A jak bys bez OOP řešil dědičnost, potažmo polymorfismus?
A jak to dela procesor, ktery vykonava skompilovany strojovy kod, ktery nepobral OOP ani co by se za nehet veselo :D
-
A jak bys bez OOP řešil dědičnost, potažmo polymorfismus?
Myslím, že by bylo dobré oddělit cíle a prostředky. Dědičnost je např. (mimo jiné) prostředek k znovupoužitelnosti kódu. Polymorfismus se dá simulovat (a koneckonců i ta znovupoužitelnost se tím řeší) pomocí callbacků. A to mluvíme o poměrně hloupém C (příklad: qsort); jiné neOOP jazyky to umějí řešit daleko elegantněji.
-
Nevim, jaky mate vztah ke svemu zamestnavateli, nebo kolik berete plat ci kolik Vam jiz je let. Ale nenuti Vas do tech molochu jen proto, aby jste to tezko zvladal a on Vam mohl dat nizsi plat, pripadne Vas rovnou vyrazit ze zamestnani? Rekl bych, ze je treba se zamyslet i nad touto otazkou.
-
:o
A jak bys bez OOP řešil dědičnost, potažmo polymorfismus?
A jak to dela procesor, ktery vykonava skompilovany strojovy kod, ktery nepobral OOP ani co by se za nehet veselo :D
Tak OOP má vždycky podporu překladače. To je jasný, že procesor neví o žádném OOP. Třeba jeden můj kámoš si myslel, že když uveden nějaký člen jako private, tak mu na něj nemůže žádný hacker nemůže. Marně jsem se mu snažil vysvětlit, že jde pouze o informaci pro překladač, aby nepovolil přístup z vnějšku třídy.
-
Tak OOP má vždycky podporu překladače. To je jasný, že procesor neví o žádném OOP. Třeba jeden můj kámoš si myslel, že když uveden nějaký člen jako private, tak mu na něj nemůže žádný hacker nemůže. Marně jsem se mu snažil vysvětlit, že jde pouze o informaci pro překladač, aby nepovolil přístup z vnějšku třídy.
;D já myslím že tenhle příspěvek by se měl někam vytesat... jsem toho názoru, že většina programátorů vůbec neví co to vlastně dělá a proč.