November 22, 2008

Curious George: Programming Gods What are the names of some of the ultimate, iconic people in the history of computer programming?

I'm talking about the Pythagorases and the Ramanujans of programming history. Who are the legends?

  • I asked #2, who is in the middle of some serious Guitar Hero. He says: Kerning and Ritchie (K & R) - C and Unix legends. #2 says they're more like Aristotle than Pythagoras, though. Their book is his main resource at work. John von Neumann - pretty much did all the early theory on computers; most modern computers are von Neuman machines. Alan Turing - all modern computers are "Turing complete" - another early theorist.
  • Church. McCarthy. Minsky. Stallman. Steele. Wirth. Backus. Knuth.
  • Ada, Countess of Lovelace, Lord Byron's daughter, is often credited with being the first programmer because of routines she wrote for Babbage's Analytical Engine, the true computer which he never even started (as opposed to the Difference Engine which he merely never finished). Others say she was a raving drug-addicted egomaniac, wh merely had her sleb status exploited by Babbage, who virtually wrote the routines himself.
  • Kernighan...
  • More analysis of algorithms than straight-up coding, but Stephen Cook's discoveries about algorithms were major. Also see Rear Admiral Grace Murray Hopper, who invented COBOL (which turns 50 next year) and who coined the terms "bug" and "debugging" (the first computer bug was an actual moth).
  • Fuck. Vaucanson. Sorry. Just woke up.
  • He of the pooping duck?
  • Why is "drug-addicted" always used as a pejorative? Just sayin'.
  • Just as a general strategy for research, try to find landmark languages like Fortran, LISP, PROLOG, COBOL, C, Java, web-based languages, etc. That'll give you not only names but other rabbit holes to follow as well. APL's a good language to look up too, if only as a technical and historical curiosity. It's sometimes referred to as a "read once" language, because its syntax is so impenetrable, and it won its inventor a Turing award. Jacquard was such a good and obvious answer that I'm kicking myself for not coming up with it.
  • Also just thought of Erich Gamma and the "gang of four" for Design Patterns, generally considered THE Bible of modern object-oriented code design.
  • Lots of legends associated with HACKMEM.
  • Before unix was MULTICS, wherein pretty much everything we know about computers was developed and which was an Olympus of good people. The ACM Turing Award is a nice pat on the back given out every year. While a lot of those people were either managing or theorizing rather than actually writing programs, most of the really big names are there. And on the management front, there's Fred Brooks. Also, Aiken
  • Thanks Pleggers, I'd checked the spelling and then forgot to correct it. Guitar Hero makes for an incoherent spouse.
  • These are all great answers. Thanks for the help. I should be able to find something usable from all these. Some I knew of (Turing, Hopper), many I didn't. I even have the Kerninghan and Ritchie book, and I haven't ever used it. Design Patterns I never heard of, I'll have to dig up a copy somewhere. I didn't remember to mention it, but I really wanted some Object-Orientation legends too, so that helps me a lot.
  • DP's a damn good book. If you want to really understand MVC design and all the possible things you can do with it, it's the book for you. Most of the book is simply a catalogue of patterns, but the first part of the book deals more with theory and case studies. It's one of those landmark books every discipline has, the ones that everyone talks about but only the hardcore actually own and read. Most learn a subset of the patterns through secondary sources. But the book itself, if you know programming and basic OO concepts, is very readable and a great resource.
  • On the OO front, Alan Kay designed Smalltalk, which was the first of them. Bjarne Stroustrup did C++ but if he's a god it's one of those three-headed, guarding the gates of hell sorts of gods. Jim Gosling did Java. The idea for software design patterns came out of work done by architect Christopher Alexander. He's not a programmer at all but he's been extremely influential. Ted Nelson is pretty up there, too. He comes from a different planet, and it can be almost impossible to understand what he's talking about. But he more or less invented the web in 1961 and then spent the next 30 years failing to implement it.
  • That Ted Nelson article reads like wiki vandalism. Is all of that real? He is from a different planet.
  • George Boole and Claude Shannon deserve a mention if you're looking for the Euclids of modern programming.
  • I bought the Ted Nelson book, Computer Lib/Dream Machine when it came out (foolishly, I gave it away) - yes the guy was prophetically certifiable. Couple more names: Philippe Khan (more of an entrepeneur, but brought us Turbo Pascal for $19.99), Linus Torvalds (more OS than language), Wayne Ratliff (dBase, one of the first "4GL" relational database languages), John Kemeny and Thomas Kurtz (BASIC), oh and a little name dropping - I worked with a chap called John Spray who wrote Whimsical.
  • Ted also invented wiki vandalism, so it's only appropriate ... There's a very, very long WiREd story about him from twelve years back. It's completely one-sided -- captures the "Insaniac leading a team of Comic Book Guys on a hopeless quest" angle very well while missing how fundamentally influential he was altogether -- but a decent read anyway. May as well throw in Jef Raskin (invented the Macintosh) and Bricklin and Frankston who did VisiCalc. Though at this point we're getting away from the von Neumann Gods and down to the level of engineers who Actually Do Stuff.
  • Mel Kaye, famous for The Story of Mel.