> I will discuss the following:<p>> * What the Second Ideal of Focus, Flow and Joy Means to Me
Relearning Coding: How Coding Mostly Left My Daily Life in 2008, But Came Back in 2016 (or If I Can Learn Clojure, Anyone Can)<p>> * Why I Love LISPs Now<p>> * Functional Programming and Immutability (and John Carmack)<p>> * A Mistake I’ve Been Making Since Grad School, and How I Fixed It: Composability<p>> * The Epiphany I Had Reading “An Introduction to React in 2019 (For People Who Know Just Enough jQuery To Get By)”<p>> * What Rich Hickey Says About Simplicity: Where The First Ideal Of Locality and Simplicity Comes From<p>> * Solving Business Problems, Not Solving Puzzles—Why I Detest Doing Infrastructure Work These Days<p>> * Lastly, the REPL…the Ultimate in Fast and Fun Feedback Loops!<p>> * The Amazing Clojure Community, Parting Thoughts, and What I’d Like To Write About in the Future
As someone fairly new to Clojure I agree entirely. There's a freshness about the language that has brought a new sense of joy and curiosity back into the programming world. The language forces you to rethink, relearn, and reevaluate the way you fundamentally understand programming. I think for the better.
I use Racket to create programming languages, however I am considering getting into Clojure for web development. Racket's web development ecosystem is actually pretty great, I'm just curious about Clojure's.<p>Might someone who's played with both give me some pro's and con's of Racket vs Clojure?
> Contrast LISP to the complicated order of precedence operations you find in almost every other programming language, as well as their huge grammars and syntax. That takes a lot of brain space.<p>I disagree. I rarely find myself slowed down by the grammar or operator precedence in Java and C#. In C++, only when I have to do something rather esoteric (pointer-to-member, member function template specializations, etc.).<p>On the other hand, I critically rely on types. The IDE is able to narrow down suggestions about applicable methods to a handful. But since `js->clj` is a function `string -> map` (a very generic signature), there must be hundreds of them with the same signature. Context-sensitive discoverability with the help of IDE becomes nearly useless.<p>Yes, that's how I learn APIs these days. Types, intellisense + reading the documentation to learn about possible edge cases. I cannot imagine being productive in something like Clojure.<p>I also find Java 11 + VAVR rather pleasant to work with.