Pondělí, červen 06, 2005

Něco shnilého na Java Hot Spot?

Přečetl jsem zajímavý článek od Slava Pestova, který je mimo jiné autorem skvělého jEditu, ve které kritizuje Java Hot Spot od Sunu. Je to tak zajímavé, že zde předložím pár jeho podle mne nejdůležitějších myšlenek. Slava Pestov se oficiálně dostal k aktuálním zdrojovým kódům Java Hot Spotu:

  • Zdrojový kód má 3 miliony řádek v C++ a Javě. To je příliš mnoho na to co dělá.
  • Obrovské množství kódu bylo viditelně napsáno pomocí Copy & Paste a potom opraveno pomocí Search & Replaced .
  • Masivně je použit preprocesor. Slava Pestov k tomu uvádí, že jde u Sunu o pokrytectví, kdy u Javy hlásá, jak špatné preprocesory jsou a potom je sám pro vývoj Javy používá.
  • Velmi špatná implementace reflexe.

Co je podle autora nejhorší je, že zdrojový kód není napsán podle "best practices" nebo "design patterns", které jsou tak doporučovány.

Článek je uzavřen větou: Fanatičtí Javisté říkají, že Java není pomalá a že spotřeba paměti u Javy je ospravedlnitelná. Podle mne je Java runtime napsaný tak špatně, že je s podivem, že vůbec pracuje.

Pokud má skutečně Slava Pestov pravdu, tak je to pro vývojáře v Javě velmi dobrá zpráva. Ano skutečně, nezbláznil jsem se. Pokud by dnešní Java byla napsána ideálně, podle všech pravidel a navíc maximálně optimalizována (tyto požadavky si navzájem odporují), tak by to byla pro ni tragédie. Nic by totiž již nešlo zlepšovat. Pokud je tak taková spousta chyb a nedodělků, tak má Java před sebou ještě velkou budoucnost ve které se bude stále vylepšovat, protože se má kde optimalizovat.

Já osobně bych tak kritický nebyl. Javu zde máme mnoho let a pracovalo na ní mnoho lídí. To, že je zde mnoho duplikovaného kódu, na to není nic divného. Chyby jsou asi normální a pamatuji se, že když bych zveřejněn zdrojový kód prohlížeče Netscape, tak se ho Open Source komunita pokusila rozšířit a po několika letech ho raději začala psát znovu a vytvořila dnešní Gecko (Firefox apod.). Kód byl nepoužitelný.