Počítače mě vždycky fascinovaly, nejspíš už od okamžiku, kdy jsem na klávesnici počítače ZX Spectrum zadala LOAD ""
(a nahrála jednu ze svých oblíbených her).
Vždy jsem ale byla přesvědčená, že programování není pro mě. Setkala jsem se třeba s Pascalem a s JavaScriptem, ale od určité chvíle mi kód pokaždé začal připadat moc komplikovaný a nepřehledný, a tak moje schopnosti končily u HTML a CSS a úprav WordPressu nebo Prestashopu.
Beautiful clean syntax
Před pár lety jsem se dozvěděla o programovacím jazyku Erlang (viz kultovní Erlang The Movie; v Erlangu je naprogramován například Whatsapp) a potom o Elixiru, který vznikl na jeho základě. A když jsem poprvé viděla ten krásný přímočarý kód, efektivní, čitelný, snadno pochopitelný – a snadno zapsatelný, okouzlilo mě to.
V podstatě píšete to, co to má dělat. Jako fakt. Když máte vymyšlený postup, algoritmus, jak věc chcete řešit, prostě to zapíšete. Krok za krokem.
Celá syntaxe je krásně jednoduchá, nikde nic zbytečného, žádné středníky a jiné klikyháky. Nemusíte předem definovat proměnné: když napíšete a = 1, tak prostě a je jedna. K tomu ještě kouzlo pattern matchingu, deklarativní způsob programování a využití rekurze a výsledný kód je tak stručný, že občas skoro nemůžu uvěřit, že opravdu funguje – připadá mi, že tam není skoro nic napsané :-)
Tahle elegance uspokojuje i moje estetické cítění.
(Skutečně, spoustu užitečných funkcí, které ještě ani nedovedu plně ocenit, člověk zprovozní doslova několika řádky kódu. Třeba posílání zpráv mezi procesy nebo vytvoření distribuované aplikace.)
Pro ukázku úplně jednoduchá funkce s argumentem „x“:
def number(x) do cond do x > 0 -> "positive" x < 0 -> "negative" x == 0 -> "zero" end end
cond do – „za podmínky že …, vrať …“:
x > 0 – vrať výsledek positive
x < 0 – výsledek je negative
x je rovno 0 – výsledek je zero
Hotovo.
Getting started
Vloni na vánoce (2018) jsem narazila na Advent of Code. Na každý den adventu je daná úloha, kterou si můžete zkusit naprogramovat a vyřešit. Viděla jsem video z řešení jedné úlohy právě v Elixiru (a velké části z toho jsem nerozuměla), ale inspirovalo mě to k nápadu, že další rok bych si ty úlohy chtěla umět naprogramovat sama.
Začátkem letošního roku chuť poškádlit mozkové buňky a naučit se něco úplně nového konečně zvítězila a nainstalovala jsem si Elixir :-)
Jako první jsem si přečetla getting started guide to Elixir a rozečetla pár knížek. Pak jsem si stáhla lepší editor kódu – Visual Studio Code (asi jediná fakt dobrá věc od Microsoftu – běží dokonce i v Linuxu!), který kromě jiných vychytávek kód sám přeformátuje a zarovná. A začala jsem zkoušet psát první funkce. Ze začátku mi každou chvíli něco nefungovalo, než jsem si zvykla na ten styl programování, a pořád občas koukám do dokumentace Elixiru pro nápovědu.
Postupně jsem naprogramovala několik úkolů ze zmíněného Advent of Code a paralelně jsem začala řešit úkoly na Exercism, který mohu doporučit jako skvělý způsob, jak se naučit programovat. (Můžete si vybrat z 50 programovacích jazyků a postupně řešíte úkoly, na kterých si osvojíte používání jednotlivých funkcí. Úkoly vám zkontroluje mentor, případně poradí, a můžete se i podívat, jak problém řešili jiní studenti a inspirovat se. Zdarma :-))
První výtvor
Pak jsem se začala učit Phoenix Framework – framework na tvorbu webových aplikací, který běží právě na Elixiru. A mezitím, jako na zavolanou, vyšlo 14. března 2019 Phoenix LiveView, knihovna, která nahrazuje použití JavaScriptu, takže při tvorbě např. interaktivních formulářů nebo pohyblivých efektů na webu si člověk vystačí jen se znalostí Elixiru a HTML. A celkově je všechno to kódování jednodušší :-)
Nově motivována tím, že ke kódu můžu vytvořit i nějakou grafiku, jsem v Elixiru za použití Phoenixu a LiveView naprogramovala malou webovou aplikaci – hru, takové „technologické demo“.
Při její tvorbě jsem vlastně hned využila „zkušenosti“ z Advent of Code, kde v některých úlohách šlo o vypočítání pohybu po hrací ploše. Stačilo jen k tomu přidat grafiku.
Zahrát si ji můžete zde: elegant-monstrous-planthopper (funguje bohužel jen na počítači, protože se ovládá šipkami). Více o hře v článku The Hippo Game.
Learn you some Elixir
Jako začátečník, který donedávna programovat v podstatě neuměl, Elixir vřele doporučuji – je radost v něm programovat :-)
Thanks
Díky patří tvůrcům Erlangu:
Joe Armstrong, Robert Virding a Mike Williams,
tvůrci Elixiru:
José Valim,
autorovi Phoenix Frameworku:
Chris McCord
a mému skvělému osobnímu mentorovi Bosskovi :-))
V češtině se o Elixiru můžete dozvědět více na Elixirlab.cz – blogu o programovacím jazyku Elixir, kde jsem jedním z autorů, a také sledovat náš twitter @elixirlabcz.
Přemýšlel jsem, že se naučím Elixir a zkusím si v něm něco napsat. Při hledání zdrojů jsem kápnul na tenhle zápisek a fakt ho musím pochválit, jako motivační povídání je to super.
Dávám (trochu se zpožděním) 1*.
Dakš
Díky moc za komentář! To mě potěšilo, že tenhle můj zápisek zní jako motivace :-)
Ať se daří!
Cool. Postupne prechazim z Ruby na Elixir. Strastiplna cesta, ale rozhodne to neni nudne. Kod v Ruby je stihly, zadny bloated svinstvo jako Java a cela rada dalsich jazyku. Kod v Elixiru je jeste stihlejsi. A ten jazyk se mi zatim hodne libi.
Díky za komentář :-) Jojo, taky se mi moc líbí, jak je kód v Elixiru minimalistický. Tak přeju hodně úspěchů!