Programming is hard because the brain, formalism, ...
# share-your-work
b
Programming is hard because the brain, formalism, and hardware are all dissimilar but must reconcile with each other. These three conflicting entities might be called the incongruous triumvirate of programming. Is this correct?
I should note that I’m most concerned about fundamental limitations. The brain and formalisms are “incommensurate” not only because the brain is neurons while the lambda calculus is not but also because the brain is only good at communicating with actors who also understand human motivations and goals—it’s much easier to train an employee than it is to train a computer. Strong AI might let us cheat. So, @Duncan Cragg, I’m curious if your formalism encodes knowledge about the human world.
@shalabh Fascinating challenge. There will always be mediation between humans and the machines—we know that’s fundamental at least—but can we confidently say the mediating mechanism, the models, will always be harder than necessary for our brains to manage? I answer, “Perhaps so.” Because, absent strong AI, saying that the brain has a model means that it will be the brain’s job to perform activities within the model, without help from the computer. You might replace the “formalism” bit of the diagram with “mental model of computation”.
The machine just doesn’t care.
e
In the large project i was working on (approx. 100 man years), we had the choice of C or Modula-2. Modula-2 has an almost exact mapping 1:1 with C. C has arithmetic, logical operations, records, arrays, function calls, and the classic control flow statements like loops, if, switch. So from a feature point of view Modula-2 only offered a few additional features. So people ignored it. But what they failed to realize at the time, and still continue to fail to realize, is that from a practical standpoint programming is all about avoiding human error. You can write 1000 lines of code in a certain number of hours, but how long until all the errors are removed? This is where the majority of time is spent, and when you have a whole bunch of people changing the same code base at the same time, that multiplies the possibility for errors. Modula-2 offered more protection for the programmer. It caught errors that C at the time did not catch