
"Pokec" o Jave - znalosti, perličky, dôležité informácie
Rozhodol som sa, že sa idem učiť Javu. Nakoľko viem o nej len to, že je multiplatformová a mám nejaké základné znalosti C++, tak to také zlé nie je so mnou. Chcel by som poprosiť ostatných programátorov, aby sa k Jave vyjadrili. Či už nejaké programátorské perličky, znalosti, dôležité veci, na ktoré treba myslieť a podobne. Hádam každý rozumie, čo tým myslím.
Ja ti jenom doporucim knihu "Myslime objektove v jazyce Java 5.0" od Rudolfa Pecinovskeho, pro zacatecnika neni nic lepsiho...
Pozeral som nejaké knihy, ale túto som nevidel. Kúpil som aspoň túto:
Book.asp
Nakoľko obsahuje CD s Eclipse a balíky Sun Java Development (presne to mám aj nainštalované), tak sa bude venovať aj tomu a na začiatok by mi to mohlo stačiť. Ale popozerám sa aj po tej knihe. BTW, naše kníhkupectvo sa nejako zlepšuje čo sa týka počítačovej literatúry, lebo majú aj hrubikánske knihy o programovacích jazykoch v cenách 1300+ a tie som tam nedávno nevidel. Java tam síce nebola, ale už teraz si myslím, že môže v tejto oblasti konkurovať aj väčším kníhkupectvám povedzme aj v Nitre. V druhom kníhkupectve u nás (o niečo väčšie ako toto) dokonca nemajú takýto výber ani zďaleka.
Já tu knihu mam a nevim jestli se vyplatí
, Jsou tam jen příklady - super, to jo. Ale nic na učení. Raději bych si koupil asi 1001 triku v javě, která je asi dražší ale ve stejném stylu a je tam toho víc.
Tak ja tú knihu zas za nejakú super extra mimoriadnu nepovažujem, ale aspoň niečo sa z nej dozviem.
Ale je lepsie... poznas knihy od Herouta?
Keďže je Java dosť univerzálna, o čom svädčí multiplatformnosť, tak by mala byť aj takmer na všetko. Je niečo na čo je ozaj vhodné použiť iný jazyk a Jave sa radšej vyhnúť?
Nekteri lide tvrdi, ze je Java pomalejsi nez jeji konkurenti (C++,C adt.). V jinych clancich to zase vyvraceji. Ja se klonim spis k druhe skupine, ale nejsem zadny profik...viz http://java.about.com/gi/dynamic/offsite.htm?site=h ttp://www.idiom.com/%257Ezilla/Computer/javaCbenchm ark.html
java je vzdy pomalsia ako C alebo C++, lebo potrebuje pre svoj beh java runtime, ktory pri kazdom behu programu preklada symbolicky kod javy do strojoveho kodu. prelozene C a C++ je uz strojovy kod.
Nemusi to byt vzdy pravda. Sutecne dobry JIT (nemyslim JRE) ti kod optimalizuje i za behu. Navic je kod optimalizovan primo pro danou skladbu hardware, kdezto kompiler ti jej prelozi jednou pro vzdy.
tak to je slovo do bitky.
je mozne, ze ked napises zbastleny kod a pouzivas nejaky stary prekladac, ktory este nevie dobre optimalizovat kod, tak to moze mozno byt pomalsie. ale neverim tomu, ze niekto napise aplikaciu v jave, ktora bezi rychlejsie ako by som ja napisal v C(C++) a prelozil pod Visual C++. 
U Javy jde hlavne o vetsi aplikace. Nema smysl se bavit o nejaky Win32 like utilitach.
A u tech velkych aplikaci ta optimalizace hraje dost podstatnou roli - za pochodu se optimalizuji casto spoustene veci apod.
Ty věci, které jsou specifické pro nějakej os, jako jsou třeba registry windows - i když předpokládám, že to také pujde jednoduše, přes nějakou službu/baták/aplikaci windows, která se zadaným parametrem spusti. Do nové javy (1.6) ted přidali podporu TrayIkonky, která se předtim musela dělat docela složitě přes nějaké knihovny.
NO a ďalšia vec. Keďže je multiplatformová, tak zrejme nemôže ísť na úrpvni procesora. Nie je výrazne pomalšia oproti iným jazykom?
Jak řiká MaSo, spousta lidi tvrdí, že je pomalejší. A imho je. Ale záleží hodně na tom jak je to naprogramované, java má obrovské množství knihoven a funkcí, které je dobré používat přímo od javy, protože jsou optimalizovány pro virtual machine, typicky třeba sorty a hashMap a jiné datové struktury.
Pomalá se halvně řiká z dřívějších dob, kdy se opravdu nepovedla v 1.5 doladili swing (grafiku) a ted v 1.6 doladili hledání ve stringu apod. A někde je to i 2x rychlejší ..
Java pracuje odobne jako .NET
Kod se kompiluje online a za behu se optimalizuje. Pak zalezi na tom, jak kvalitni mas behove prostredi - JIT compiler (Just In Time) a od toho se odviji rychlost.
Java je urcena spis na enterprise reseni - serverovou stranu.
pokial viem, tak java runtime preklada pri kazdom behu programu symbolicky kod do strojoveho kodu a .NET to urobi len pri prvom spusteni. dalej to uz bezi ako strojovy kod.
.NET to prelozi do MSIL, neni to nativni kod, jen jakysi "mezistupen", ktery se pak prelozi az pri behu.
to beriem, ale v .NET nepreklada sa do strojoveho kodu pri kazdom spusteni ale len pri prvom. potom to uz spusta permanentne ako cisty strojovy kod kdesi z cache. aspon tak som to kdesi cital alebo pocul.
Ano, to mas pravdu. Pak jsou prelozene veci ulozeny do cache a zabiraji dalsi desitky MB mista

A az dojde urcene misto, jsou smazany a misto nich jsou ulozeny ty, ktere zrovna potrebujes, takze pak dojde opet na preklad.
A to nemluvim o adresari \WINDOWS\assembly, ktery ma na mem, pomerne cerstve obnovenem notebooku 320MB
Tak to jednoduchoí vymaž a je to, nie? Skompiluje sa znovu alebo sa mýlim?
Nejsem si tim tak jisty, protoze jsou tam veci kolem MS SQL 2005
Budu to muset vyzkouset hodne opatrne.
Why Java Sucks for Sysadmins
javasucks.html
klasický text ohledně toho, proč java sucks. A to ne pro programátory, ale pro uživatele a správce.
Ovšem ten dokument je přes dva roky starý ...
to je. Ale přečti alespoň tři body co následují za "Other failings of Java are not intrinsic to the environment"... - to bude platit napořád..., nemluvě o dalších bodech.