|
| 1 | +--- |
| 2 | +title: "Workshop Clojure" |
| 3 | +layout: event |
| 4 | +categories: |
| 5 | + - Clojure |
| 6 | + - Workshop |
| 7 | +tags: |
| 8 | + - Clojure |
| 9 | + - Workshop |
| 10 | +img: "/assets/images/event/clojure.png" |
| 11 | +--- |
| 12 | + |
| 13 | +**Clojure** je univerzální dynamický jazyk běžící nad JVM(Java virtual machine) založený na **LISPu a funkcionálním paradigmatu**. Společně si projdeme jeho základy a na praktických příkladech si ukážeme jednotlivé principy, na nichž je založený. Pokud Tě téma zajímá, tak doraž **ve středu 23. 10.** do **T9:302** v Nové budově ČVUT na workshop, který povede student **Honza Šuráň**. |
| 14 | + |
| 15 | +A o co tedy půjde? **Clojure** je programovací jazyk založený na LISPu typicky běžící nad JVM, který podporuje interaktivní vývoj přes REPL |
| 16 | +i ahead-of-time kompilaci. I přesto, že je kompilovaný, zůstává kompletně dynamický - každá funkce Clojure je |
| 17 | +podporovaná i za běhu programu. Jednoduše interaguje s Javou, může tedy využívat libovolné Java knihovny |
| 18 | +a všechny další výhody JVM v plné míře. Také lze případně volat Clojure z Javy. |
| 19 | + |
| 20 | +Je to dialekt LISPu a sdílí s ním přístup "kód jako data" a mocný systém maker. Je převážně funkcionální a |
| 21 | +založený na imutabilních datových strukturách. Za potřeby měnitelného stavu nabízí systém softwarové transakční |
| 22 | +paměti (STM) a systém agentů pro zajištění čistého a správného návrhu vícevláknového programování. |
| 23 | + |
| 24 | +Společně si ukážeme syntax Clojure a základy obecných principů zmíněných výše tak, aby se do Clojure dostali |
| 25 | +i tací, kteří s funkcionálním programováním nebo LISPem nemají zkušenosti. A zkusíme si trochu zaprogramovat! |
| 26 | + |
| 27 | +Bude se však hodit rozjeté vývojové prostředí (viz [zde](https://clojure.org/guides/getting_started)). |
| 28 | +Doporučením je kombinace IntelliJ + plugin Cursive a build systém Leiningen. Nicméně, můžete používat např. |
| 29 | +Neovim, Emacs nebo VS Code, nicméně workshop bude probíhat v prostředí zmíněmém výše a tedy případné problémy může být těžké rychle vyřešit. |
| 30 | +Na unixových systémech lze vše rozběhnout s pomocí package managerů. Pro Windows existuje těchto pár kroků: |
| 31 | + |
| 32 | +- instalace package manageru pro Windows: [Scoop](https://scoop.sh/) |
| 33 | +- instalace Javy - pokud ji nemáte, můžete využít právě [Scoop](https://github.com/ScoopInstaller/Java) |
| 34 | +- [instalace Clojure](https://github.com/littleli/scoop-clojure) - opět přes Scoop |
| 35 | +- [instalace Leiningen](https://wiki.leiningen.org/Packaging): lze opět přes Scoop: `scoop install leiningen` |
| 36 | + |
| 37 | +... and you're good to go! |
| 38 | + |
| 39 | +Kdybyste měli jakékoliv problémy, napište na Discord Honzovi Šuráňovi(@Honza_Suran). |
| 40 | + |
| 41 | +Těšíme se na Tebe! |
0 commit comments