Eseje Paula Grahama jsou tak úžasné čtení, že jsem se rozhodl (s jeho laskavým svolením), že některé přeložím do češtiny (překlad uvolňuji pod licencí Creative Commons by-nc-sa). Začínám esejí ještě z pravěku Javy. Sami posuďte, na kolik je text Java’s Cover po dvanácti letech (možná i s přihléd­nutím k tanečkům ohledně další verze) aktuální.

Duben 2001

Tato esej vznikla z diskuse s několika dalšími programátory o tom, proč vypadá Java podezřele. Nejedná se o kritiku Javy! Je to přípa­dová studie hacke­rova radaru.

V průběhu času si hackeři vytvořili cit pro dobré (a špatné) techno­lo­gie. Domníval jsem se, že by mohlo být zajímavé sepsat, proč mi je Java podezřelá.

Někteří čtenáři připus­tili, že se jedná o zajímavý pokus napsat něco, o čem předtím ještě nikdo nepsal. Jiní namítali, že se dostanu do potíží zdáním, že píšu o věcech, kterým neroz­umím. Dovolte mi vyjasnit (jestli to pomůže), že nepíšu o Javě (kterou jsem nikdy nepoužil), ale o hacke­rově radaru (o kterém jsem naopak přemýšlel hodně).

Slovní obrat „nesuď knihu podle obalu“ pochází z dob, kdy byly knihy prodávány v prostém lepen­kovém přebalu, kdy si ji každý kupující obalil podle svého vkusu. Tenkrát jste nemohli posoudit knihu podle jejího obalu. Nakla­da­telský průmysl ovšem pokročil: dnes si nakla­da­telé dají práci s tím, aby se podle přebalu dalo o knize něco říct.

Strávil jsem mnoho času v knihku­pec­tvích a mám pocit, že jsem se naučil rozumět všemu, co mi nakla­da­telé měli v úmyslu o knize říct a možná ještě o trochu víc. Čas, který jsem nestrávil v knihku­pec­tvích, jsem trávil převážně u počítače. Věřím, že jsem se rovněž naučil, do určité míry, posoudit techno­logie podle jejich obalu. Může to být štěstí, ale zachránil jsem se o několika málo techno­lo­gií, ze kterých se vyklubal pořádný zmetek.

Zatím se mi Java jeví jako zmetek. Nikdy jsem nenapsal žádný program v Javě, ne víc než prolis­tovat odbor­nými knihami, nicméně mám tušení, že to nebude příliš úspěšný jazyk. Může se ukázat, že se mýlím; techno­lo­gické předpovědi jsou nebez­pečná záleži­tost. Ale jako vzkaz budoucím generacím, zde jsou důvody, proč se mi Java nezdá:

  1. Kolem Javy je humbuk. Skutečné standardy nepotře­bují reklamu. Nikdo netlačil C, Unix nebo HTML. Skutečný standard v době, kdy o něm většina lidí slyší, je už obvykle zavedený. Perl je (na hacke­rově radaru) stejně velký jako Java, ne-li větší, a to jen díky vlastní zásluze.

  2. Java míří nízko. V původní bíle knize Gosling výslovně říká, že Java byla navržena tak, aby nebyla příliš obtížná pro programátory zvyklé na C. Byla navržena jako další C++, C plus několik myšlenek převzatých z pokroč­i­lejších jazyků. Stejně jako tvůrci sitcomů nebo nezdravé stravy, desig­néři Javy záměrně navrho­vali produkt pro lidi ne tak chytré jakou jsou oni. Historicky vzato se jazyky, navrho­vané pro jiné lidi, ukázaly být špatné: Cobol, PL/I, Pascal, Ada, C++. Dobré jazyky byly a jsou takové, které byly navrhování pro své tvůrce: C, Perl, Small­talk, Lisp.

  3. Java má postranní úmysly. Někdo jednou řekl, že svět by byl lepší, kdyby lidé psali knihy je tehdy, když mají co říct, než proto, že chtějí napsat knihu. Rovněž důvod proč neustále slyšíme o Javě není ten, že má něco říct o progra­mo­vací jazycích. Slyšíme o Javě jako součásti společ­nosti Sun podrýt Microsoft.

  4. Nikdo Javu nemiluje. C, Perl, Python, Small­talk, a Lisp programátoři milují své jazyky. Nikdy jsem neslyšel o někom, kdo by tvrdil, že miluje Javu.

  5. Lidé jsou donuceni používat Javu. Mnoho lidí, které znám, používají Javu, protože mají pocit, že musí. Buď cítí, že to musí dělat pro obživu; nebo si myslí, že zákazník to tak chce; případně jim to manage­ment nařídil. Jsou to chytří lidé. Pokud by daná techno­logie byla dobrá, používali by ji dobrovolně.

  6. Java má příliš mnoho kuchařů. Nejlepší progra­mo­vací jazyky byly vyvinuty malou skupi­nou. Zdá se, že Java je řízena komisí. Pokud se nakonec ukáže, že jde přesto o dobrý jazyk, bude to první případ v historii, kdy komise navrhla dobrý jazyk.

  7. Java je byrokra­tická. Z toho mála, co vím o Javě, se mi zdá, že existuje mnoho proto­kolů, jak věci dělat. Opravdu dobré jazyky takové nejsou. Nechají vás dělat, co chcete, a nepřekáží.

  8. Java je zdánlivě modní. Sun předs­tírá, že Java je řadový open-source jazyk jako Perl nebo Python. Javě se jen prostě přiho­dilo, že je kontro­lována obří společ­ností. Takže jazyk je spíš stejně fádní a neprak­tický jako cokoliv, co vzešlo z velké firmy.

  9. Java je navržena pro korporátní organi­zace. Ty mají jiné cíle než hackeři. Chtějí jazyky, které jsou (nebo se to alespoň má za to) vhodné pro použití ve velkých týmech složených z průměr­ných programátorů. Chtějí jazyky s nástroji jako omezovač rychlosti v náklaďáku U-Haul, který zabrání hlupákům v tom, aby nadělali příliš mnoho škody. Hackeři nemají rádi jazyky, které je znevažují. Hackeři chtějí jenom sílu. Čas ukázal, že jazyky navržené pro velké firmy (PL/I, Ada) prohrály, zatímco hackerské jazyky (C, Perl) vyhrály. Důvod: dnešní hackeři jsou zítřejšími technic­kými řediteli.

  10. Javu mají rádi nevhodní lidé. Programátoři, které nejvíce obdivuji, nejsou Javou celkem uchváceni. Kdo má rád Javu? Bílé límečky, kteří neroze­znají jeden jazyk od druhého, ale vědí, že o Javě četli v novinách; programátoři ve velkých firmách, kteří jsou ohromeni tím, že nalezli ještě něco lepšího než C++; absol­venti, kteří jsou připra­veni mít rádi jakýkoliv jazyk, který jim zajistí práci (píšem z toho písem­ku?). Názory těchto lidí jsou kam vítr, tam plášť.

  11. Byznys model Sunu je oslaben na dvou frontách. Levné proce­sory Intel, ty samé, které se používají na stolních počítač­ích, jsou nyní víc než dosta­tečně rychlé i pro servery. Navíc FreeBSD se zdá být minimálně stejně tak dobrý operační systém jako Solaris. Reklamy od Sunu naznač­ují, že potře­bu­jete Sun server pro průmys­lově nasazené aplikace. Pokud by to byla pravda, tak by Yahoo bylo první ve frontě na nákup Sunu. Jenže když jsem tam praco­val, všechny servery byly krabice s Intely, na kterých běželo FreeBSD. To je předz­věstí Sunovské budouc­nosti. Jestliže se Sun dostane do potíží, stáhnou Javu s sebou.

  12. Minis­ter­stvo obrany má rádo Javu, přesvědčují programátory, aby ji používali. To se mi zdá jako nejprůkaz­nější známka ze všech. Minis­ter­stvo obrany dělá kvalitní, i když drahou, práci zajišťující obranu země. Ovšem milují plány a proce­dury. Jejich kultura je opakem té hacker­ské. V otázkách softwaru mají tendenci se mýlit. Napos­ledy kdy opravdu měli rádi progra­mo­vací jazyk, tak to byla Ada.

Vězte, že tohle není kritika Javy, nýbrž jejího obalu. Neznám ji dosta­tečně na to, abych ji měl rád nebo nerad. Je to jen vysvět­lení, proč nelačním po tom se Javu naučit.

Může se to zdát povýšené zavrh­nout jazyk ještě před tím, než si v něm zkusím něco napsat. Ovšem je to něco, co musí dělat všichni programátoři. Existuje příliš mnoho techno­logií k naučení. Musíte se naučit posuzovat podle vnějších znaků a určit, které techno­logie vám stojí za váš čas. Podobně povýšeně jsem zavrhl Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, protokol SET, VMS, Novell Netware a mimo jiné i CORBA. Prostě smrděly.

Může se stát, že se v případě Javy mýlím. Snad jazyk protlačený velkou firmou, navržený komisí, určený hlavnímu proudu, vychva­lo­vaný do nebes, milovaný Minis­ter­stvem obrany, se přesto stane čistým, krásný a silným jazykem, ve kterém bych k rád progra­mo­val. Možná, ale zdá se mi to velmi nepravděpodobné.

Anketa