John Cook is an applied mathematician working in Houston, Texas. His career has been a blend of research, software development, consulting, and management. John is a DZone MVB and is not an employee of DZone and has posted 175 posts at DZone. You can read more from them at their website. View Full User Profile

Programming. It's Sorta Like Getting an Imbecile to Play Bridge.

  • submit to reddit
From Data and Reality:

The thing that makes computers so hard to deal with is not their complexity, but their utter simplicity. … The real mystique behind computers is how anybody can manage to get such elaborate behavior out of such a limited set of basic capabilities. The art of computer programming is somewhat like the art of getting an imbecile to play bridge or to fill out his tax return by himself. It can be done, provided you know how to exploit the imbecile’s limited talents, and are willing to have enormous patience with his inability to make the the most trivial common sense deductions on his own.

Emphasis added.

The quote comes from the 1st edition, published in 1978, because that’s what I ran across. The link is to the 3rd edition, published last year.

Published at DZone with permission of John Cook, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Stephen Gacho replied on Thu, 2013/01/24 - 5:26pm

 In the beginning, when JVM was designed, nobody knew about the cloud or virtualization, and moreover, nobody was thinking about density in PaaS.-Douglas Andrew

Dale Wyttenbach replied on Fri, 2013/01/25 - 8:17am

I like the analogy, but I think it breaks down once 'common sense' is included: Much about playing bridge is antithetical to common sense, for example the Jacoby transfer 

Lund Wolfe replied on Sat, 2013/01/26 - 3:32am

Fortunately, we're not coding in assembly language or worse (entering bits/bytes through switches or a numeric keypad) anymore.  We use high level tools and reusable libraries and abstractions and indirections and OOP to radically simplify and minimize the code and thinking we have to do.

To some extent we have the luxury of being the brute that just has to wire up the existing modules and figure out what's the same or different from something similar.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.