The Future of Programming: Ignorance and Superstition?

Lamport: “The Future of Computing: Logic or Biology?”

“We understand automobiles. There are no homeopathic automobile repair shops, that try to repair your car by putting infinitesimal dilutions of rust in the gas tank. There are no automotive faith healers, who lay their hands on the hood and pray. People reserve such superstitions for things that they don’t understand very well, such as the human body… … Superstitions arise because we don’t understand. If this trend continues, we may soon see homeopathic computer repair. Perhaps it will consist of adding a virus to a program, deleting the virus, and then running the program. You may soon be able to take your laptop to a faith healer, who will lay his hands on the keyboard and pray for the recovery of the operating system. Is this the future of computing? Or can we instead build on the idea that a computer program is a mathematical object that can be understood through logic?”

Weinreb: “Why did M.I.T. Switch from Scheme to Python?”

“Nowadays, a real engineer is given a big software library, with a 300-page manual that’s full of errors.  He’s also given a robot, whose exact behavior is extremely hard to characterize (what happens when a wheel slips?). The engineer must learn to perform scientific experiments to find out how the software and hardware actually work, at least enough to accomplish the job at hand.  Gerry pointed out that we may not like it this way (”because we’re old fogies”), but that’s the way it is, and M.I.T. has to take that into account.”

Programmers have managed to create a universe where “science doesn’t work.” Superstition will thrive there, because the human mind demands pattern; it insists on at least the illusion of understanding, of predictability. Learning where the permanent bugs and workarounds are inside a phonebook-length API teaches you nothing. It is anti-knowledge. Where your mind could have instead held something lastingly useful or truly beautiful, there is now garbage. Most of what passes for learning in today’s computing field is ultimately worth about as much as a primitive shaman’s repertoire of magical rituals.

This entry was written by Stanislav , posted on Thursday May 14 2009 , filed under Philosophy, SoftwareArchaeology, SoftwareSucks . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

18 Responses to “The Future of Programming: Ignorance and Superstition?”

  • Dev says:

    The human body is understandable today. It is nothing but a biological computer and a machine.

    And how does not understanding and hence not predicting a phone-book thick API give rise to superstition? Those who are superstitious refuse to acknowledge gaps in their understanding and refuse to cover those gaps. No one who lacks an understanding of an API will make wild claims (unless they want to BS to land a job or pass a test).

  • Al Sweigart says:

    I think of this very same concept whenever someone recommends restarting Windows to make it work right again, no matter what the symptoms of the problem are. :)

  • JimK says:

    It was only recently that I began to understand why an old boss of mine referred to computer programmers as “Witchdoctors of the future”.

    Perhaps understanding, in general, is becoming rarer in the world.

    Have you read Carl Sagan’s “The Demon Haunted World”?

  • Smallpaul says:

    Complex emergent systems will always require science. In particular, benchmarking will always be a scientific pursuit. Imagine the complexity of a formal model for the performance of a runtime, operating system, CPU, bus, RAM and hard disk, any of which are changable.

    If we put aside performance, it is unfortunate that science is required to learn how to use APIs, but I’m skeptical that it’s a new situation. I get tired of the apocalyptic pronouncements that 2009 represents some kind of nadir of information technology. The same sort of people thought that the industry had collapsed in 1999 and 1989 and 1979.

  • Tac-Tics says:

    What is your point here? That technology is getting closer to mysticism? It’s not. The mysticism was there all along. It will always continue to exist. And not just in technology, in life in general.

    It’s a matter of complexity. It’s not that people are necessarily dumb (though sometimes this is the case). People use whatever information is available to them to make a decision. It just happens that deceiving customers is profitable and misinformation is rampant. And there is no way around this. Proving a company is spreading misinformation is extremely expensive. The cost of dodging the issue or spreading new forms of misinformation is cheap.

    Programming isn’t math. You can’t simply will functions into existence based on intuitions that those functions could in theory be made explicit. In programming, you have to sit down and actually code them (and test to make sure you did it right!)

    The decision at MIT reflects the practical nature of computer science. The theory of computation is mature and it’s doubtful many world-changing discoveries remain. However, techniques in software engineering are still in furious motion. Their decision is simply a shift in their curriculum towards engineering over pure theory.

  • SGeniusNinja says:

    Who says science doesn’t work? APIs and documentation aren’t wrong on purpose they are wrong because the human condition involves making mistakes without necessarily realizing them and hiding those mistakes we have made when it is in our best interest.

    Science isn’t some pathetic tool that only works in the best of conditions. The whole point of science is discovering the truth by drilling through layers of confusing bias and coincidence.

    You could say that we’ve created a point where understanding computers is harder than it should be but that makes a scientific approach all that more important.

    As an aside there are car superstitions as well (ever see those tabs that “increase your gas mileage”? Or met someone who knew that fords or chevys were the best vehicles no matter what anyone said?)

  • [...] This post was Twitted by tonyarkles – Real-url.org [...]

  • asdf says:

    Have you tried rebooting?

  • Hrish says:

    @Al : The sad part is that, for Windows, it works sometimes :-|

  • William Knight says:

    ” Most of what passes for learning in today’s computing field is ultimately worth about as much as a primitive shaman’s repertoire of magical rituals.”

    Are you implying that a ‘primitive’ shaman’s repertoire is mostly worthless? If so, you might want to think a little more about what shamans did and why they did it. They were worked with people and extremely complex behaviors that could not be understood or predicted with much certainty. This is in stark contrast to working with automobiles and other trivial and simplistic systems.

    When computer systems grow in complexity that approaches biological systems, we will see the emergence of many new and different kinds of learning and knowledge to help us deal with it. Some of these new ways will undoubtedly have lots of imprecision, uncertainty and incompleteness. That doesn’t mean they will be worthless.

  • At some point I agree with you, but fortunately there are allot of real programmers that care for what’s happening under the hood.

    The others, well, the others will always be second class programmers. They will always be the ones that use the libraries and frameworks made by the real programmers. There’s nothing wrong with it.

  • It is worth as much as a primitive shaman’s repertoire of magical rituals, with the notable proviso that these magical rituals actually get things done.
    Certainly the reliance on buggy APIs isn’t a great thing. However, it’s important to note that there isn’t really a fantastic alternative on offer, and that the worldwide computing system, while difficult to use in some respects, is actually very useful.
    It’s a bit like the remark on Democracy being the worst form of government aside from all the other forms of government.

  • rkeurel says:

    I think what is being said is that more and more, especially in the practical areas of technology, we spend so much of our time trying to reason about and work with bad abstractions instead of trying to improve the abstractions.

  • Jim says:

    @dev From whence springs free will out of the walking deterministic chemistry experiment we call humankind, that you opine is so well understood? What is the nature of consciousness?

    But even more prosaically, when a doctor says that I have cancer and I’ve got 20% chance of of surviving 12 months, how great an understanding is that? That’s merely a description of some past observations. Additionally, consider the maladies whose causes are listed as ‘multi-factor’ That’s a dead giveaway they have no idea.

    Modern medicine is a wonder, faith healing and homeopathy are ludicrous, but don’t think for a minute they’ve got it all figured out.

  • Anytime you have complexity that is greater than the what people can grasp under short time constraints, you get superstitions and beliefs that aren’t always correct.

    One example: programmers are used to fast, memcached filesystem access on their workstations. They they wonder why their I/O-bound server apps slow to a crawl when published.

    Programming has a strange tendency to form psuedo-religions around a person, company, or group’s way of thinking. Microsoft is a good example here – until recently, dynamic languages were heresy to them. They’re still obsessed with giving every product, class, and member name the longest name possible. And using upper-case. Upper case is typographically ridiculous in code.

    Humans are creatures of habit, and naturally develop “preferences” of coding (and reasoning) that keep us thinking inside the box. I’ve yet to see any language community that didn’t exhibit close-mindedness to some degree. Obviously, those best at judjing new ideas fairly tend to evolve quickest.

    @Jim

    I think modern medicine is wonderful, but they’re a long way from figuring everything out. The human body is one very complicated piece of architecture… several million times more complicated than our current computer technology.

    To take another example of how people frequently build strong opinions or beliefs based on insufficient data – you stated that “faith healing is ludicrous”.

    There is scientific evidence of people being raised from the dead (12 hours after dying), huge cancers disappearing without a trace, visibly, utterly blind people receiving sight, and thousands of other miracles. They happen on a daily basis. Personally, I’ve had medically impossible recoveries happen to me during time span of 5 minutes.

    Of course – this data likely contradicts your understanding of the universe. So – do you modify your theory to fit the data, or do you throw away any data that doesn’t match your theory? Think carefully, since religious beliefs often come in the form of popular science theory.

    There are also a lot of charlatans that take people’s money and pretend to be ‘faith healers’…

    Most of the confusion occurs because people don’t actually know what faith is. The wikipedia definition of faith isn’t the faith that heals. And faith isn’t something you can psyc yourself into having. God has to give faith – it’s not psychological. If you haven’t had it, it’s rather hard to communicate. Maybe “sudden certainty without any doubt” would be closest. And healing requires more than just a fading faith – it’s possible to consciously doubt and have the faith disappear, with no results.

    Faith is also usually very targeted, such as in a certain event, such as healing, occuring. Thus it is easy to confuse with wikipedia faith.

    Since faith healing has preconditions that we can’t replicate at will, standard scientific ‘experiement-observe’ techniques don’t work. But the sheer volume of documentation and frequeny of occurences should be enough to make any clear-thinking individual reconsider his assumption that college teaches us about *all* the forces in the universe…

    Anytime I think I know everything, I know I’m wrong.

  • Jerry Kuch says:

    In an earlier comment on this thread, Dev said: “The human body is understandable today. It is nothing but a biological computer and a machine.”

    Oh, really, is that all?

    https://www.msu.edu/~lewiska8/finalwebisp213h/images/Letter.bmp

  • Kapil Kaisare says:

    Greetings.

    Can you detail the ideas you had regarding skrode?

  • [...] This post was Twitted by arosien [...]

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">