Created
May 6, 2020 19:54
-
-
Save imbilltucker/b5b62b44a5f148309e4c465e49bfc492 to your computer and use it in GitHub Desktop.
Some notes on clojure
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Why Clojure | |
Clojure Made Simple: https://www.youtube.com/watch?v=VSdnJDO-xdg | |
What is Clojure? | |
lisp on the JVM | |
REPL | |
immutable data structures | |
datomic | |
ACID | |
accumulate only (q.v. immutable data structures) | |
timetravel (query database at different points in time.) | |
the problem solving idea: | |
describe your problem | |
create a DSL (Domain Specific Language) to describe the problem | |
solve the problem | |
Who uses Clojure? | |
walmart labs -- now, there's no downtime on blackfridays | |
IBM (reduction in java code from 50k lines -> 10k lines) | |
storm was originally written in clojure | |
process a large amount of data | |
convenient concurrency | |
gene kim: https://itrevolution.com/love-letter-to-clojure-part-1/ | |
https://enterpriseclojure.com/clojure/0-introduction.html | |
Benefits of Clojure | |
great community: https://www.clojurians-zulip.org/ (also a slack) | |
access to all the Java code... without the Java code | |
stable syntax (unlike java and javascript, which is adding new syntax about every 6 months, e.g. Java's project Loom, multiline strings, and JavaScript.. has a lot of churn with libraries and frameworks. | |
One Ring To Rule Them All: | |
access to all the python code via lib-python | |
shadow-cljs for javascript (installed via npm) | |
babashka or planck for scripts like you'd write with python | |
Addressing Python warts | |
deployment | |
GUI | |
all this package updating | |
no virtualenv shenanigans | |
Examples | |
using the repl | |
creating a project | |
webservice | |
scraping | |
plotting in nextjournal.com | |
Data Science in Clojure | |
burgeoning community: https://github.com/scicloj | |
or tools: https://github.com/joinr/spork | |
incanter: http://incanter.org/ | |
deep learning: https://aiprobook.com/deep-learning-for-programmers/ (no C++, just Clojure! and it's fast!) | |
tutorials | |
http://www.unexpected-vortices.com/clojure/brief-beginners-guide/general-overview.html | |
Beginner's Guide to Clojure: http://www.unexpected-vortices.com/clojure/brief-beginners-guide/libs-management-and-use.html#various-java-libraries | |
Brave Clojure: https://www.braveclojure.com | |
PurelyFunctionalTv: | |
parsing xml: https://juxt.pro/blog/posts/xpath-in-transducers.html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment