Software alchemy #
Alchemy is a worldwide tradition spanning the proto-scientific to the mystical via the psychological. The goal is the combination of matters to change a substance's essence: say, to turn lead into gold or achieve immortality. Alchemy never accomplished these feats despite increasingly scientific methods (morphing into modern chemistry). ⚗️
Then nuclear physics achieved transmutation: a particle accelerator imitating the Sun, which transmutes hydrogen into helium. It turns out, if you have a particle accelerator, you can spend tremendous resources to change a few atoms into golden particles. Lead to gold? Never say never 😤
Unlike matter, software is highly changeable. By mixing up a little syntax, we bring computation into existence–or rewrite its essence. It still feels quite magical, even after a few decades. 🌌
Like matter, software is a composition of smaller pieces all bound together by data and control flow. There are patterns: different ways to arrange zeroes and ones to express the same essential computation. Like DNA: life is tremendously varied, but it's all just pairs of A, C, G, & T. 🧬
There are two ways to achieve simple, elegant software. First: when building it in the first place. But this isn't always feasible. So, second: transforming its essence, by rearranging its patterns at whatever level necessary. 🧩
This foundational approach combines the rigor of science & engineering with our ever-shifting understanding of what we're even trying to compute. Software alchemy: the art & science of transmuting calculation. 👨🏻🔬