Keynotes

Audrey Roy

Audrey was opening keynote speaker. I’m partial but I think she rocked it. :)

Mary Gardiner

Mary Gardiner spoke about:

  • Be an open source super hero and try to change the world
  • Find a project that helps people and get involved!

Sample projects:

Raymond Hettiger

See me fill in all the holes at: http://pydanny-event-notes.readthedocs.org/en/latest/PyCodeConf2011/python_is_awesome.html

LA’s own Raymond Hettiger talked about What makes Python Awesome?

  • Other languages are awesome, how is Python better?
  • Most Python releases are GPL-compatible. This makes it free.
  • Going to a closed source language means you are trapped.
  • Commercial distributions like ActiveState and Enthought
  • Python has Zen. Internalized as core developers and internalized by community devs

Community

  • Mailing lists
  • Newsgroups? HA HA HA
  • Python User Groups

PyPI

  • Repo for Python programming language
  • Over 16,000 packages
  • pip install ordereddict works for Python 2.5!

Killer apps

  • Zope, Django, Pyramid
  • Numpy and Scipy
  • Bittorrent and Twisted
  • YouTube
  • Blender and Maya
  • Win32 - Factoid: Me, @pydanny, has done all his windows programming using cpython and Win32!

Easy to learn!

  • Good teachers.

  • Think how fast you got the types and control structures in Python. General 3 hours

  • In a day you can learn special methods and stdlib

  • Critical because if you need good Python developers it doesn’t take long to get up to speed. Converting developers takes:

    • C takes 2 years to get competent
    • Java takes 6 months to get competent
    • Python takes a week to get competent
  • Rapid development cycle

    • Scripting languages are unbeatable for development speed
    • Programs are grown organically
    • Interactive testing lets people work with their code results immediately.
    • Bang out real code fast

Economy of expression

  • Not many words or characters to get things done.
  • clear English means non-coders can understand your work
  • Pydanny factoid: One of the first times I wrote Python on a whiteboard for a boss at NASA/SAIC they thought it was very legible pseudo code representing a complex process.
import hashlib
import os
import pprint
hashmap = {}
for path, dirs, files in os.walk('.'):
    for filename in files:
        fullname = os.path.join(path, filename)
        with open(fullname) as f:
            d = f.read()
        h = hashlib.md5(d).hexdigest()
        filelist = hashmap.setdefault(h, [])
        filelist.append(fullname)
pprint.pprint(hashmap)

Beauty Counts

  • Readability is the #1 mentioned characteristics of why organizations choose Python

  • The beautiful appearance on the page directly affects a programmer’s sense of joy

  • Makes us go home and write code

  • If you can read other people’s code that makes it easier to maintain

  • Because we all mostly share the same idiom it means we can read each other’s code. That doesn’t stifle creativity - it just means we can get along.

    • As a parent I can say I would have loved having a formal uniform at school. As a geek in school I would have loved that too. :P

Interactive Prompt (REPL)

  • Python experts don’t memorize Python

  • They use the interactive prompt often (I try to write tests…)

  • This is a killer features that runs circles around compiled languages

    • Python shell
    • IPython
    • BPython (My favorite)

Behind the Scenes

Philosophy of core dev

  • Conservative growth
  • We read Knuth so you don’t have to
  • Aim for simple implementation

Protocols

To interact with these we have defined protocols

  • DBAPI
  • Hashlib
  • Compression
  • WSGI for the web
  • Conversion protocols

Specifics of Python: The Foundation

  • Dictionaries and Lists
  • Automatic memory management
  • Overridable syntax
  • Exceptions
  • You can reprogram the brackets?
  • And we can reprogram the dot?!?

Winner Language Feature: Iterator Protocol

  • High level glue that holds the language together
  • Iterables: strings, lsits, sets, dicts, collections, files, open urls, csv readers, itertools
  • Um… I know this. I’ve had to construct these on my own in other languages. But not Python… Wow - I just realized this just now.
  • List comprehensions give us joy
  • List generators are amazing. No one else has them

Winner Language Feature: Generators

  • Serious magic
  • A million rows in a generators is nothing
  • Simple syntax to do them. You only need the YIELD keyword.

Winning language Decorators

  • Expressive
  • Easy on the eyes
  • Works for functions, methods, and classes
  • Factoid: I have problem writing them. Serious problems. :’(

Winning Language Features: exec, eval, type

  • Not a fan of exec and eval because when used in my experience they are done badly
  • But type is awesome

Winning Language Feature: With Statement

  • Clean, elegant resource management: threads, locks. etc
  • Important tool for factoring code
  • Contains the setUp and tearDown code.
  • The reverse of functions

Winning Language Feature: Abstract Base Classes

  • TODO - go over this one

Winning Language Feature: Indentation

  • Makes the code really clear
  • We write our pseudo code this way
  • Less errors!
  • Less ambiguity!