Nearly 33 years ago I got the spark for computing when I saw my uncle's FORTRAN at work, simulating the flight of bees across tarmacs and the impact of such seemingly trivial things over time. His work was wondrous to me and left a very meaningful effect on my understanding of the importance of information, where to measure it, how to process it, and all the while to work with the knowledge that the smallest of things can have great impact.
Nearly a week ago, I began evaluating Riak and am sparking again from the architecture, the support from Basho, and the elegance of Erlang. Through functional argument matching, functions are simplified, matching on predicates rather than branching on imperative logic. Through modules dependencies are clearly delineated. Through actors, distributed computing is modeled in a manner that any consumer of a (e)mail system should understand. This all comes at some performance cost, but is generally overcome by the greater performance gains of concurrency and simplified exception handling. And, the exercise of optimizing simple recursive functions in a tail-recursive manner is a joyful experience. Built-in profilers bring the joy of chasing code coverage and eeking out higher and higher requests per second a game for fun and profit.
For the yet to be deep into the world of imperative programming, Erlang might bring you the wonder that those digital bees brought me. For any who have had tastes of functional programming, concurrency, and dynamic languages, Erlang may be quite enjoyable. I found the following to be a well written, funny at times, foray into the language:
http://learnyousomeerlang.com/content
No comments:
Post a Comment