Dneska vás čeká pikorecenze knihy The Best Software Writing, kterou zkompiloval Joel Spolsky. V podstatě jde o souhrn článků, které Joel považuje za dobré. Musím se přiznat, že mě kniha moc nezaujala. Obsahuje pár hodně zajímavých článků a několik řekněme nadprůměrných. Nejvíc se mi asi líbil článek Strong typing vs. Strong testing od Bruce Eckela. Doporučuji vám si ho přečíst, poskytuje zajímavý pohled na problematiku dynamických jazyků.
Ale jinak bych vám spíš doporučil přečíst si Joela samotného, této knize dávám pět hvězdiček z deseti.
JOS, yes!
I já jsem se o víkendu zúčastnil JOpenSpace. Původně jsem chtěl o akci něco napsat, ale bylo by to nošením dříví do lesa, už to udělali jiní. Takže bych chtěl jen poděkovat Srakyimu za zorganizování a ostatním účastníkům za zajímavé diskuze. Díky.
Omezení vs. svoboda
Dneska začnu hodně ze široka. Vydal jsem se na jazykový pobyt do Irska. Dostal jsem půlroční kontrakt v AerLingus, nicméně to zatím vypadá, že jediné co mám šanci se tam naučit je angličtina. Ne, že bych to nepotřeboval.
To, že jsem v Irsku má ale jednu velkou výhodu, když si objednám knížku na britském Amazonu, mám ji do dvou dnů doma. Takže se máte na co těšit. Dneska jsem začal číst knížku „The Best of Software Writing“, kterou sestavil Joel Spolsky. No a hned u první kapitoly mě popadla chuť napsat článek, na který se chystám už dlouho. Dokonce si nejsem jistý, jestli jsem ho už nenapsal. Snad ne.
Ta první kapitola je ve zkratce o tom, že styl je důležitý. Autor v ní hájí myšlenku, že by měl kompilátor kontrolovat styl. Tzn. každý jazyk by měl mít předepsaný styl, který by byl jediný správný. Třeba v Javě by se musely složené závorky psát na novém řádku, mezi klíčovým slovem if a závorkou by musela být právě jedna mezera atp. Kompilátor by odmítal zkompilovat cokoliv, co by tento styl nedodržovalo. Odpadly by zbytečné hádky o tom, který styl je lepší, odpadlo by spousta zbytečných nastavení vývojových prostředí. Krása, že?
Na druhou stranu se dostávají do módy jazyky, kde je styl naprosto nedůležitý. Kde si můžete vybrat, jestli kolem parametrů metody napíšete závorky nebo ne. Kde můžete mít desítky různých příchutí jazyka, které si ani nejsou podobné.
Zvláštní, na jednu stranu voláme po svobodě, nechceme se zdržovat deklarováním proměnných ani psaním složených závorek. Na druhou stranu chceme mít víc omezeni, chceme větší typovou kontrolu a anotace, které za nás budou hlídat obsah polí. Někteří dokonce chtějí mít předepsáno, kde smí napsat mezeru.
Jedna možnost je, že se nejedná o ty samé lidi. Je možné, že někdo má sklon spíš ke svobodě a druhý spíš k omezení. Někomu vyhovuje Ant, někomu Maven.
Druhá možnost je že záleží na úkolu (jaké překvapení). Někdy se nám hodí volnost, jindy omezení. Tady jenom nevím jak poznat, který případ se nás týká.
No musím se přiznat, že jsem udělal zásadní pisatelskou chybu. Začal jsem psát, aniž bych věděl, jak to dopadne. Doufal jsem, že se to nějak vyvrbí. A ono ne. Takže pokud čekáte pointu tak vás zklamu.
Můžu jenom napsat jak to cítím já. Já osobně nesnáším omezení. To víte, jsem velice kreativní a jakékoliv omezení umělce mé úrovně brzdí. Ale co opravdu vítám je omezení ostatních. Však to znáte, kolegové jsou hrozná prasata, jejich programovací styl je strašný, kdyby jim to kompilátor dovolil, tak snad píší azbukou nebo co. Omezení na ně, čím víc tím líp.