Omezení vs. svoboda
July 28th, 2008Dneska 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.