-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
39 additions
and
3 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
--- | ||
title: 'Oh Clojure!' | ||
date: Sun, 19 Apr 2020 22:55:40 +0000 | ||
draft: false | ||
tags: ['Programming'] | ||
--- | ||
|
||
I am an ardent fan of [Functional programming](https://en.wikipedia.org/wiki/Functional_programming) and in particular the [Lisp family of languages](https://en.wikipedia.org/wiki/Lisp_(programming_language)). [Clojure](https://clojure.org/) stands out in that list due to it being a modern and brilliant Lisp. It is one of the best ways to weed out accidental complexity (usually introduced by languages like Java) and worry about only the essential complexity of a problem. We are all indebted to [Rich Hickey](https://en.wikipedia.org/wiki/Rich_Hickey) for creating [Clojure](https://clojure.org/), piggy-backing on the JVM, and later [ClojureScript](https://clojurescript.org/) that targets JavaScript. | ||
|
||
It is indeed a pleasure that some of the concepts of Functional programming has trickled into the mainstream programming languages like Java and C#. The other Functional programming languages I have dabbled with include [Haskell](https://www.haskell.org/), [Scheme](https://www.scheme.org/), [Racket](https://www.racket-lang.org/), [Elixir](https://elixir-lang.org/), [Scala](https://www.scala-lang.org/), [F#](https://fsharp.org/) and [Elm](https://elm-lang.org/) among others. | ||
|
||
This interest in Functional programming flowed from perusing books and articles including [The Cathedral and the Bazaar](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar) by Eric S. Raymond, and the excellent, thought-provoking posts by [Paul Graham](https://twitter.com/paulg) including [Revenge of the Nerds](https://www.paulgraham.com/icad.html) and [Beating the Averages](https://www.paulgraham.com/avg.html). | ||
|
||
Though there are a number of books, blog posts and videos on Clojure, it would be remiss if I don't mention the ones that I found most useful. In no particular order: | ||
|
||
[Rich Hickey's greatest hits](https://changelog.com/posts/rich-hickeys-greatest-hits) -- "Rich Hickey, the creator of Clojure, is consistent in delivering fantastic, thought-provoking talks." | ||
|
||
From [Uncle Bob Martin](https://twitter.com/unclebobmartin): | ||
|
||
[The Last Programming Language](https://www.youtube.com/watch?v=P2yr-3F6PQo) | ||
|
||
[Why Clojure?](https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html) | ||
|
||
[A Little Clojure](https://blog.cleancoder.com/uncle-bob/2020/04/06/ALittleClojure.html) | ||
|
||
[A Little More Clojure](https://blog.cleancoder.com/uncle-bob/2020/04/09/ALittleMoreClojure.html) | ||
|
||
Perhaps the best of these articles -- [Love Letter To Clojure (Part 1)](https://itrevolution.com/articles/love-letter-to-clojure-part-1/) by [Gene Kim](https://x.com/RealGeneKim) of the [The Unicorn Project](https://itrevolution.com/product/the-unicorn-project/) and [The Phoenix Project](https://itrevolution.com/product/the-phoenix-project/) fame (awesome books them, btw!). | ||
|
||
Many Clojure books are [listed here](https://clojure.org/community/books), but the ones that I found most useful would include: | ||
|
||
[Seven Languages in Seven Weeks](https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/) by [Bruce A. Tate](https://twitter.com/redrapids) | ||
|
||
[Programming Clojure, Third Edition](https://pragprog.com/titles/shcloj3/programming-clojure-third-edition/) by [Alex Miller](https://insideclojure.org/about/) with [Stuart Halloway](https://www.cognitect.com/authors/StuartHalloway.html) and [Aaron Bedra](https://twitter.com/abedra). | ||
|
||
[Getting Clojure](https://pragprog.com/titles/roclojure/getting-clojure/) by [Russ Oslen](https://twitter.com/russolsen) |
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
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