Wednesday, November 14, 2012

Why the Clojure life of Brian matters...


here I am back after a few months of life outside of my blog. Leaving the comfort zone was not easy, and specifically not made easy. This will be told another time. 

Fortunately my number of lives is unlimited. I come back more determined than ever about my Lisp languages choices and my quest for a Lisp mentor. 

I do not bring code yet this time, but I'd like to point out the two events that lead me definitively in the Lisp world, although being a Scala coder by day. First, I met the Amsterdam Clojurians and their meetings initiatives, and then the reading of Brian Marick book: Functional Programming for the Object Oriented developer

The book uses Clojure as a support to picture various aspects of functional programming from the basics of functions as first class citizen to more experts monadic structures presentation (yes in Clojure!). 
Astute readers will recognize some tributes to the SICP book specifically when embedding an Object-Oriented Language from the very start of book, or presenting lazy sequences, as close as they are to Scheme streams. 
But in my humble opinion Mr Marick's book is not only "yet another book" on Clojure. Of course you learn about Clojure. The same ideas could be pictured in Ruby, Scheme, Haskell etc. For example, the intellectual exercise of embedding an OOP approach exposes a paradigm for what it is: a specific programmatic interface aiming to serve group of concepts for the better - or sometimes for the worse. The monadic structure examples expose clearly, concisely, and in a pragmatic way, why and how you should use some approaches of the monadic ecosystem. So far the best explanation on Monads I ever read.
Brian Maricks does not popularize functional programming for the average developer, but pulls her up to a new level of perception. As in his zipper example, he magnifies some aspects of mutable data structures and function application Whether you are new to functional programming or already an experimented functional programming developer you will certainly find meat for the brain in this book. 

Brian Marick shares understandable knowledge and it shows that sharing matters to him. Each line, each page reveals a true and deep commitment in making the functional paradigm accessible to every willing developer. 

Brian Marick works matters today more than ever. In a time where rock star developers with over sized ego seem to invade Computer Science, it is becoming harder and harder to find humble people committing into knowledge sharing. One can be a very clever hard core developer producing infinite volumes of open source code praised by a blind community, his cleverness serves no purpose if he is incapable of sharing the knowledge and pulling people at his level. The essence of progress is in the ability to pull the world with you, not to make it serve your purpose and flattering you. Unfortunately I mainly witness today exchanges between people who spend their coding lifetimes in congratulating each others for the sake of their own ego. 

 There were times when we had masters, humble, educated, sharing. It seems that some very rare people like Brian Marick keep the tradition alive. I would like to meet more of them, and it occurs to me that some remain from the Lisp community and new are coming into the Clojure communities as the new Common Lisp for the JVM. Maybe one day an old Lisper who wishes to mentor, who knows... 

 See you pals with more code next time. Be seeing you !!! :):):)


Brian Marick said...

Wow. I am very grateful for this review.

vemv said...

Thanks for the insight on the current status of the programming community. Fortunately I haven't experienced unpleasing interactions so far, but I can see how your point can be true.
And of course, will read Marick's book when I have the time.

Marc-Daniel Ortega said...

You are most welcome, the enlightenments the book brought on certain subjects are priceless and I use them in my Scala daily job.

Tom said...

This is certainly Nice posts. Lots of suggestions

Post a Comment