Hacker News new | past | comments | ask | show | jobs | submit login

There is a school of thought in the community where I work that the alchemists get a pretty bad rap. Probably the clearest statement of this is in one of the chapters of Cyril Stanley Smith's "A Search for Structure", particularly Chapter 5, "Matter and Materials".

The thing that the alchemists were on to was that the same ingredients can have different properties if you process them differently.

There was a lot they got wrong -- they were wrong about gold being a "property" of base matter that could be elicited by suitable processing, and they had no coherent model, and the field was rich with what we now understand to be superfluous mysticism. But, the argument goes, a clear-headed understanding of the situation would rank alchemy as a valid and legitimate precursor of modern materials science, alongside phlogiston and caloric theory. Wrong, to be sure, but far from stupid.

Dijkstra's critique is evidently, by his own analogy, along the lines of the critique of alchemy for being wrong, and assuming that in its wrongness, it therefore has no value at all.

But, taking the analogy more seriously, one can be more charitable. Modern programming is indeed alchemical in character, it captures important insights about what is possible at scale, and produces products that are useful. It lacks a model, there is no theoretical bridge yet between the foundations of logic and Dijkstra's Very Large Scale Applied Logic. It is instead a grab-bag of tools, and doubtless the ___domain of some superfluous mysticism.

A model is desirable, and putting programming practice on a sound logical footing is a fine idea. But we also should not let our prejudice for reductive solutions blind us to the utility of what has been achieved by the people forging ahead in their absence.




> A model is desirable, and putting programming practice on a sound logical footing is a fine idea.

Many functional programming languages are based on formal logic. For example, Haskell is based on an augmented System-F.


Indeed, most functional languages, along with relational and graph databases, already meet the objective of having sound logical footing.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: