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.'"

28 of 187 comments (clear)

  1. Turing test by ignishin · · Score: 5, Funny

    Does this mean she passed the turing test?

    1. Re:Turing test by MrEricSir · · Score: 5, Funny

      I hope not. MIT professors are not human.

      --
      There's no -1 for "I don't get it."
    2. Re:Turing test by rockNme2349 · · Score: 4, Funny
      --
      Sewage Treatment Facilities - "Our duty is clear."
    3. Re:Turing test by Stormwatch · · Score: 3, Funny

      No, it means she is turing-complete.

  2. Good for her... by Em+Emalb · · Score: 4, Funny

    I bet she has some stories from "the old days" of being about the only female geek around.

    Good for her.

    --
    Sent from your iPad.
    1. Re:Good for her... by saiha · · Score: 3, Funny

      Yeah, there are like twice as many now.

  3. Purses and wallets? by interkin3tic · · Score: 4, Funny

    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

    Did they give $250,000 wallets to the men who won previously?

    1. Re:Purses and wallets? by CaptainPatent · · Score: 4, Funny

      No, they're just bragging about the luxurious accessories the award lugs around all day.

      --
      Well, back to rejecting software patent applications.
  4. Relations all the way down by Baldrson · · Score: 3, Informative
    Liskov says: "Today the field is on a very sound foundation."

    If only it were true.

    I recall, in fact, the point in time when I first ran across Liskov's CLU in the context of working one of the first commercial distributed computing environments for the mass market, VIEWTRON, and determining the real problem with distributed programming was finding an appropriate relational formalism.

    We're still struggling with the object-relational impedance mismatch today. The closest we are to finding a "solid basis" for computer science is a general field of philosophy called "structural realism" which attempts to find the proper roles of relations vs relata in creating our models of the world.

    If anything, our descriptions should be "relations all the way down" unless we can find a good way, as some are attempting, to finally unify the two concepts as conjugates of one another.

  5. Coincidentally by counterplex · · Score: 5, Informative
    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. As the first US woman to earn a PhD in CS, I'm sure there are some interesting stories to tell about it.

    For those who might not have her original text handy, the Liskov Substitution Principle states (rather obviously):

    If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T

    which, when stated in the words of Robert "Uncle Bob" Martin as something we probably all intuitively understand from our daily work, is:

    Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it

    --
    $x = ($x * 10) % 10 >= 5 ? 1 + int $x : int $x
    1. 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.

    2. 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.

  6. 1968 by MoellerPlesset2 · · Score: 4, Informative

    Since it's not in the article, I looked it up. She got her PhD in 1968.

    I initially thought that kind of sucked (Cambridge's 'Diploma in Computer Science' has been awarded since 1954), but apparently the first US PhD in CS named as such was in 1965 (University of Pennsylvania).

    The field could still use more women though.

    1. 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.

    2. Re:1968 by turing_m · · Score: 4, Funny

      Why?

      Just a guess, but maybe his tastes don't lean towards guys with beards and questionable personal hygiene.

      --
      If I have seen further it is by stealing the Intellectual Property of giants.
    3. Re:1968 by Lunzo · · Score: 3, Interesting

      The field could still use more women though.

      Better rhetorical questions:
      * Do you complain we need more male nurses?
      * Do you complain we need more male teachers?
      * Do you complain we need more female garbage collectors?

      Gender equality is not the same as having a 50/50 male/female split in every field.

  7. making software more reliable? by erroneus · · Score: 3, Interesting

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

    I don't know how many people come from the "old school" of programming, but when I started, we didn't have all these libraries to link to. When we wanted a function to happen, we wrote it. And when we wrote it, we checked for overflows, underflows, error status and illegal input. We didn't rely on what few functions that already existed.

    Most fatal program flaws are ridiculously easy to prevent, but bad programming habits prevail and short of creating some human language interpreter that writes code as it should be written, nothing will replace lazy programmers who trust library functions too much. And yes, I know about deadlines and not having time to waste and all that stuff. But there is something most people are also missing -- pride! I know that when I do something, I am putting my name on it whether it is directly or otherwise. And if my name gets associated with something, I make damned sure that it works and is of good quality. With the stuff that goes out these days (especially SQL injection?! PLEASE! What could be more fundamental than screening out acquired text data for illegal characters and lengths?!) it is clear that pride in one's own work is not something that commonly exists.

    For those of you out there who agree with me, it probably doesn't apply to you. For those that disagree, tell me why? Why is a programming error FIXABLE but not PREVENTABLE?

    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:making software more reliable? by ChienAndalu · · Score: 5, Funny

      No, electrons are reliable. They'll do what you tell them to do. Hardware engineers however design crappy hardware.

    3. Re:making software more reliable? by Colonel+Korn · · Score: 3, Interesting

      No, quantum mechanics is reliable. It defines physical uncertainties in a robust way. Electrons suffer from crappy positional and momentum certainty.

      --
      "I zero-index my hamsters" - Willtor (147206)
    4. Re:making software more reliable? by Ardeaem · · Score: 4, Funny

      No, electrons are reliable. They'll do what you tell them to do.

      I, for one, am never sure quite what my electrons are doing. After that Heisenberg guy, they've been a bit flaky...

    5. Re:making software more reliable? by iminplaya · · Score: 3, Funny

      No, quantum mechanics is reliable. It defines physical uncertainties in a robust way.

      Only when you're watching. Behind your back it's complete chaos.

      --
      What?
  8. LSP it's not a guideline, it's a rule. by refactored · · Score: 4, Interesting
    Sadly, too many people still think it's a guideline, not a rule. Sorry, if your code violates the LSP, you've got a bug, it just hasn't bitten you yet.

    She deserves recognition for the vast number of latent defects she has effectively removed from the worlds software with the LSP alone, I'm glad she got the award.

  9. More women in the old days by Simian+Road · · Score: 5, Interesting

    Apparently there were far more women in computing in "the old days". The dominance of the male geeks is a relatively recent phenomenon.

  10. She was not the first woman to get the turring awd by addininja · · Score: 3, Informative
  11. Re:Translation for Americans by Chris+Burke · · Score: 3, Informative

    We don't call it that. We call it toilet paper like normal people. Makers of toilet paper call it bathroom tissue, I guess because they want a name that's a little more distant from "ass wipe" or less evocative of a porcelain bowl filled with crap or something, though they'll talk about their "bathroom tissue" in advertisements while showing cartoon bears (chosen because as everyone knows, bears shit in the woods) with little scraps of toilet paper all over their fat bear asses, which I can't help but wonder who the fuck has this problem and why, but I'm afraid of the answer, and apparently the right brand of ass wipe will solve it so lets just try to forget about that okay?

    What were we talking about? Oh right. It's called "pop". "Soda" is okay too I guess.

    --

    The enemies of Democracy are
  12. 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.

  13. In context of history of languages by dpigott · · Score: 3, Interesting

    CLU drew on the lessons learned with both Alphard and Vers. Alphard was from CMU and written by Wulf and Shaw, Wulf also writing the famous BLISS. Vers was made by Jay Early, whose parser was hugely important in all the compilers of the time. THe language itself (and its V-graphs) was heavily influenced by the Mem-theory of Anatol Holt (who was on the Alogl Committee and was a principle in designing the astonishing GP and GPX systems for the UNIVAC - first languages to explicitly feature ADTs per se. That became ACT, the adaptable programming system for the Army's Fieldata portable computers (portable in a completely different sense to the modern usage. He also hated Unicode, but that was a rival programming system back then. So reading the reports at the time can be misleading - "don't use Unicode on Portable Computers!"). Holt's ideas permeate computing, the notion of making any system of data representation as abstract as possible goes back to him.

    CLU was written using MDL (pronounced muddle) which was a protoreplacement for LISP which featured ADTs. MDL was cowritten by Sussmann of LISP fame as a basis for PLANNER which became Scheme, and perhaps more geekly interesting is that is was also used for writing ZIL (and if you don't know about ZIL, you shouldn't be reading Slashdot)

    CLU evolved into Argus, but the ideas were also used in the Theta programming system for the Thor OO database, and was also in PolyJ which was (as it suggests) a Polymorphic Java

    Another fascinating development of the CLU ideas the SPIL system that Liskov co-wrote at the USAF-sponsored MITRE corp, which was in turn used for writing the VENUS operating system

    Liskov has pioneered the notion of abstraction per se in language design for 40 years, and this generics-based approached is now taken for granted. She fully deserved the award for her insights as well as for her determination in fighting the reductionism represented by previous recipients (eg Dijkstra) although opposed by others (eg Iverson)

    I have extracts for reports for all language of these on the HOPL website HOPL.murdoch.edu.au (too many URLs to paste in individually). Find CLU http://hopl.murdoch.edu.au/showlanguage.prx?exp=637&name=CLU and follow the genealogy links. And if you haven't yet seen my 4000-strong programming-language family tree it is worth printing out for wallpaper if you have an A1 plotter.