Haskell a Erlang pro začátečníky

To víte, důchodce… Dneska se to ještě naučím, za deset let těžko.

Na úvod vysvětlení: Postavit si ZX80 z diskrétních součástek je pěkná výzva (a informace k tomu nabízí Martinův osmibitový blog). Ale když já nemám moc televizí, zato VGA monitorů habakuk, tak na to musím jít jinudy.

Idea klasické osmibitové konzole s moderními součástkami mě láká už řadu let. Nakonec jsem použil Propeller, což je takový šikovný jednočip, který má v sobě osm jader. Jo, osm. Do jednoho si zadrátujete zobrazovací jednotku, která posílá ven signál pro VGA, do druhého nějakou repliku SIDa nebo AY-3-8912 nebo něčeho takového, do třetího třeba CPU z 6502, a ještě máte pět jadýrek na vymýšlení veselostí. Takže do jednoho klávesnici a myš, do dalšího joystick a práci se SD kartou… Víte vy, jaká je to krásná práce? Do toho důchodu ideální!

Osmijádrový procesor, to člověka láká, že by si zkusil nějaké paralelní programování, pocvičil se v asynchronních jazycích… A pak si říká: „Nojo, to je fajn, a co udělat opravdu velkou desku se spoustou (spousta == 16, prozatím) malých blbých jednočipů, co by dělaly malé úlohy, a všichni dohromady udělají moc?“

A v tu chvíli narazíte na to, že psát pro tohle v Céčku nebo v ASM bude totál brutál harakiri. Takže co jiného? Nabízí se Lua, pro kterou už implementace na jednočipy jsou. Nabízejí se další jazyky, které jsou dělané pro paralelní prostředí (Erlang). A když už jsme u toho, co ještě zkusit něco interaktivního ve stylu „program jako stav systému“, a la Smalltalk? Ale ne objektové, spíš funkcionální… Haskell?

Na Erlang i Haskell jsem se koukal a obojí se mi něčím zamlouvalo. Chtělo by to ale trošku systematicky… Tak jsem se zeptal na Twitteru na nějaké dobré materiály. Zde jsou jejich doporučení (všem, co doporučili, patří díky), můžete se inspirovat:

Haskell:

Erlang: