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í.
Haskell – dnes jsem z toho dělal zkoušku.
Scala – opravdu zajímavý jazyk, občas mám pocit, že autor chtěl Pythonistům, Rubystům etc. říct “Ale ono to jde i staticky.”. Dostal jsem o něm knihu a budu se mu dále věnovat.
Prolog – Tuším, že ten mám na příští semestr.
Clojure – Již jsem nakoukl, ale jak LISP, tak dynamické typování mi nevoní.
Ruby – Také jsem lehce nakoukl a dynamické typování mi nevoní.
Erlang – něco málo jsem o tom slyšel.
IO – co to je? Slyším o tom poprvé. S prototypy jsem se ještě neskamarádil.
Mimochodem, tady jsem si vzpomněl na Jaskell – klon Haskellu do JVM. Zatím jsem jen tak lehce nakoukl, ale mohl by být taky zajímavý. U mě se asi kvůli Scale reálně neuchytí. Dost by mě zajímalo, jak na tom bude s optimalizacemi, např. jak si poradí s tímto:
f 0 = 1
f n = n * (f (n-1))