Slashdot Mirror


Barbara Liskov Wins Turing Award

jonniee writes "MIT Professor Barbara Liskov has been granted the ACM's Turing Award. Liskov, the first US woman to earn a PhD in computer science, was recognized for helping make software more reliable, consistent and resistant to errors and hacking. She is only the second woman to receive the honor, which carries a $250,000 purse and is often described as the 'Nobel Prize in computing.'"

5 of 187 comments (clear)

  1. Re:making software more reliable? by Anonymous Coward · · Score: 5, Insightful

    Software is ALWAYS reliable. It is the code that people write that sucks.

    No, computers are reliable. They'll do exactly what you tell them to do. Software, however, sucks, since it is simply a representation of the code that people write, which also sucks.

  2. Re:1968 by MoellerPlesset2 · · Score: 5, Insightful

    Why? Do you complain that we need more pregnant men also?

    Men aren't capable of becoming pregnant. I however, happen to believe women are just as capable of being good computer scientists as men are.
    The fact that only a small minority of computer scientists are women, means that upwards of half our best CS talent is going to waste.

    I think that's a pity.

  3. Re:Coincidentally by shutdown+-p+now · · Score: 3, Insightful

    I happen to have a printout of an article on "The Liskov Substitution Principle" and was wondering just yesterday how it is that as programmers we use these principles in everyday life yet don't know their names or the stories of how they came about.

    To be honest, I would consider anyone who does not know what LSP is, to be OO-ignorant, even if (s)he does code in an OO language. It is a very fundamental rule, much more important that all the fancy design patterns. I guess it's possible to "invent" it on your own, just as it's possible to normalize databases without remembering, or even knowing about the strict NF definitions, but in either case, chances are high you'll get it wrong eventually.

  4. Proof, hmm, would you like a price tag on that? by refactored · · Score: 3, Insightful

    How about a billion dollars for violating LSP. http://developers.slashdot.org/article.pl?sid=09/03/03/1459209 If you think about it, That's exactly what Tony Hoares mistake was. A violation of LSP. Sometimes the thing pointed to by "T *" does not behave as an instance of T. When it doesn't, as all too often it doesn't. Bad Shit happens. Sorry, type checking compiler can't help you thanks to Hoare's mistake.

  5. Re:Coincidentally by shutdown+-p+now · · Score: 4, Insightful

    So either I went to the wrong university, and consistently the wrong employers

    Employers aren't there to teach you these things, and a lot don't care so long as you crank out code that mostly works (and, let's face it, it's not always easy to tell for them, and the concepts of "formal correctness" and "readability" and "maintainability" are often not even on their radar, unless a developer brings that up). And as for university - it may well be. If they had an OOD design course and never mentioned it, or at least described it in a formal way, then they wasted your time.

    Of course, it had somehow become an established norm that "object-oriented design" course in the uni is basically just applied Java programming; from what I've seen, the best you can expect from a typical graduate when it comes to OOD theory is to be able to recite "encapsulation, inheritance, polymorphism" when asked what OO even is. It's especially ironic as only one of those three is actually a required ingredient, and even that is wrongly named. The very notion of MI gets people educated that way thoroughly confused when they first meet it, and you can forget about multimethods...

    or it's one of those self-evident principles that just didn't have a name before Barbara turned up.

    It was formulated by her in 1987. Unless your 8 years were mostly in Simula or Smalltalk, it did have a name by the time you've started working with OO. Definitely so if you've been doing Java or .NET.

    As for self-evidence... I sort of wish it was, and it really is very simple conceptually, but the fact that so many people still get it wrong over and over again shows that, apparently, it's not all that self-evident for your typical coder.