I just came across an apparently famous one-liner for the first time, which can be paraphrased in this context as:<p>"The essence of computing is the separation of Church and state"<p>Which is a pun on Alonzo Church's lambda calculus (stateless) and the notion of stored state (in memory), which I suppose can be aligned with processes and objects, respectively.<p>source:<p><a href="https://ebrary.net/65011/computer_science/separation_application_code_state" rel="nofollow">https://ebrary.net/65011/computer_science/separation_applica...</a>
So I had originally wanted to mock this article for a number of reasons: the fact that it doesn’t directly answer its own headline question, the fact that it spends way more time talking about physics, the fact that it doesn’t connect “first principles thinking” with “the essence of the problem”, the fact that the title is phrased like a Zoolander joke..<p>> Is reality a collection of objects or a system of processes<p>But when I read <i>this</i> phrase, something struck with me. I kind of hate that we’re originally taught OBJECT oriented programming, specifically that the name is “object-oriented”. I know that the ‘object’ in OOP and object as he is using the phrase above are not necessarily the same technical definition, nonetheless it took me far too long to understand that software engineering is <i>not</i> about the objects: its about the systems. OOP feels like a an awful misdirect as to where one should direct their time and attention in writing code. “You told me my code should be object oriented so I thought real hard about making sure I used objects!”<p>I would far rather have a junior write one flawless function that DoesTheThing™ rather than a fleet of mis-organized objects that scatter the idea incorrectly. Why? Because DoesTheThingScript() can be more readily and easily refactored than ObjectOrientedMess™.
>Alan Kay has famously described Lisp as the “Maxwell’s equations of software”. He describes the revelation he experienced when, as a graduate student, he was studying the LISP 1.5 Programmer’s Manual and realized that “the half page of code on the bottom of page 13… was Lisp in itself. These were “Maxwell’s Equations of Software!” This is the whole world of programming in a few lines that I can put my hand over.”<p><a href="https://michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/" rel="nofollow">https://michaelnielsen.org/ddi/lisp-as-the-maxwells-equation...</a>
It's really hard for me not to respond with pure snark. But I'm going to do my best.<p>Since the essence of computing is processes, viewing all programs as processes, it should be really easy to tell if any given process halts. But, it's not.<p>Math has been around for a long long time, but it turns out there are some really hard problems that took thousands of years to even discover. It took a long time to decide that no internally consistent system can prove that it's internally consistent.<p>Software, is pretty new. And software got kicked in the teeth right at its inception _because_ process and data are highly context sensitive.<p>Now, I'd agree, that folks could probably put more thought into organization of data, and deeper thought about what process should operate on that data. But it's not like waving your hand and saying computers are about processing is particularly helpful. I don't need a machine to translate a program into its result. It might take more than my lifetime, but I can work it out with a pencil and paper.<p>The hard part is building a process that's worth a damn. The thing flips back and forth from being an object, a row of bytes in memory somewhere, to a set of changes over time in a processor. (this could just as easily be brass gears, or punchcards in a loom).<p>You can choose to look at it however you wish, but it's both. It's really hard to get right.
> Thus, the heart of any computer is a processing machine. That is the very essence of computing: processing.<p>Doesn't that just beg the question though?<p>What is the Essence of Processing?
> What is the essence is computing?<p>According to Ken Thompson and Dennis Ritchie the essence of [communal] computing are fellowship and close communication.