Prezentace z mé části lednového CZJUGu jsou ke stažení tady.
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í.
Dejte mi zadání
Nedávno jsem si uvědomil, že používám techniku, která na první pohled nevypadá moc agilně. Chci po lidech písemné zadání práce. Možná se ta finta může hodit i vám. Tu situaci asi znáte. Někdo za vámi přijde a chce po vás udělat nějakou změnu v programu. Může to být nová funkcionalita, kterou vám zadává člověk z marketingu, nový nápad vzešlý z testování nebo něco od spolupracujícího oddělení. Může se jednat o něco pracnějšího, ale klidně i doopravdy malou a jednoduchou změnu.
Ve všech podobných případech si říkám o písemné zadání. Samozřejmě se nemusí jednat o sáhodlouhý dokument v předem připravené šabloně. Pokud je to trivialita, stačí jedna nebo dvě věty v mailu, pokud je to něco většího, většinou se spokojím se stránkou na Wiki.
Asi se ptáte proč je to tak důležité, proč jsem takový potížista a připravuji ostatní o čas? Mohl bych vám odpovědět zástupnými vysvětleními, jaké dávám těm kdo mi tu práci zadávají. Když se mě ptají oni, tak říkám, že to je proto, aby měli testeři podle čeho testovat. Nebo jím říkám, že jsem sklerotik, a mohl bych některé důležité detaily zapomenout. Další oblíbená odpověď je také taková, že se tím předejde případným sporům v budoucnu. Tyto všechny důvody jsou pravdivé a nesmírně užitečné. Ten hlavní je ale způsobený takovým těžko vysvětlitelným kouzlem. Když zadavatele donutím sepsat to co chce, donutím ho se nad danou věcí zamyslet. Často pak za mnou přijde znovu s tím, že chce něco jiného nebo že vlastně nechce nic, protože si to rozmyslel. Nejsem psycholog, takže to neumím vysvětlit, ale když lidé mluví, tak myslí jinak, než když píší. Znám to i z vlastní zkušenosti, občas mám geniální nápad, který i dobře zní, když ho někomu vysvětluji. Když ho ale začnu sepisovat, tak v něm najdu díru. Předpokládám, že něco podobného platí i pro ostatní.
Pokud tu fintu budete zkoušet sami, mám pro vás pár praktických rad. Pokud po někom chcete něco písemně, může to vypadat, že tu věc nechcete dělat nebo že chcete zdržovat. Je proto důležité druhé straně vysvětlit, proč je to užitečné i pro ně. Moje sociální vlohy jsou sice slabé, ale i tak se málokdy odvážím někomu říci, že se bojím, že to nemá dost promyšlené. Většinou argumentuji tím, že chci aby testeři měli podle čeho testovat. To obvykle zabere.
Často se taky setkáte s tím, že zadavatel nemá čas. To je zapeklitý oříšek. Často je to totiž člověk, který je formálně důležitější než vy. I tak je dobré zkusit mu vysvětlit, proč je to užitečné. Argumentů sami vymyslíte určitě spoustu. Pokud jste odvážnější, můžete se zeptat, kolik času mu může trvat napsat jeden odstaveček. No a pokud jste nevycválaní jako já, můžete ocitovat agilní poučku, která říká, že pokud nemá zákazník dost času aby něco pořádně zadal, tak to pro něj asi není dost důležité. Ale to je jen finta pro silné povahy, která navíc moc nezabírá.