3 ms·
The author miss-understands the paper for some call to formalise everything and then continues to ramble on how complex the world is and how futile formalisatio
by j-pb 6y ago
The author miss-understands the paper for some call to formalise everything and then continues to ramble on how complex the world is and how futile formalisation is.
This is not what "Out of the Tarpit" is about.
Out of the tarpit is about a clear separation between the currently complected aspects of "what" do we want our software to do, and "how" do we make it do that with the best possible performance.
There is no arguing against that if you currently want to describe a website you'll have to learn some model of how the browser renders stuff, how react or vue or whatever performs update calls, and redraws, and state management and and and.
Out of the tarpit simply argues that these things are relevant but accidental to the problem that we want to solve, and proposes a functional logic-programming hybrid approach which focuses on declarative programming, separation of concerns, and immutable state management.
All of the above are pretty well known best practices by now, even though they're not implemented verbatim as the paper proposes there are still ideas that have found it into mainstream programming.
React is a functional reactive and mostly declarative library that takes care of a lot of state management for you.
Clojure is a functional programming language with heavy emphasis on simplicity, state management and functional programming, with logic extensions.
Differential Dataflow is declaratively describing computation and reactively executing it across clusters.
People rediscover the virtue of relational programming and write more SQL than ever, with ORMS becoming out of style.
If the author had argued that the proposals made in the paper are necessary but not sufficient, fine.
But arguing that it's "wrong", because they perceive that the sources of complexity focused on by the paper, are not as important as the ones they choose, is just silly.
He even makes the point for them, by quoting:
> There is no point in using exact methods where there is no clarity in the concepts and issues to which they are to be applied.
This is exactly what the paper is about.
"In order to program something, I should not have to formalise it to the degree that I have to formalise it currently.
I should not be forced to choose data-structures, and algorithms that I care about tangentially.
Those should be specified as an afterthought, when the need arises, and when performance, reliability, resource consumption become a concern."
This whole Post reminds me a bit of Tim Minchins 'Storm':
"Programming is full of complexities, yeah
But there are answers out there
And they won't be found
By people sitting around
Looking serious
And saying 'Isn't code mysterious?'
Let's sit here and hope
Let's call up the fucking Pope
Let's go watch Oprah
Interview Deepak Chopra