More raw notes from EuroPython 2009 – this time from the entertaining and informative Python Sucks[1] session:

  • programming languages do matter; choice can hugely affect the end result
  • whitespace enforcement the “best worst feature” (other languages’ worst features are much more severe)
  • Unicode handling is a pain
  • lambdas
    • should just be called functions (increases acceptance)
    • cannot contain statements
    • binding issues in loops
  • threading is haphazard (GIL is evil) — however: CPython implementation issue, addressed in v2.6 – “it’s different, not necessarily insufficient (e.g. using underlying OS)”
  • confusing packaging situation (setuptools, Easy Install, distutils, eggs, buildout, PyPI, virtualenv) – “solved, but people disagree” – “Easy Install sucks, too magic” – “not a Python-specific, but OS-level task” – problem is hard to solve, as there’s a variety of different usage scenarios
  • infinity, NaN support (IEEE 754)
  • floating point printing (0.1 becomes 0.10000000000000001) — fixed in v3.1
  • division — fixed in v3.0
  • decorators (“@ is scary, unfamiliar syntax”)
  • argument list splicing (e.g. zip(*l)) – “unfamiliar syntax”
  • some modules only exist on certain platforms
  • positive aspects
    • everything is an object
    • object instantiation (no new keyword – i.e. just like calling a function)
    • generator expressions (from Haskell)
    • chained comparisons (0 < = x < n) - though largely unknown, and allows 0 < x > a or 0 < x in L
    • Iverson’s convention (x < y evaluates to 0/False or 1/True) - "open to abuse"
    • access control (public, private etc.) – not enforced (“advisory [bicycle] locks”) – likely more a social than a technical problem
    • fractions (from v2.6)
    • power (x**2)
    • explicit > implicit (unlike this in JavaScript, for example)
  • “Python sucks because sometimes it has to run on Windows”

slides available

Obviously some points were quite controversial (whitespace FTW!) – which is what made the session so interesting.

  1. retitled What Sucks About Python in the official program []