Hacker News new | ask | show | jobs
by JamesLeonis 3233 days ago
Clojure, with heaps of Clojurescript to manage the Javascript ecosystem.

For over a decade I wrote mainly in C++ doing a lot of Windows programming, usually games or simulations. Mix in some VB and C# when I didn't want to battle the Win32 API. I was used to seeing codebases with 100k+ loc and hundreds of megabytes of code files. xkcd COMPILING is real!

While working at BitTorrent in 2013, a coworker back introduced me to his little server that distributes uTorrent executable to everybody. It was an implementation of this[1] paper for a general purpose rules-based engine with a snappy (Clojurescript?) front-end. The whole thing was ~5k loc, and ran on surprisingly small hardware compared to it's traffic.

From there I was hooked. My project sizes are radically smaller, it's LISP, and I can go wherever Java goes. I wrote about my experiences with AWS Lambdas last year [2], for example. The community itself is outstanding. They are some of the nicest people you will ever meet. Because the community focuses on small libraries that are composable, those libraries become remarkably stable. Several heavily used libraries haven't had commits in months or years.

[1]: http://moscova.inria.fr/~maranget/papers/ml05e-maranget.pdf

[2]: https://github.com/jamesleonis/serverless-in-clojure

1 comments

This is a really interesting perspective. Do you have any advice for someone looking to get into LISP? Ways to learn, how to learn, etc?
If you're interested in Clojure, I _highly_ recommend /r/Clojure on Reddit. It's very active; several library devs, book authors, and core maintainers frequently post and comment. There's a weekly thread dedicated to new Clojure users ([Latest thread here][1]). The Clojure Slack[6] is even more active if you have a burning question.

If you would like to dip your toes in the water, 4Clojure[2] is an online interactive Clojure Kata. There's also a (nearly) full REPL environment at Try Clojure[3] or repl.it[4]. The Clojure Cheatsheet[5] makes it easy to browse and discover the Clojure standard library, and IMHO is _so_ well organized!

But the biggest part of Lisp is the interactive development. You really have to see it, and I love showing the [Bruce's Figwheel project presentation][7] because it's a very visual demonstration of what hot-reloading code and interactive development can bring. It also helps that he's doing Clojurescript in a live browser for web development.

[1]: https://www.reddit.com/r/Clojure/comments/6tq8f5/new_clojuri...

[2]: http://www.4clojure.com

[3]: http://www.tryclj.com/

[4]: https://repl.it/languages/clojure

[5]: https://clojure.org/api/cheatsheet

[6]: http://clojurians.net/

[7]: https://www.youtube.com/watch?v=j-kj2qwJa_E

"Practical Common Lisp", available online. Great book.

Also if you want to have nice silly fun, take a look at "Land of Lisp" which IMHO is destined to become a classic.