jazyk JAVA
Dobrý den
okolnostmi jsem "donucen" pochopit, naučit se a vytvořit prográmek v jazyce JAVA. Mohli byste mi doporučit nějakou dobrou literaturu, učebnici tohoto jazyka? Nějaké základní programátorské návyky mám, ale ocenil bych nějakou knihu spíše pro začátečníky, vše pěkně polopatisticky Mohl by mi někdo ještě prosím shrnout přednosti a zápory tohoto jazyka, pro jaké aplikace je tento jazyk vhodný a nevhodný.
Děkuji
Z vlastnej skusenosti mozem odporucit nasledujucu literaturu, je sice trosku starsia, ale stoji za to:
Učebnice jazyka JAVA napisal Pavel Herout nakladatelstvo Kopp (2000)
Pre zaciatocnikov to je vynikajuca literatura (hovorim z vlastnej skusenosti)...
edit: pridavam este link na recenziu: http://www.root.cz/clanky/ucebnice-jazyka-java-rece nze/
Tak s panem Heroutem jsem mel tento semestr tu cest ucit se Javu - tuhle knizku jsem sice necet, ale ten clovek je skvelej a jeho prednasky byly super, na tu knizku jsem slysel jen samou chvalu od spoluzaku - pripojuju se k doporuceni :)
Napr. priamo z kuchyne "vyrobcu" - http://java.sun.com/developer/onlineTraining/new2ja va/
mas tam aj tutorial atd.
Rudolf Pecinovsky, Myslime objektove v jazyce Java 5.0
a potom Ian F. Darwin, Java - Kucharka programatora.
na profesia.sk sa pod titulom hladame programator podozrivo casto objavuje prave tento programatorsky jazyk. pomyslam, ze sa ho zacnem ucit. je tazky na pochopenie? porovnat asi velmi nemam s cim, s C++, ani Delphi ani podobne srandy neovladam, iba zaklady PHP a MySQL, ale sa mi zda, ze su na mile daleko od Javy(hlavne zameranim, potom aj zlozitostou), ci sa mylim?
Java je jednoucha, flexibilni, objektova, mlutiplatformova, dase rict free, ma vse co ma moderni programovaci jazyk mit -> zacni se ji ucit neprohloupis...
Uplne suhlasim... s tou jednoduchostou trosku pomalsie...
Java je jednoduchá až príliš nemá prekrývanie operátorov, vlastnosti ani delegáty no najhoršie je že všetky metódy sú virtuálne - jednoducho mrhanie výkonom.
k tym virtualnym metodam... mozno neuveris, ale volanie virtualnych metod moze byt v jave rychlejsie ako v C++
virtualna masina totiz pocas loadovania klasov robi optimalizacie, a ked zisti, ze k danej klase nema ziadneho
potomka, alebo ze v ziadnom potomkovi nie je dana metoda overidnuta, tak o ziadne virtualne volanie nepojde...
A ešte teba podpichnem. Toto presne sedí aj na C#.
Ja ja zas popichnu tebe, kdyz se naucis Javu umis C# a naopak...
To neviem, či máš pravdu, ale vlastne je to to isté. C# vznikol ako odpoveď MS na Javu od Sun. Proste gigant musí mať všetko svoje. Ale na druhej strane, vraj to už v pohode funguje aj v Linuxoch, keďže je to multiplatformové a hlavne open source, takže toto ozaj MSu nemusím vyčítať. Na prvý pohľad mi je sympatickejšie C#, ale uvidím časom.
Podle me je to jedno, at uz se zacnes ucit Javu nebo C#, neprohloupis. IMHO je to rozhodne lepsi nez ted zacinat treba s Delphi. {noflame)
To zavisi od toho, co chces v buducnosti robit. Na jednej strane teraz je dost dopyt po tychto high-level veciach, ale o 3roky moze byt javadeveloper kazdy druhy ale expertov na asm urcite moc nebude...
ASM uz nechci ani videt toho uz jsem si uzil dost na 8051...
Na 8051 existuju aj C prekladace (napr. Keil apod).
Ja len ze ide o ponuku a dopyt, ked budu vsetci Java developeri bude malo inych specialistov, a naopak
To samozdrejme vim, ale nasi pani "profesori" na stredni skole to asi nevedeli, doufam ze uz to tam tak neuci, protoze to bylo HC...
Co tam je HC, ved to ma celkom jasne a jednoduche instrukcie HC bolo ked sme na vyske brali nejake RISC techniky a tusim ze sa robil program len s 2 ci 3 moznymi operaciami, uz neviem, tak to bolo HC
HC bylo to ze nas to vubec ucili, meli nas to ucit na Cecku, ted bych to na vysce vyuzil, assembler mi je na peachu...
Je dobré sa v ňom vyznať, na osembite som vďaka tomu dostal Colossus z kazety na disketu. Musel som mu v assebleri napísať zavádzač, ktorý ho umiestnil na správne miesto v pamäti a tým som mohol odstrániť prvú časť, ktorá sa nahrávala z kazety a natiahla do pamäte druhú. Potom som raz robil kódovací program a v BASICu to bolo pomalé, tak som sa pohral v strojáku a do večera to bolo asi 100x rýchlejšie. Assembler má svoje čaro.
Na osmibitech vlastně nemělo smysl dělat v něčem jiném, než v assembleru Kdysi jsem dělal pro ZX Spectrum a geniální textový editor Desktop utilitku - editor šachových pozic - pak se to vložilo do textu jako obrázek. Autor Desktopu totiž vyhradil 1680 bajtů místa na vlastní utility a příjemně to zdokumentoval. Začal jsem debilně: první jsem udělal grafiku - a byl jsem v řiti - měla dva kilobajty... Celkem jsem si s tím tehdy vyhrál a nakonec jsem se vešel, dokonce mi zbylo 5 bajtů volnejch
Pak, když se to vytisklo jednojehličkovou tiskárnou z Tesly BT-100 (splašený hřebík), tak to vypadalo takhle: http://www.zdenekstary.info/ZXSpectrum/Utility%20Ch ess%201%20a%202.jpg
Jó, to byly doby...
Ta uloha tam je sqela...
No ba, však se jí nadarmo neříká "nesmrtelná" - ale vlastní hlavou jsem jí nikdy nevyřešil. Návod k řešení: obětuj všechno, co máš...
Najlepšie na tom je, že som to praskol do Arena Colossus 2006f a biely vyhral 8. ťahom a počas hry sa čierny 2x vzdal.
Pokud by to nekoho zajimalo, tak reseni je:
1. Rb7 Qxb7 2. Bxg6+ Kxg6 3. Qg8+ Kxf5 4. Qg4+ Ke5 5. d4+ Nxd4 6. Qxd4+ Kf5 7.
Qg4+ Ke5 8. Qh5+ f5 9. Qh8+ Qg7 10. Qxg7#
Parada...
Trochu si si zmýlil počet ťahov, ale uvidíme, čo na to povie Colossus, dám mu čierne.
Edit: Sedí to. Teraz ti to tu dám 8. ťahom.
Edit 2: http://img402.imageshack.us/img402/8232/schrnka01jl 3.gif
Edit 3: Teraz to zahral na 9 ťahov. To sa mi páči, že nehrá tie isté ťahy, ale aj náhodne vyberá. Mám Java aplikáciu do telefónu Chessbudy, ale ten hrá na každý ťah rovnako, takže keď to človek hrá často, tak niekedy aj po 15. ťahu je situácia na šachovnici už dávno známa. Nechce sa mi sem uploadovať obrázok toho 9. ťahu, takže tu nie je.
Mat má být skutečně 9. tahem a matuje poslední zbylý pěšec.
Řešení (zkopírujte si to, udělejte z toho soubor s příponou PGN a vložte do šachového programu):
Obrázek závěrečné pozice: http://www.zdenekstary.info/images/Nesmrtelna_uloha _reseni.PNG
(Nějak mi nefunguje imageshack.us)
To znamená, že ten mat 8. ťahom sa dá odvrátiť?
//Raz som hľadal kvalitný šach, je tu jedno moje vlákno. Arena + Colossus vyhovuje. Rybka nie. Colossus ukazuje aj odhad a to som chcel.
Podle mého a Fritzova názoru ten mat odvrátit nejde, takže ta úloha je vlastně špatně. Ledaže by zadání bylo: Bílý obětuje všechny figury a 9. tahem dává mat.
To jsem ale napsal kravinu, což?
Inak je pravda, všímam si, že toho pribúda. Aj knihu som videl. Raz to bude také, že Bill prepíše v assembleri Vistu a zmestí sa na mini CD. Ale teraz vážne. Keď si zoberiem, že kvalitný šachový program Colossus na Sharp MZ-800 zaberal asi 44 kB a hral tak, že oco ho nevedel poraziť a mne sa to podarilo raz. Rozmýšľal tak, že ťah dal tak do minúty a k tomu nemal ani veľa pamäte na ťahy a dalo sa to. Dnes málokedy človek nájde niečo, čo sa zmestí na disketu alebo nežere pamäť (krásnym príkladom je Firefox po hodine používania).
Jojo, Colossus 4 pamatuju ze ZX Spectra, tehdy to byla špička. Doba pokročila a autor Colossusu Martin Bryant udělal po letech verzi pro PC - je to tzv. UCI Engine, takže se musí spouštět buď pod Fritzem (placený soft), nebo pod Arenou (zdarma). A hle, Colossus už zdaleka do špičky nepatří, nejlepší (a o třídu) je teď motor s názvem Rybka.
Colossus (free) ke stažení: http://www.colossus.demon.co.uk/chess/colossuschess uci.htm
Tak to sa môžeš učiť aj Sharpa alebo inak povedané jazyk basistov, čiže mrežovaný C#.
Prednosti a zápory? Pokiaľ máš skompilovaný program (*.class) dá sa spätne dekompilovať do Javy a nie je s tým problém ako pri iných jazykoch. Osobne to mám aj vyskúšané. Dekompiloval som jednu Java aplikáciu pre mobily (*.jar). Ale ak sa nemýlim, malo by sa dať dekompilovať aj C#. Alebo sa mýlim?
Tak toto by som skor povazoval za nevyhodu (pre developera), aby este crackerom ulahcoval robotu Ale malo by sa to tusim dat prelozit aj do executable kodu (a aj C#) potom dekompilovat nejde.
Kazdy vyvojovy prostriedok je dobry na nieco ine (a niektore nie su dobre na nic) Java ma svoje vyhody tusim u klient-server rieseni apod., je (plusminus) multiplatformova (ale len do urcitej miery), co je niekedy dost vyhoda. Na druhej strane na aplikacny sofware (a napr. aj narocne hry), OS, ovladace, apod je tak trochu nevhodna
Na aplikačný software skôr C#. Veľmi ma láka C++, prípadne C#, len tej literatúry je tak málo. K obyčajnému MS Visual C++ (jedná sa mi o komponenty a prácu s nimi) som nič poriadne nenašiel, všade je ten Borland. Ešteže je tu toto http://www.inet.sk/clanok/1941/programujeme-v-jazyk u-c#-diel-1. Síce C#, ale nevadí, k nemu je aspoň kvalitný SharpDevelop zadarmo.
Edit: Tak ma štve, keď chcem v Delphi napísať c := (b > 100)? a : b a nemôžem.
K VisualC++ v podstate by malo stacit MSDN Je tam popisane aj MFC S akymi "komponentami" chces robit?
VisualC++ je IMHO zaujimave cim dalej tym menej, ja sice mam na PC radsej nativne aplikacie napr. urobene vo VisualC++, ktore nevyzaduju zbytocne interpretery, ale napr. ten sach keby si robil v Jave tak mozno by to slo lahsie preportovat aj na telefony a este by si aj zarobil predajom hry pre mobily
Najprv to urobím v Delphi a potom to môžem skúsiť prepísať do Javy. Tak sa dá najlepšie naučiť. OOP tam využívam naplno, takže to bude stáť za to.
Wow, mrknu se sem po dni, a taková diskuze se tady rozjela Dík všem za odpovědi..