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

The State of Python

The State of Python

Keynote at PyCon Korea. Theme of the conference is "Connecting the Pythonistas". This talk gives highlights of Python 2019, its future, the ecosystem including Jupyter, neteract, and Binder, challenges/opportunities for Python, and the impact of community.

Carol Willing

August 17, 2019
Tweet

More Decks by Carol Willing

Other Decks in Technology

Transcript

  1. PyCon Korea 2019
    The State of Python
    Carol Willing

    View full-size slide

  2. The State of Python
    Code + Community =
    Global Connection

    View full-size slide

  3. Python Steering Council
    Core Developer
    PSF Fellow
    PSF Director (past)
    Frank Willison Award 2019


    Hello. I'm Carol.

    View full-size slide

  4. !4
    Jupyter
    Steering Council
    Core Developer
    JupyterHub, BinderHub,
    mybinder.org
    nteract
    Core maintainer
    Papermill, Scrapbook,
    Bookstore, Commuter

    View full-size slide

  5. The State of Python
    ‣ Python Today
    ‣ Communicating through code
    ‣ Keys to Python's Future
    ‣ Code and Community
    ‣ Connect the Pythonistas

    View full-size slide

  6. The Zen of Python
    Governance

    View full-size slide

  7. !7
    Change is a
    constant

    View full-size slide

  8. !8
    Great code
    requires
    communication

    View full-size slide

  9. !9
    People have
    opinions

    View full-size slide

  10. !11
    Growth
    Governance
    Python 3.8
    Farewell to Python 2
    Code and Language

    View full-size slide



  11. What's behind the growth?
    Web
    DevOps
    Systems
    Scripting

    View full-size slide



  12. Embedded &
    Makers
    Micropython,
    CircuitPython,
    Raspberry Pi

    View full-size slide

  13. !15
    Data Science & Science
    PyData
    AI
    Machine Learning
    Visualization
    Fernando Perez
    Creator, IPython & Jupyter

    View full-size slide

  14. !16
    Governance
    Post-BDFL

    View full-size slide

  15. !17
    PEP 8016
    The Steering Council
    Model

    View full-size slide

  16. PEP 13: Python Language Governance
    ‣ Quality and Stability
    ‣ Contributing accessible, inclusive, sustainable
    ‣ Core team and PSF relationship
    ‣ Decision making processes for PEPs
    ‣ Seek consensus

    View full-size slide

  17. !19
    Barry Warsaw
    Brett Cannon
    Carol Willing
    Guido van Rossum
    Nick Coghlan
    Steering Council

    View full-size slide

  18. Core Development

    View full-size slide

  19. !21
    Python 3.8

    View full-size slide

  20. Positional only parameters

    Assignment operator (walrus operator)

    "equals" specifier added to f-string

    PEP 587: Python Initialization Configuration

    PEP 574: pickle protocol 5
    !22
    Key features in 3.8

    View full-size slide

  21. !23
    Farewell to
    Python 2

    View full-size slide

  22. !24
    py3readiness.org

    View full-size slide

  23. !25
    pythonclock.org

    python3statement.org
    25
    2020-01-01

    View full-size slide

  24. !26
    In reality, programming languages
    are how programmers express and
    communicate ideas — and the
    audience for those ideas is other
    programmers, not computers.
    http://neopythonic.blogspot.com/2016/04/kings-day-speech.html
    Guido van Rossum
    Language Design

    View full-size slide

  25. Communicating
    through code

    View full-size slide

  26. !28
    Jupyter
    nteract
    Binder

    View full-size slide

  27. !29
    Jupyter
    nteract
    Binder

    View full-size slide

  28. Jupyter
    Notebook
    A Jupyter Notebook document with a visualization of measles data.

    View full-size slide

  29. !31
    2014
    Now,
    5 years
    later...

    View full-size slide


  30. Millions of
    Notebooks
    https://github.com/trending/jupyter-notebook
    Over 5 million

    on GitHub

    View full-size slide

  31. !33
    ‣ Growth
    ‣ ACM Award
    ‣ Industry adoption
    ‣ Creative uses
    ‣ Open Source Book
    Jupyter

    View full-size slide

  32. !35
    Interactive = Web

    Agnostic = Language

    Open Source = World
    Keys to Jupyter's Success

    View full-size slide

  33. !36
    Jupyter
    nteract
    Binder

    View full-size slide

  34. !37
    ReactJS front end
    nteract

    View full-size slide

  35. !38
    ‣ Papermill
    ‣ Scrapbook
    ‣ Bookstore
    ‣ Commuter
    Netflix: data at scale
    https://medium.com/netflix-techblog/notebook-innovation-591ee3221233

    View full-size slide

  36. !39
    Enterprise data workflows

    View full-size slide

  37. !40
    Jupyter
    nteract
    Binder

    View full-size slide

  38. !41
    Binder
    mybinder.org
    Binder 2.0 blog post
    elifesciences: Share
    your interactive
    research environment
    Nature article about
    Binder

    View full-size slide

  39. !42
    jupyter.org

    View full-size slide

  40. !43
    Juliette Taka

    View full-size slide

  41. !44
    Binder
    mybinder.org

    View full-size slide

  42. Keys to Python's
    Future

    View full-size slide

  43. !46
    Web Binaries Mobile
    Keys to Python's future

    View full-size slide

  44. !48
    JavaScript and
    WebAssembly
    Interactions with Python

    View full-size slide

  45. !50
    https://github.com/data-exp-lab/rust-yt-tools/
    npm package @data-exp-lab/yt-tools
    Irber Junior LC. Oxidizing Python: writing
    extensions in Rust [version 1; not peer
    reviewed]. F1000Research 2018, 7(ISCB
    Comm J):955 (poster) (https://doi.org/
    10.7490/f1000research.1115726.1)
    https://github.com/munkm/widgyts
    yt and jupyter
    widgets

    View full-size slide

  46. !51
    ipyvolume
    https://towardsdatascience.com/multivolume-
    rendering-in-jupyter-with-ipyvolume-cross-
    language-3d-visualization-64389047634a

    View full-size slide

  47. !53
    https://github.com/pydy/pydy-tutorial-human-standing
    Animation
    https://mybinder.org/v2/gh/willingc/pydy-tutorial-human-standing/master

    View full-size slide

  48. !54
    Animation
    jupyter.org

    View full-size slide

  49. !55
    Binaries
    User installation experience

    View full-size slide

  50. !56
    Simplify install
    https://nteract.io
    Double Click

    View full-size slide

  51. !57
    cross platform

    View full-size slide

  52. !58
    web distribution
    WebAssembly (wasm)
    Drag and drop (Binder, pyodide)
    Containers and sandboxes

    View full-size slide

  53. !59
    Mobile
    Portable for Global Users

    View full-size slide

  54. On Demand and Mobile First
    web access, hardware, electricity Source: pgbovine.net
    Global Needs

    View full-size slide

  55. zero-to-jupyterhub.readthedocs.io

    View full-size slide

  56. !62
    https://blog.jupyter.org/binder-2-0-a-tech-guide-2017-fd40515a3a84
    https://elifesciences.org/labs/8653a61d/introducing-binder-2-0-share-your-interactive-
    research-environment
    https://www.nature.com/articles/d41586-018-01322-9
    mybinder.org

    View full-size slide

  57. !63
    From a
    phone in
    the park!

    View full-size slide

  58. !64
    Web Binaries Mobile
    What can you do

    View full-size slide

  59. !65
    What can you do
    ‣ Keep up with WebAssembly news
    ‣ Give a Rust / wasm / Python project a try
    ‣ Try Beeware and its tools. Great project for
    first time contributors too.
    ‣ Think about the User Experience for your
    work

    View full-size slide

  60. Code and
    Community
    Call to Action

    View full-size slide

  61. –Tim O'Reilly
    “Contributions can encompass so
    much more than code. A successful
    software community requires time,
    dedication, communication, and
    education as well as elegant code.”


    View full-size slide

  62. !68
    Sensible Defaults
    for Code and
    Community

    View full-size slide

  63. !69
    Respect
    time
    graceful disagreement
    your approach may not be best

    View full-size slide

  64. !70
    Listen
    understanding
    consideration
    value ideas of others

    View full-size slide

  65. !71
    Share
    experiences
    knowledge
    risk and reward

    View full-size slide

  66. !72
    Trust
    Negativity shuts down creativity.
    Silencing productive discourse and
    gatekeeping result in toxic workflows.

    View full-size slide

  67. !73
    Humility
    Long term success
    Learning from failures
    Innovation

    View full-size slide

  68. !74
    Have a bold vision

    View full-size slide

  69. Connect
    the
    Pythonistas

    View full-size slide

  70. – Guido van Rossum
    ...a programming language created
    by a community fosters happiness
    in its users around the world.


    http://neopythonic.blogspot.com/2016/04/kings-day-speech.html

    View full-size slide

  71. !77
    the future of
    Python
    depends on

    View full-size slide



  72. Thank you
    @WillingCarol
    willingc on
    GitHub

    View full-size slide



  73. Thank you
    @WillingCarol
    willingc on
    GitHub

    View full-size slide

  74. Attributions and
    Acknowledgements

    View full-size slide

  75. Matplotlib documentation

    Carol Willing papers and photos

    Project Jupyter

    nteract project

    Python website

    Fernando Perez website

    ipyvolume project

    yt project and Madicken Munk

    Binder Team

    Kirstie Whitaker

    View full-size slide

  76. PyCon Korea 2019
    The State of Python
    Carol Willing

    View full-size slide