Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Batteries Included, But They're Leaking (Python...

Batteries Included, But They're Leaking (Python Language Summit, 2019)

Amber Brown (HawkOwl)

May 01, 2019
Tweet

More Decks by Amber Brown (HawkOwl)

Other Decks in Programming

Transcript

  1. Batteries included? Not really -- Python, by itself, is marginally

    useful. Batteries Included, But They're Leaking -- Python Language Summit 2019
  2. typing requires mypy to be useful asyncio needs aiohttp to

    talk to the web* asyncio needs aiopg / aiomysql to talk to a database* *(without throwing away all the benefits of asynchronous IO) Batteries Included, But They're Leaking -- Python Language Summit 2019
  3. ssl needs hacks to do TLS to IDNA domains???? pytz

    is basically non-optional six is non-optional for 2/3 compatible code Batteries Included, But They're Leaking -- Python Language Summit 2019
  4. http.client literally says "use Requests" arrow , dateutil , moment

    , are all things people actually want to use Django, numpy , pandas bring people to Python, not Python people to them Batteries Included, But They're Leaking -- Python Language Summit 2019
  5. Python's batteries are leaking Python's stdlib contains bugs that will

    never be fixed. Batteries Included, But They're Leaking -- Python Language Summit 2019
  6. Python's batteries are leaking Python's stdlib contains past bugs that

    one can never rely on being fixed. Batteries Included, But They're Leaking -- Python Language Summit 2019
  7. Depending on the Python stdlib is a liability for applications

    and libraries Batteries Included, But They're Leaking -- Python Language Summit 2019
  8. Two options: 1. Compile CPython yourself 2. Workaround hacks Batteries

    Included, But They're Leaking -- Python Language Summit 2019
  9. The stdlib is 'too little, too late' in vital areas

    aka backport hell Batteries Included, But They're Leaking -- Python Language Summit 2019
  10. socket.sendmsg means Twisted has a cext itertools has a pile

    of code in the docs as a 'recipe'???? functools needs backports for 2/3 compatible code Batteries Included, But They're Leaking -- Python Language Summit 2019
  11. Python 2.7 is dead, but only if you're on python-dev

    Thanks, Red Hat! Batteries Included, But They're Leaking -- Python Language Summit 2019
  12. The stdlib contains debatable "batteries", even on Python 3. Makes

    Python larger, harder to build, and less useful on constrained platforms. Batteries Included, But They're Leaking -- Python Language Summit 2019
  13. IDLE & tkinter turtle sunau xdrlib 2to3 Batteries Included, But

    They're Leaking -- Python Language Summit 2019
  14. Added stdlib modules disproportionately harms the ecosystem "why do we

    need this when it's in the stdlib?" Batteries Included, But They're Leaking -- Python Language Summit 2019
  15. Added stdlib modules disproportionately harms the ecosystem The stdlib is

    where code goes to die Batteries Included, But They're Leaking -- Python Language Summit 2019
  16. dataclasses has no reason to exist as a public API

    I spent the past four years explaining why incomplete and provisional asyncio didn't "kill" Twisted Batteries Included, But They're Leaking -- Python Language Summit 2019
  17. CPython contribution is a tight funnel that misses out on

    huge amounts of potential contributors It's not a zero-sum game, but it's very close Batteries Included, But They're Leaking -- Python Language Summit 2019
  18. CPython believes it's special enough to need special tools which

    give no benefit to the wider community blurb is CPython specific, despite the wide adoption of towncrier Batteries Included, But They're Leaking -- Python Language Summit 2019
  19. Overlap of CPython devs and major library authors seems low

    A lot of the problems experienced by large library authors don't affect CPython Batteries Included, But They're Leaking -- Python Language Summit 2019
  20. The frozen-in-time stdlib makes developing libraries harder. Twisted has to

    act like the stdlib is unpatched Batteries Included, But They're Leaking -- Python Language Summit 2019
  21. The sprawling stdlib makes developing alternate alternatives harder. Every single

    module in the Python stdlib makes life harder for PyPy, PyBee, and IronPython/Jython/etc Batteries Included, But They're Leaking -- Python Language Summit 2019