Portál AbcLinuxu, 1. května 2025 09:26
Delam GUI k jednomu moc chytremu programu. V tymu je nekolik programatory, inzenyru a testeru. Kazde tri mesice dostaneme dokumentaci s kterou by se dala umlatit velryba, dva mesice implementujeme, mesic testujeme. Pokud udelame chybu ve finalni verzi, zakaznik nam utrhne hlavu a naplive do krku.
Kdyby jsme meli psat v cemkoliv jinem, tak se z toho potento. Na vytky k jave muzu rict jen jedno: vase starosti bych chtel mit. Ale zkusim popsat ceho si na Jave vazim.
knihovny
Na jazyku neni dulezite jak hranate zavorky pouziva. Dulezite jsou knihovny a jeste vice je dulezita je zakladni knihovna, s ni prichazeji programatori nejvice do styku a ta vtiskava celemu jazyku styl programovani a filozofii.
Java ma velmi dobrou zakladni knihovnu. Pokud se podivate na dalsi knihovny, jsou napsany velmi podobnym stylem. V C/C++ neni zakladni knihovna soucasti jazyka a to je obrovska chyba, proto ma v C/C++ kazdy programator jiny styl psani kodu. (tech deset souboru nepovazuju za knihovnu)
jednoduchost
Java samotna je jednoducha, az nudna. Sice to neni tak cool, jako Lisp a jeho "makra upravujici makra, ktera muzou upravovat dalsi makra upravujici puvodni makra". Ani nema template k template jako C++. Java cloveka dost omezuje, vetsinou je jen jedna cesta jak nejaky algoritmus napsat. Java classy jsou si navzajem velmi podobne a chyby v nich "kreativita". Ale clovek tohle sakra oceni pokud ma prevzit a udrzovat cizi kod.
vyvoj
To si takhle debuguju a debuguju, najdu problem ... a zjistim ze jsem uprostred Tomcatu. Eclipse se proste nevyrovna zadne IDE (teda mozna Idea nebo Netbeans). Troufam si tvrdit ze jsem 3x efektivnejsi nez v jakemkoliv jinem jazyku. A
v zivote jsou dulezitejsi veci nez sedet u pocitace.
....
Musim koncit.
Tiskni
Sdílej:
Eclipse se proste nevyrovna zadne IDE (teda mozna Idea nebo Netbeans). Troufam si tvrdit ze jsem 3x efektivnejsi nez v jakemkoliv jinem jazyku.Pro Eclipse přeci existuje spousta pluginů - C, Python, Perl, PHP. Sice s různou kvalitou, ale zrovna ten pro C by neměl být tak špatný, né? OT: z javovské konference (a někt. i osobně) mám pocit, že dost javistů zná: Open Solaris, Ruby, Mysql, Netbeans (samozřejmě i Eclipse) - vše produkty nějak spojené se Sunem. Jak vysvělit windowsákovi, že pro něj bude lepší, když na jeho Un*x like server zvolí Linux místo Open Solarisu. Trochu větší přehled a menší marketingová nalejvárna od Sunu by se hodila.
Proč se mluví o Javě? Není to náhodou proto, že v ní vzniká 45% veškerého software na zakázku?
Proč se srovnává s C++? Není to náhodou proto, že C++ je druhý nejrozšířenější jazyk v téže oblasti?
Četl jsem už mnoho čláků, které vykřikují, že jazyk X by mohl být v každém ohledu lepší než Java. Ale volná ruka trhu rozhodla jinak. Takže o čem se tady flamuje?
O těch 45% si dovolím silně pochybovat - a ani Vy sám nebudete schopen toto Vaše tvrzení hodnověrně doložit, protože to je naprostý nesmysl.
Nemusí to být pravda, ale je to napsáno na několika místech. Když chcete nějaké tvrzení označit za nesmysl, musíte být napřed schopen jej vyvrátit. Nic takového se vám ale nepodařilo.
A jste si jist, že srovnáváte srovnatelné? Java i C++ prostě jsou každý na něco jiného - to není dobrá dvojice do srovnání.
Ano, jsem si jist. Pokud vezmete v úvahu všechny faktory jako je druh projektu, plaforma/platformy a osobní preference programátora, můžete směle srovnávat Javu s C++ hned v několika ohledech. Nevidím nic špatného na srovnávání rychlosti, přenositelnosti, doby vývoje a dalších kritérií. Nesrovnatelné věci se ve světě počítačů vyskytují extrémně vzácně. Srovnání může pro jednu stranu dopadnout velmi špatně, ale nic horšího se stát nemůže.
Co je tedy na Javě a C++ tak nesrovnatelného?
Taky slyším, že Linux je lepší, než Windows, ale volná ruka trhu rozhodla tak jaképak copak - pryč s Linuxem.
Kdo říká, že volná ruka trhu rozhoduje „správně“ nebo podle gusta konkrétní skupiny uživatelů? Já sice Windows nikde nemám, takže to nemůžu zodpovědně srovnat, ale nemyslím si, že jsou pro každý druh nasazení a pro každého uživatele horší než Linux. Kromě toho jsem si nevšiml, že by Linux zanikal, vidím kolem sebe spíš vývoj opačným směrem. Takže si prosím takové plamenné fráze nechte raději od cesty.
Váš výčet oblastí, ve kterých nelze srovnávat, je sice vyčerpávající, ale naprosto off-topic. Zaprvé proto, že mě z mně neznámých důvodů považujete za příznivce Javy a vkládáte mi do úst věci, které jsem neřekl. Zadruhé, ani slovem jsem nenaznačil, že by možnost srovnání existovala pro všechny druhy projektů. Lze samozřejmě srovnávat jen ta řešení, která jsou v obou jazycích proveditelná. Nečekal bych, že mě budete takto chytat za slovo.
Výrok o chameleónovi opět plyne z nepochopení toho, co jsem napsal. Tedy se ptám: Jak jste přišel na to, že [obhajuji | mám v oblibě] Javu? Její dnešní využití možná není dobrým řešením, ale nikdo s tím v nejbližší budoucnosti nic nenadělá. Java je prostě jeden z mnoha open-source nástrojů a žádného zlého démona v ní nevidím. Windows mi vadí mnohem víc, proto jsem se o nich zmínil. Neobhajuji Javu podílem na trhu ani jakkoli jinak.
Zklamání osobou diskutéra je oboustranné. Toto je už cca pátá diskuse, u které vidím, jak vyvoláváte naprosto zbytečný flamewar. Pokud nemáte rád Javu, rozhodně nejste sám. To ale ještě není dost dobrý důvod k neobjektivnímu zpochybňování některých jejích kvalit. Mně Java rozhodně nepřirostla k srdci. Ale co s tím asi tak nadělám?
Já ale problém nevidím. Ten pragmatický přístup je mi velmi blízký. Ale reagujete tady opravdu ve stylu boje s větrnými mlýny.
Dobře tedy, nechť jsem třeba mladý a hloupý. Buďte rád, že vy jste chytrý. Doufám jen, že to s tím černobílým světem byl pouze vtip. Kdyby mi bylo patnáct, možná bych podobnou výtku byl schopen přijmout. Ale není mi patnáct.
Já ale problém nevidím...Slepota? Fanatické zaslepení?
Jste si jist, že víte, na co reagujete?
C++ mám zařazené - potřebuji rychlost, efektivitu, či na systémové zdroje nenáročný program? Či program, nebo fragment, kde chci naprosto všechno do posledního detailu mít pod kontrolou? C++ nemá konkurenci a IMHO žádný vhodnější kandidát neexistuje.C + asm.
Java samotna je jednoducha, az nudna. Sice to neni tak cool, jako Lisp a jeho "makra upravujici makra, ktera muzou upravovat dalsi makra upravujici puvodni makra".Tak to bych si vyprosil - na spoustu jiných věcí bych klidně mlčel, ale že Java je jednoduchá a nudná? Kdybych porovnal CLHS (nebo aspoň tu část, co upravuje jazyk, nikoli standardní knihovnu) a specifikaci Javy, nejspíše bych dospěl k výsledku, že specifikace Javy je několikrát nafouklejší. A to vůbec nemluvím o padesátistránkové specifikaci Scheme.
Java tu jednoduchost maskuje. Chceš spojovat řetězce? Klasické String + String je neefektivní, takže musíš použít StringBuffer, anebo StringBuilder, které se liší v tom, zda jsou, či ne thread-safe,Klasické
String+String
(a to i pro víc než dva Stringy) kompilátor přeloží jako new StringBuilder(String1).append(String2)
, takže rozdíl není v efektivitě. StringBuilder (nebo starší synchronizovaný StringBuffer) se používá tam, kde kompilátor nemůže uhodnout, že jde o spojování do stále jednoho celku, a kde by zbytečně neustále vytvářel StringBuildery a převáděl je na řetězce.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.