Category Archives: Knihovnička SE

Sedm jazyků za sedm týdnů

Chci vás jen upozornit na zajímavou knihu Sedm jazyků za sedm týdnů, kterou napsal Bruce Tate. Jde o takový letmý úvod do sedmi programovacích jazyků, které nejsou mainstreamové, ale jsou něčím zajímavé.

Dočtete se o Ruby, které je sice objektové, ale dynamicky typované a zkrátka jiné, než Java na kterou jsem zvyklý.

Dalším jazykem je IO, o kterém jste asi nikdo neslyšel, ale pěkně ukazuje myšlenky objektového programování za pomocí prototypů. Něco jak má JavaScript.

Pak tu máme Prolog, který je starý, známý na univerzitách, ale v praxi se s ním moc často nesetkáte. Zase úplně jiný styl programování. Dovolil bych si říci superdeklarativní.

Nesmí chybět ani Scala, která umí skoro všechno co umí ostatní, ale není díky tomu tak čistá.

Po ní přijde na řadu Erlang, který je výjimečný svojí robustností a paralelizovatelností.

Předposledním jazykem je Clojure, což není nic jiného než zakuklený Lisp běžící nad JVM.

Peloton uzavírá Haskell, zástupce čistě funkcionálních jazyků. Údajně jeden z mála úspěšných jazyků navrhovaných komisí a ne jednotlivci.

Pro mě tato kniha byla hodně užitečná. Docela jsem si rozšířil obzory. Na škole jsme to totiž buď nebrali nebo jsem nedával pozor, takže i uvedené základy pro mě byly přínosné. Jenom musím upozornit, že se opravdu nejde moc do hloubky, u každého jazyka se dozvíte jaké jsou jeho zvláštnosti, pár jeho předností a na co se to asi dá použít. Vše ukázáno na více či méně zajímavých příkladech. Nic víc, nic méně. Z vybraných jazyků jsem znal jen Scalu a o té se v knize dočtete opravdu jen to nejnutnější. Očekávám, že u ostatních jazyků to bude stejné.

Takže nečekejte žádné referenční příručky, spíše jen takové odkazy pro další studium. Ale i tak to mohu doporučit, člověk si rozšíří obzor a uvědomí si, že není jen silně typované objektově orientované programování. Jelikož se to navíc docela dobře čte, tak dávám sedm hvězdiček z deseti.

Pokud ji chcete koupit elektronicky, pak doporučuji stránky vydavatelství. Dostanete jak verzi v PDF, tak mobi pro Kindle a epub pro další zařízení. Všechno bez DRM, jen tam je napsáno, že to je připraveno pro vás. Tak se mi to líbí.

iWoz

Nevěřím, že cokoliv revolučního bylo kdy vymyšleno komisí. Komise by se na tom totiž nikdy nedohodla!
Steve Wozniak

Jenom chci upozornit na docela zajímavou knížku. Jmenuje se iWoz a je to autobiografie Steve Wozniaka, člověka, bez kterého by nevznikla firma Apple, člověka, který prý jako první sestrojil osobní počítač s klávesnicí a monitorem. Docela dobře se to čte, člověk se tam i dost věcí doví. Knížka mi hodně připomněla „To nemyslíte vážně, pane Feynmane!“, oni si oba pánové byli asi dost podobni. Takže pokud vás zajímá jak fungují a žijí géniové, tak doporučuji.

Docela mě zaujala myšlenka o tom, jak nic revolučního nikdy nebylo vymyšleno komisí. Přesně to samé psal i pan Brooks v knize, o které jsem psal minule. Ten tam měl i takovou pěknou tabulku, kde uváděl produkty, které mají zanícené fanoušky.

Fandové Normání
iPhone Mobil
Apple II PC
Rozhranní Macintoshe Windows
UNIX z/OS (MVS)
Pascal Algol
Fortran Cobol
Python Appletalk

Zajímavé je, že věci napravo vznikly pomocí formálního procesu, věci vlevo vznikaly mimo normální produktové procesy. Neznamená to, že by věci vpravo byly horší, jenom už nejsou tak originální a je méně časté, že by k nim lidi měli emocionální vztah. Mimochodem, právě Steve Wozniak, je autorem Apple II.

Návrh návrhu

Nejtěžší část návrhu je přijít na to, co vlastně navrhujeme.

Nakonec mi pomalu začalo docházet, že to nejužitečnější, co pro zákazníka dělám, je pomoc v rozhodování o tom co vlastně potřebuje.

Jakýkoliv pokus o formulaci všech možných požadavků na začátku projektu selže a způsobí podstatné zpoždění.
PAHL AND BEITZ, ENGINEERING DESIGN

Po delší době se mi do rukou dostala technická knih, který mě opravdu zaujala. Nespáchal ji nikdo jiný než Fredercik Brooks a jmenuje se The Design of Design: Essays from a Computer Scientist.

Pokud si nevybavujete, kdo je pan Brooks, tak vám připomenu, že to je člověk, který napsal v roce 1975 klasiku „The Mythical Man Month“, dělal projekťáka při konstukci IBM System/360, pomáhal americké armádě s projekty a podobně. Zkrátka je to člověk, který ví, o čem mluví.

Z té knihy je to vidět. Mluví v ní obecně o návrhu software, hardware, domů nebo i knih. Dost se v knize opírá do našeho oblíbeného vodopádového modelu. V zásadě říká, že vodopád nemůže efektivně fungovat, což mě od člověka takového formátu těší. Kniha by se dala číst jako chvála agilního vývoje, i když slova agilní jsem si všiml jenom jednou. Ale jinak tam prosazuje většinu agilních fint jako používání vlastní hlavy, používání iterací, důraz na talentované lidi nebo třeba častou komunikaci se zákazníkem. Staví se také proti používáni rigidních procesů, když chce člověk vymyslet něco inovativního.

V první části představuje racionální postup při návrhu. Něco ve stylu „dokud nejsou splněny všechny požadavky a návrh není dost dobrý, procházej všechny možnosti návrhu a hledej ty které maximalizují užitnou hodnotu.“ V dalších částech vysvětluje proč tento postup nejde použít. Například proto že možností návrhu je nesmírné množství, požadavky jsou nejisté a nestálé, užitná hodnota je vágně definovaná a podobně. Určitě to znáte sami, pan Brooks to ale pěkně systematizuje.

Zajímavá kapitola je o racionalizmu a empirizmu. Je to trochu filozofický problém, ale pro nás velmi důležitý. Točí se kolem otázky: „Dokáži jenom pomocí přemýšlení správně navrhnout složitý objekt?“ Racionalisté věří že ano, empirici věří že ně. Já se stejně jako autor řadím mezi empiriky, ale dovedu si představit, že někdo věří i v opak. Mám za to, že ho z toho praxe rychle vyléčí, ale je možné že ne. V knize se dozvíte více detailů i argumentů pro empirizmus.

V dalších kapitolách se zamýšlí, jak tedy ten návrh dělat, pokud na to není žádný recept. V zásadě tvrdí něco podobného jako agilisti: „Sežeňte si šikovné designéry a dejte jim prostor a prostředky k tomu, aby se mohli realizovat.“

Samozřejmě i na této knize najdete pár mušek. Třeba v kapitolách 17 a 18 navrhuje dokonalý systém pro domovní architekty. Musím se přiznat, že tyto části jsem přeskočil. Dobrý úlet je i část 16, kde popisují, jak se ještě s jedním spoluautorem pokoušeli zaznamenat rozhodnutí kolem návrhu. Kdyby se jim to povedlo, bylo by to užitečné. Často totiž potřebujete vědět, proč je daná věc navržená zrovna takto, z jakých požadavků rozhodnutí vycházelo, proč to není uděláno jinak a podobně. Bohužel narazili na problém, že struktura popisu odráží strukturu navrhovaného systému, no a když se mění struktura návrhu, musíte měnit i strukturu popisu a je v tom zmatek. Takže je to něco ve stylu průkopníci slepých uliček.

Ale jinak je to kniha hodně dobrá, takže dostává úžasných osm hvězdiček z deseti. No a protože jsem v poslední době okouzlen službami Amazonu, přikládám odkaz na místa, která si čtenáři v knize často zvýrazňují.