Skip to content

Commit

Permalink
Add Oh Clojure post from Apr 2020
Browse files Browse the repository at this point in the history
  • Loading branch information
protoiyer committed Dec 5, 2024
1 parent 060881a commit 98f2c67
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 3 deletions.
36 changes: 36 additions & 0 deletions protoiyer/content/posts/oh-clojure.md
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)
2 changes: 1 addition & 1 deletion protoiyer/content/posts/setting-up-linux-12.04-ror.md
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ sudo apt-get install vim

Note: From here on, the installation process was done based on a bunch of resources:

[Installing RoR in Ubuntu](http://arunsark.wordpress.com/2011/02/25/installing-ror-in-ubuntu/) by my good friend and colleague, Arun Vydianathan
[Installing RoR in Ubuntu](http://arunsark.wordpress.com/2011/02/25/installing-ror-in-ubuntu/) by my good friend and colleague, Apple
The excellent and free [Ruby on Rails Tutorial book](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:up_and_running)
Of course my [previous post](https://protoiyer.github.io/posts/setting-up-linux-11.04-ror/) :)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ I worked in both Delphi and Visual Foxpro for about 6 months, and finally made t

**The Tenth Year**

When I [started the 10th year](http://twitter.com/#!/protoiyer/status/8988172337) of my career, I had sort of challenged myself to be good at things other than the C family of languages (I consider Delphi to be pretty much similar to C++ in terms of concepts involved and supported). I was hooked to Ruby blogs for a long time and had only heard praises about Ruby -- be it from the Pragmatic Programmers or Martin Fowler or Uncle Bob or many others whose blogs and books I read -- and then there was the whole [alt.net](http://codebetter.com/iancooper/2011/01/16/alt-next/) movement -- inspired by Ruby and Open Source -- that I had been following since 2008, and which had helped shape what Microsoft did in the last couple of years in the .net world, be it the introduction of [asp.net](http://asp.net/) mvc or introduction of dynamic features to C# or Entity Framework. I also wanted to learn functional programming since the most important feature introduced in C# 3.0 -- linq -- was influenced by it, and I could see how much more compact the code was compared to the usual imperative programming. I also resolved to find time to [read widely to get better](http://protoiyer.posterous.com/2010-the-year-of-revival-of-tech-book-reading).
When I [started the 10th year](http://twitter.com/protoiyer/status/8988172337) of my career, I had sort of challenged myself to be good at things other than the C family of languages (I consider Delphi to be pretty much similar to C++ in terms of concepts involved and supported). I was hooked to Ruby blogs for a long time and had only heard praises about Ruby -- be it from the Pragmatic Programmers or Martin Fowler or Uncle Bob or many others whose blogs and books I read -- and then there was the whole [alt.net](http://codebetter.com/iancooper/2011/01/16/alt-next/) movement -- inspired by Ruby and Open Source -- that I had been following since 2008, and which had helped shape what Microsoft did in the last couple of years in the .net world, be it the introduction of [asp.net](http://asp.net/) mvc or introduction of dynamic features to C# or Entity Framework. I also wanted to learn functional programming since the most important feature introduced in C# 3.0 -- linq -- was influenced by it, and I could see how much more compact the code was compared to the usual imperative programming. I also resolved to find time to [read widely to get better](https://protoiyer.github.io/posts/2010-the-year-of-revival-of-tech-book-reading/).

During March, I bought [Seven Languages in Seven Weeks](http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks) when it was announced. It looked like the perfect tool to tackle what I was planning to do. The book started with Ruby, and soon found that I needed a more focussed book to learn, and switched to the good old [PickAxe](http://www.pragprog.com/titles/ruby3/programming-ruby-1-9) and after that moved to the awesome [The Ruby Way](http://therubyway.org/). Then two World Cups intervened -- the Hockey World Cup in Delhi and the football World Cup in South Africa -- followed by a spate of general and technical book reading. 

Expand All @@ -48,4 +48,4 @@ During the last quarter of 2010, Apple and me decided to learn Haskell (preferri

I am thankful to my parents and Sir and Mami for having inculcated a culture of honesty, hardwork, respect and humbleness, and without whose sacrifices and support I wouldn't made it this far in life. I am thankful for my dear wife, Preethi, who had kindly allowed me to spent many hours with the books and the computer. I am thankful to the many seniors who helped shape my career at Bangalore and Chennai -- their belief in me was a vital cog in my development.  Many thanks to the wonderful bunch of boyhood friends -- [Apple](http://twitter.com/arunsark)[Harish](http://twitter.com/#!/harish_tweets), Jiju, Mahesh, [Ramesh](http://twitter.com/#!/rameshmoni), Raghu, [Subru](http://twitter.com/#!/swamy_in), Sunil -- and to my cdac classmates cum ex-colleagues -- Beeba, Arun, Gayathri, Ram, and last but not the least, [Pradeep ](http://twitter.com/#!/haipradeep)and [Naresh](http://twitter.com/#!/nareshdass) for their support, discussions and leg pulling ever since I landed in Chennai.

I would love to be programming (either professionally or for hobby) for at least another couple of decades (it is a heartfelt, genuine wish, and not a prediction, so don't take me to task for this statement in future). I want to resort to and build upon my recently cultivated practice of walking regularly for an hour for six months in a year, which is a big improvement over my super lazy lifestyle between 2001 and 2008, because [health matters](http://www.developerdotstar.com/mag/articles/weinberg_healthybody.html) \[[gcache](http://webcache.googleusercontent.com/search?q=cache:ddpEmM8SPdwJ:www.developerdotstar.com/mag/articles/weinberg_healthybody.html&hl=en&strip=1)\] when you are no longer young. I hope I continue to be someone who values programming and keep working hard to improve myself, and above all be a good human.
I would love to be programming (either professionally or for hobby) for at least another couple of decades (it is a heartfelt, genuine wish, and not a prediction, so don't take me to task for this statement in future). I want to resort to and build upon my recently cultivated practice of walking regularly for an hour for six months in a year, which is a big improvement over my super lazy lifestyle between 2001 and 2008, because [health matters](http://www.developerdotstar.com/mag/articles/weinberg_healthybody.html) when you are no longer young. I hope I continue to be someone who values programming and keep working hard to improve myself, and above all be a good human.

0 comments on commit 98f2c67

Please sign in to comment.