[dropcap]A[/dropcap]lchemists and programmers share many things in common. First of all, we both claim to be able to create anything starting from the fundamental elements of our world. For alchemists, these are the seven “roots” fire, water, air, earth, sulfur and mercury; while, for us, they are the fundamental essence of information: bits. Second, we need a lot of effort and study on dusty books in order to practice our art. There is no “complete knowledge”, just a continuous life of study. Third, we both love to play with them, to squash and rub them in order to satisfy our greed, our fantasy or our thirst for knowledge.
Finally, both these worlds are not immune to mythology, legends and school of thought fighting each other for supremacy. However, all these schools share the same noble intent: the search for the Philosophers Stone. Or Phylosophers Code, if we bring this in the developers world: we search for “something” that can solve any computational and development problem in any situation, a magic technology, a programmer’s Graal. We know that it didn’t exist, but it is a far far goal to inspire us.
Every now and then, something come out from some progralchemy workshop, something completely new or re-emerged from the remote past. A lot of people start to grouping around this “miracle”, singing for the marvelous property of this new technique and mocking those who are not joining this new belief.
Actually, in the last years, this emerging new miraculous technique is represented by functional programming. There is a lot of momentum on functional programming and, if you follow any developers community, you will see a lot of people loosing their mind for the functional paradigm (both for and against). I want you know this: I’m one of them. I’d like to use functional techniques everywhere, in any program, in any framework, for any purpose. I’ll try to be honest on programming paradigm but in this blog you have to expect more articles about functional programming than other paradigms.
Is functional programming the “philosopher’s code”? No. I’d like it to be the Answer we was looking for ages, but it is not. It is the best approach I know for (almost) everything, but it is not. There are many cases in which the “evil imperative paradigm” is just the simple and faster way to solve a problem. In this case, just solve it. Also if many discussions on the web about programming paradigms people enjoy to talk about them as fanatics talk about religion, there is a superior rule that you have to follow: just solve it. In other words, always use the faster and simpler technique to solve a problem (trolling: even if functional programming is often the faster and simpler way to solve million of problems).
So, this is just a little introduction to my programming interests. I’d like to share with you my progalchemy experience and I hope you will enjoy it.
Otherwise, if you are not interested in general programming, don’t worry. I’ll talk also about gamedev and AI. But I’ll talk about them in the future. :)
Image: “The Alchemist in Search of the Philosophers Stone” by Joseph Wright of Derby (1771)