The lambda calculus and nirvana

It is pretty interesting to see things evolve in time. Especially in Computer Science, where people have a (mis)-concept that everything here has a short "half-life".
I really did not believe so. I actually loved the "Science" part of Computer Science as much as I love the "engineering" part of it.

I do not know why and how did I miss such a wonderful thing as pure programming language (even if it may be just another jargon) and the relation to the term Lambda Calculus.  I did not come across even once in my entire 3 years time at IIT Madras. May be I heard, but did not listen.

Better late than never. Let me start with a slide from ACM SIGPLAN conference's talk on history of Haskell.
Screenshot from talk (copyright to ACM)
As said by Uncle Bob, "A paradigm takes away something. Functional programming paradigm took away the assignment statement"

A quick list of related things as I see it now
  • Moore's law stopped working
  • Multi-core chips evolved and became stable
  • The "useful" languages have "side effects" 
  • Principles of "REST" tells be stateless, so that it is cache-able,predictable and reproducible (sounds like a part of lambda effect) 
  • Single Responsibility Principle says it is a good practice to do one thing in one class. (Does it sound again like "one function" for one class?). 
  • Immutable variables ( the finals in java) is better for "thread" safety.

It is rather funny to see Java 8 came out with Lambda moving towards the "nirvana" after seven years from this talk.
Some of the links which inspired me

No comments: