4 ms·
The issue, as always, is that you trade your "verbose" (by comparison) imperative programming language for something that let's you specify or model the behavio
by mickeyp 14y ago
The issue, as always, is that you trade your "verbose" (by comparison) imperative programming language for something that let's you specify or model the behaviour of a system in very few lines of code. Impressive, indeed, until you realise that knowing how to specify what it is you want is as much a black art as it is a science. Tools like that are hard to make understandable enough to a large enough subset of developers that the investment in learning it fully will pay off.
Back in University we had to so specify a minicomputer (PDP-11) in a metaprogramming language called "Maude" using its complex, Prolog-like rewriting functionality. Needless to say, the entire computer (CPU, ram bank, store) only took up maybe a hundred or so lines but boy oh boy did it take me ages of fiddling to get it just right.
Languages like that are just too difficult to work with for a lot of things, and that's setting aside the inductive and provable nature of something as simple as building a minicomputer out of logic.