Skip to content

Instantly share code, notes, and snippets.

@imbilltucker
Created May 6, 2020 19:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save imbilltucker/b5b62b44a5f148309e4c465e49bfc492 to your computer and use it in GitHub Desktop.
Save imbilltucker/b5b62b44a5f148309e4c465e49bfc492 to your computer and use it in GitHub Desktop.
Some notes on clojure
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