From 98f2c6780cddb3ae848e1627bdf38f4f7ed31239 Mon Sep 17 00:00:00 2001 From: Suresh Iyer Date: Thu, 5 Dec 2024 14:23:58 +0530 Subject: [PATCH] Add Oh Clojure post from Apr 2020 --- protoiyer/content/posts/oh-clojure.md | 36 +++++++++++++++++++ .../posts/setting-up-linux-12.04-ror.md | 2 +- .../ten-years-of-professional-programming.md | 4 +-- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 protoiyer/content/posts/oh-clojure.md diff --git a/protoiyer/content/posts/oh-clojure.md b/protoiyer/content/posts/oh-clojure.md new file mode 100644 index 0000000..61f7213 --- /dev/null +++ b/protoiyer/content/posts/oh-clojure.md @@ -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) diff --git a/protoiyer/content/posts/setting-up-linux-12.04-ror.md b/protoiyer/content/posts/setting-up-linux-12.04-ror.md index 842ffe8..8463584 100644 --- a/protoiyer/content/posts/setting-up-linux-12.04-ror.md +++ b/protoiyer/content/posts/setting-up-linux-12.04-ror.md @@ -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/) :) diff --git a/protoiyer/content/posts/ten-years-of-professional-programming.md b/protoiyer/content/posts/ten-years-of-professional-programming.md index a192628..3078306 100644 --- a/protoiyer/content/posts/ten-years-of-professional-programming.md +++ b/protoiyer/content/posts/ten-years-of-professional-programming.md @@ -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.  @@ -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.