Skip to main content

The rest of PyCon, day #2

I spent much of the afternoon at the lightning talks that Greg mentioned, and they were great fun. The two things that struck me most were:
  1. The fact that one or two people can hole themselves up for a while, churn out a bunch of Python code, and generate some pretty cool hacks (a userspace NFS fileserver, a really neat threaded email viewer, etc. etc.)
  2. The incredible warmth of the community. Person A might not care too much about web stuff, but he or she is still genuinely excited and supportive when Person B gets up to give a 5 minute lightning talk on his/her Python web templating library.
After the lightning talks, I went to three more heavy-duty, guts-of-the-language type talks. Two were by Alex Martelli, and the third was from Mike Fletcher.

Alex's first talk centered on descriptors, decorators, and metaclasses. It seemed like a great 1-hour talk that had been squeezed into 20 minutes; if (like me) you didn't know much about descriptors before the talk, then it probably would have made you curious to learn more, but there just wasn't time to absorb much of what Alex was saying.

Alex's second talk was a much more accessible spiel about generators and iterators. Alex took us smoothly from introducing basic generator syntax up to introducing more complex, nested generators for things like tree traversal. He also made a great pitch for itertools, citing its elegance and high-level nature as a motivation for many people, and the fact that itertools are fast as a great motivation for the remaining, more pragmatic Python programmers. :)

Mike's talk also focused on descriptors and related language constructs, but some technical difficulty with his slides made things a bit tough. I did have a chance to speak with Mike for a while in the evening, and when I was praising the Traits talk from the day before, he mentioned a few other projects that are doing similar things (many of them using descriptors). He pointed me to wxOO/BasicProperty/BasicTypes and PEAK, and he said that Zope had something along those lines as well. (I might be forgetting one more). Mike had personally worked on the wxOO project, and he said that BasicProperty and BasicTypes had some web support, which is something that's currently missing from Traits.


Peter said…
Traits is interesting because when people are first exposed to it, they tend to fixate on the pseudo-typing aspect of it:

class Foo(HasTraits):
x = Int()
y = Range(0,10)
z = List()

I think this style of syntax is shared by several other projects (e.g. most ORM libraries), and wxOO even bears resemblance to Traits's UI generation feature.

But I've found that in practice, the most powerful aspect of Traits is the ability to easily write code in the reactive programming style. When I can easily create objects that bind and respond, at runtime, to changes in other objects, it completely changes around how I express the logic in my programs. It naturally becomes much more model-centric, and separation of models, views, and controllers tend to fall out of the design.

Popular posts from this blog

PyCon 2018 Call for Proposals is Open!

It’s here! PyCon 2018’s Call for Proposals has officially opened for talks, tutorials, posters, and education summit presentations. PyCon is made by you, so we need you to share what you’re working on, how you’re working on it, what you’ve learned, what you’re learning, and so much more.

Before we dive in, the deadlines:
Tutorial proposals are due November 24, 2017.Talk, Poster, and Education Summit proposals are due January 3, 2018.Who should write a proposal? Everyone!

If you’re reading this post, you should write a proposal. PyCon is about uniting and building the Python community, and we won’t advance as an open community if we’re not open with each other about what we’ve learned throughout our time in it. It isn’t about being the smartest one in the room, so we don’t just pick all of the expert talks. It’s about helping everyone move together. “A rising tide lifts all boats,” if you will.

We need beginner, intermediate, and advanced proposals on all sorts of topics. We also need b…

PyCon 2018 Launches New Site, Sponsorship Search

After two great years in Portland, PyCon is shipping off to Cleveland for the 2018 and 2019 renditions of the Python community's largest gathering. PyCon 2018 will take place May 9 through 17 with two days of tutorials, three days of talks, and four days of development sprints.

For more information, check out our newly refreshed website at and follow us here on the blog and at @pycon on Twitter.

New Website

The new site features a design centered on the historic landmark Terminal Tower, a 52 story skyscraper that overlooks downtown Cleveland. When it opened in 1930, the tower was the fourth tallest building in the world and the tallest building outside of New York City. Though its height no longer tops the charts, the tower and surrounding Tower City area remain highly important to the city. What once was a beacon to guide ship captains to Cleveland's port and airplane pilots to its airport, the tower now includes 508 LEDs that light up for the holida…

How to get ready for the PyCon development sprints

[A guest post by Kushal Das, one of the 2016 Sprint Coordinators]So — you have already decided to join in the PyCon development sprints! The sprints run for four days, from Thursday to Sunday after the conference. You do not have to be registered for the conference to attend the sprints! Some teams plan to write code over all four days, while some projects plan a shorter sprint if the organizers cannot stay for all four days.Can you start getting prepared for the sprint ahead of time? Yes!There are several things you can do ahead of time, that can save effort once you arrive at the sprints — and some preparations can even be made at home, before you arrive at PyCon:Have your operating system updated and patched — whether Mac, Windows, or Linux. This eliminates one possible source of problems with getting software up and running.Go ahead and install the version control system that will be used by the projects you are interested in. If you install both git and Mercurial on your computer…