My Photo
E-Commerce Service
Amazon E-Commerce Service (ECS) exposes Amazon's product data and e-commerce functionality.

Elastic Compute Cloud
Amazon Elastic Compute Cloud is a web service that provides resizable compute capacity in the cloud.

Historical Pricing
The Amazon Historical Pricing web service gives developers programmatic access to over three years of actual sales data for books, music, videos, and DVDs.

Mechanical Turk
One of the best ways to understand Amazon Mechanical Turk is to complete a HIT and see what the experience is like.

Simple Storage Service
Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.

Simple Queue Service
Amazon Simple Queue Service offers a reliable, highly scalable hosted queue for storing messages as they travel between computers.

Alexa Thumbnails
All thumbnail images are accessible via web services, using SOAP or REST.

Alexa Top Sites
The Alexa Top Sites web service provides ranked lists of the top sites on the Internet.

Alexa Web Information Service
The Alexa Web Information Service makes Alexa's vast repository of information about the traffic and structure of the web available to developers.

Alexa Web Search
The Alexa Web Search web service offers programmatic access to Alexa's web search engine.

« Amazon DevCon - Guido van Rossum | Main | ECS for France and Canada »

Amazon DevCon - Guido van Rossum - Another View

Guido van Rossum, creator of the Python programming language;, started with a short Q&A session before his real talk began.

Asked about the Parrot project, Guido thought that it was "a long way from being useful," and said he didn't "know if they'll be able to fulfill their promise of running Python as well as the original implementation."

He's not "afraid of jumping onto that bandwagon, but it looks like it's still in the garage."

That said, Guido maintained that he wasn't stuck on the current Python VM, and mentioned the work on getting Python to work on the .NET and JVM platforms.

Fielding another question in his black PYTHONLABS tee, Guido talked a bit about the process of integrating new code or libraries into the Python core, noting that changes should be useful across many application domains, mature, and have an active maintainer. It also may not make sense to integrate code that changes much more quickly than the realtively slower Python release schedule.

Guido also talked a bit about the optional static typing debate that's been flying around the programming languages blogosphere, calling it a "incredibly contentious subject".

When asked about languages like Haskell or ML, Guido said that Python would never end up evolving in that direction, in order to maintain Python's dynamic flexibility.

Asked about Ruby, Guido thought that it "seems like an accident attempt in cleaning up Perl". He disliked the perlesque parts of Ruby and claimed that the semantics of Ruby code blocks is not always clear.

One developer sitting on the floor made a feature request for continutations in Python, but Guido replied that "his head explodes" whenever he has tried to understand continuations. Instead, generators in Python, we were told, could do 90% of what you might want to do with continuations.

After that, Guido started his talk, titled "What's (Not) New in Python", his favorite talk. "What's New" talks, he told us, tend to degrade into too much "laundry-listness".

He breezed through a few slide describing his own Pythonic lifetime from his "first grlfriend :-1" at age 21 to his recent role as a relatively new father. I expected him to say that he teaches his kid Python algonside Dutch and English, but he said that he tried to keep his kid away from computers, except for looking at firetruck images on google.

As for teaching other kids programming languages, Guido told us that teachers of programming tell him that kids learn and "understand much better" if they see Python before Java.

Moving on to an older target audience, Guido asked how many of us were Python users. Maybe a quarter of the room raised their hands. And just as in Brian Aker did in his MySQL talk, Guido asked first how many of use his technology at work, and then asked second how many of those people told their boss :).

Guido seemed to think that a language like Python would have significant advantages at a place like Amazon, where you want to develop quickly and prototype software. At his workplace, he's doing enterprise security software these days.

But in his spare time, Guido acts as the benevolent dictator for life for Python, but provides a "PEP" mechanism for allowing everybody to give input on the Python language.

Guido went on to describe the evolution of iterators and generators, from simple loops to pseudo-sequences and iterators in Python 2.2. Along the way he took another friendly shot at the Perl community, for creating a whole new language for Perl 6 and calling it the same name.

He showed how Python 2.2's generators and iterators made it easier to write cleaner and even faster code, mentioning parsing/tokenizing, the standard library difflib module, and os.walk() as example uses.

[Insert picture of Guido's kid eating out of a big tub of cool whip.]

Guido next stepped through a few neat Python features such as generator expressions and told us about how methods can be added and called in a dynamic fashion.

In talking about function binding, lookup and currying, Guido had this to say. "In general, I don't like magic."

His next slide proclaimed "Magic Is Bad!" and subsequent slides described the "magic revealed: descriptors", to unify user-defined classes with built-in types.

Another slide told us that "If you take one thing away from this talk, it should be how to create simple properties", another one mentioned how to do schizophrenic things with classes and metaclasses, another slide of his cute little kid, and finally "Question Time", one last simple slide.

Questions? (Paraphrased.)

Q: Any practical suggestions for avoiding run-time debugging?

A: Try running PyCheck.

Someone suggested unit tests, and Guido mentioned that Python code is, anecdotally, a factor of five shorter.

Q: What's holding Python back?

A: It may take another generation of programmers to get over the prejudice for static typing.

Q: Are there languages out there that you want to take features from?

A: All the time. But I have to be careful... It's a balance.

He mentions Boo, which is 95% Python, but statically typed and thus feels completely different. Guido does not want Python to become Boo.

Q: Incremental garbage collection?

A: Referencing counting was good until you had cyclic references. Python still do reference counting, but there's an optional high-performance GC that kicks in when cycles exist -- it's not something you need to worry about. It'd be "incredibly tough" to compile with something like an incremental garbage collector, but there are things like Jython with the standard JVM GC.

Time is up and Guido says "Books!"

Three seconds later: "All gone."

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/t/trackback/183837/1701902

Listed below are links to weblogs that reference Amazon DevCon - Guido van Rossum - Another View:

» Amazon Developer's Conference from Tales from the Rich Client
[Read More]

Comments

What was the goal of the Devcon?

The talks seem fairly scattered. I guess i thought they were going to be on what people were doing with Web Services...instead it appears to be a lot of open source figures.

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

If you have a TypeKey or TypePad account, please Sign In

May 2008

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31