Barbara Liskov - Keynote: The Power of Abstraction

90 views
Skip to first unread message

Erik Rantapaa

unread,
May 4, 2013, 6:50:51 PM5/4/13
to clojuremn


This is an excellent talk and covers a lot of topics - especially retrospectives on the development of programming languages, methodology and abstract data types from the late 60s and onwards.

Just some of the topics she touches on:

- Dijkstra's Go To Considered Harmful paper and the context in which it should be considered
- the mindset of programmers in the 60s and 70s
- the development of the ideas that led to her Turing award
- polymorphism in CLU and how she would have done things differently
- the power of the subconscious and why she only works 40 hours a week
- comments on the deficiencies of Java, Python and Haskell

Tom Marble

unread,
May 5, 2013, 10:35:43 PM5/5/13
to cloj...@googlegroups.com
On 05/04/2013 05:50 PM, Erik Rantapaa wrote:
>
> http://www.infoq.com/presentations/programming-abstraction-liskov
>
> This is an excellent talk and covers a lot of topics - especially retrospectives on the development of programming languages, methodology and abstract data types from the late 60s and onwards.

Wow that was awesome! Thank you for the pointer!

This made me think of a talk I heard recently from Radia Perlman:
http://lca2013.linux.org.au/media/news/77
I got to talk with Perlman later in the conference and she
was awe inspiring through the combination of her technical insight
and fantastically simple way of communication.

Here are just two examples of why we must make our (open source)
communities welcoming to everyone -- there's so much brainpower!

--Tom

Nick Bauman

unread,
May 6, 2013, 9:34:51 PM5/6/13
to cloj...@googlegroups.com
Really interesting. 

Anyone other than me find it strange that her talk _begins_ after her PhD work in Lisp and A.I. which she never mentions again except in an aside on how "productive" she could be using Lisp?

I found the poke at Java / C# being "expert" is kinda missing the point of Java's design. Java is a language designed by programmers for use by lesser programmers who can't be trusted to "program correctly" much of the time, which is the source of much of its accidental complexity. So it almost comes across as "accidental complexity" == "for experts only".

The poke at Python is an almost a perfect symmetrical corollary: Python doesn't have _enforced_ data abstraction. Its data abstraction is by convention. This makes its abstractions so simple that when you want to violate them, you both have to know what you're doing and yet you don't have to walk through fire to do so. The abstraction mechanism I find in Java is one developers often build huge walls of code to circumvent to only do simple things. Once again: experts are needed when your design really sucks. To whit: Objective-C has all of the same baroque data abstraction techniques that Java has except nobody really uses them!

The same complaint she has about Python can be applied to Clojure, of course. Clojure is free to use the data abstraction techniques of Java but once again, everyone avoids them.

Liskov was very important once. But we've moved on, I think.



--
You received this message because you are subscribed to the Google Groups "clojure.mn" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojuremn+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Chris Thompson

unread,
May 9, 2013, 8:07:27 AM5/9/13
to cloj...@googlegroups.com

Well said Nick. I thought there was something wrong with that criticism of python and you explained it well.
-Chris

Nick Bauman

unread,
May 9, 2013, 9:04:48 AM5/9/13
to cloj...@googlegroups.com

Why thank you. I hope I didn't sound too unkind. She obviously made a great contribution and we all stand on the shoulders of a giant etc, etc. Speaking personally I tend to stand on the big toe of giants these days when I look at my crappy code.

Brian Maddy

unread,
May 9, 2013, 10:21:30 AM5/9/13
to cloj...@googlegroups.com
That's interesting. I had actually forgotten about the part where she criticized Python. It seemed to me that she was quietly praising it at the end when she was saying we need languages to encourage readable code. I instantly thought of Python because having whitespace matter tends to cause coding styles to be more consistent (so I've heard--I haven't done much Python myself). It also made me think of Go because of gofmt, the included program that rearranges the code structure to be consistent.
Reply all
Reply to author
Forward
0 new messages