The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Guido @ Google : Python 3000

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Britt

Posts: 1319
Nickname: jamesbritt
Registered: Apr, 2003

James Britt is a principal in 30 Second Rule, and runs ruby-doc.org and rubyxml.com
Guido @ Google : Python 3000 Posted: Jun 21, 2007 11:30 PM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by James Britt.
Original Post: Guido @ Google : Python 3000
Feed Title: James Britt: Ruby Development
Feed URL: http://feeds.feedburner.com/JamesBritt-Home
Feed Description: James Britt: Playing with better toys
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by James Britt
Latest Posts From James Britt: Ruby Development

Advertisement

self was fortunate enough to get a seat at Guido van Rossum’s presentation on Python 3000 at Google’s Tempe, AZ facility.

I don’t know enough Python to appreciate the significance of the details of what’s new and notable in this next major release of Python, but the talk was interesting for the chance to hear some rationale for why a language designer might opt to add, change, or discard things.

The first thing to know is that Python3K will break current code. This is the version where past mistakes get corrected and cruft and crap jettisoned. Guido made a number of references to various features and their implementation in C. As is now becoming true for Ruby, Python has multiple implementations. The C version is (I believe) the canonical one. However, there is also Jython, IronPython, and PyPy .

At the end of the presentation, I ask how the existence of alternate implementations influenced decisions for Python 3K. Guido said that these were important, and the ability for them to stay compliant as Python the language evolved was a factor. There were at least some features or behavior were rejected because a JVM or CLR implementation would be sufficiently hard or impractical. (No, I don’t have specifics, and I’m paraphrasing from memory, so consider this an impressionistic recollection of the talk rather than a detailed report.)

There were some other items that caught me eye; loosely speaking (and, again, coming from a brain a bit exhausted from a 500+ mile drive earlier in the day) they would facilitate method overloading and type checking.

Dispatching methods based on the “type” and number of parameters is not something Ruby offers out of the box. It is something that comes up, though, as part of the the ruby-talk Static Typing permathread (which, now that I think of it, seems due for an appearance). Various arguments get put forth, usually with a good deal of misunderstanding from the pro-static camp about what a “type” in Ruby actually is.

I don’t know the use cases or culture for Python coding, so I can’t say how these features would be used. From my cursory preview, though, they seem to offer the option to write code that essentially dumps duck typing in favor of more B&D behavior .

Perhaps this is something Pythonistas desire; it’s curious how the Python culture and Ruby culture have, for example, very different takes on re-opening classes. Pythonistas (as far as I’ve seen) frown on it. It’s “monkey patching”. You don’t do it unless you really, really have to; it’s a hack. Rubyists, on the other hand, consider it simply what the language does. Re-opening a class is no more scary than re-assigning to a variable. We really don’t need someone telling us “you’ll shot your eye out!” We know.

(BTW, the phrase “monkey patching” pops up here and there in Ruby discussions. Usually it says more about the speaker than about the code.)

Read: Guido @ Google : Python 3000

Topic: On Ruby and Rails Criticism Previous Topic   Next Topic Topic: InfoEther

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use