Created by Pavel Klavík
https://orgpad.com/s/openalt23
Vytvořen Richem Hickeym v roce 2007 po dvou letech práce. Jméno Clojure vzniklo spojením jmen jazyků C#, Java a Lisp (CLJ). Je to stabilní jazyk s malým jádrem. Existuje pro něj spousta úžasných knihoven a nástrojů. Hlavní filozofie Clojure je jednoduchost. |
Firmy jako Apple, Facebook, Netflix, WalmartLabs, Nubank, ...
Místo f(x,y,z) píšeme (f x y z).
Jazyk je hostovaný na různých platformách a máme k nim přímo přístup. Proto je jednoduché použít libovolnou knihovnu a naopak nativní kód může používat kód napsaný v Clojure. Je jednoduché přidat Clojure do existujícího projektu. V mnoha firmách ho tam přidal jeden programátor a později ho začal používat celý tým.
Původní nejvíce používaná verze Clojure běží nad JVM. Lze použít libovolnou Java knihovnu a naopak je možné napsan nové knihovny, které lze použít z Javy. Stačí přidat clojure.jar do projektu.
ClojureScript je verze jazyka, která se kompiluje do JavaScriptu. Používá Google Closure Compiler, který optimalizuje a minimalizuje kód.
ClojureDart je verze, která se kompiluje do Dartu. Ten umožňuje vývoj nativních desktopových a mobilních aplikací a použití Google Flutter.
Rychlé nativní Clojure skriptovací prostředí, mocná náhrada bashe.
Uvažme nástledující kód v Javě:
Může být mnohem přehledněji zapsán v Clojuru:
Více informací o Java interopu a Javascript interopu; balíčky z npm lze používat pomocí via Shadow-cljs.
Internet běží na textových zprávách. Formáty jako HTTP nebo JSON jsou použitelné pro kohokoliv. ORM a další binární formáty ne.
Idea Clojure je použít stejné techniky na programování vnitřků systémů. Takže rozdílné části systému komunikuji pomocí zpráv obsahujících data.
Data lze jednoduše zobrazit, analyzovat, lze na ně aplikovat jednu sadu funkcí, komunikace je transparentní. Aplikujeme transformace, které mění data. Jméno funkcionální programování chybně dává do popředí transformace, data jsou to nejdůležitější.
Existuje celá kniha od Yehonathan Sharvita která vysvětluje výhody reprezentování dat pomocí map a vektorů, místo OOP objektů. Redukuje to komplexitu, celý systém je lépe srozumitelný a snadněji se v něm provádí změny. Tato kniha vysvětluje benefity programování v Clojure, ale ukazuje to na příkladech v JavaScriptu.
Toto je Reactová komponenta. Další příklady naleznete na https://reagent-project.github.io/.
(def books
[{:title "The Catcher in the Rye" :author "J.D. Salinger" :year 1951}
{:title "Franny and Zooey" :author "J.D. Salinger" :year 1961}
{:title "To Kill a Mockingbird" :author "Harper Lee" :year 1960}
{:title "1984" :author "George Orwell" :year 1949}
{:title "Animal Farm" :author "George Orwell" :year 1945}
{:title "Pride and Prejudice" :author "Jane Austen" :year 1813}
{:title "Sense and Sensibility" :author "Jane Austen" :year 1811}
{:title "The Great Gatsby" :author "F. Scott Fitzgerald" :year 1925}
{:title "Tender Is the Night" :author "F. Scott Fitzgerald" :year 1934}])
Host remote-repl
HostName <host>
User <user>
Port <port>
LocalForward 7001 localhost:7000
ExitOnForwardFailure yes
RequestTTY no
RemoteCommand cat -