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
PRO

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 Slide

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

    View Slide

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


    Hello. I'm Carol.

    View Slide

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

    View Slide

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

    View Slide

  6. The Zen of Python
    Governance

    View Slide

  7. !7
    Change is a
    constant

    View Slide

  8. !8
    Great code
    requires
    communication

    View Slide

  9. !9
    People have
    opinions

    View Slide

  10. Python
    Today

    View Slide

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

    View Slide

  12. !12
    Growth

    View Slide



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

    View Slide



  14. Embedded &
    Makers
    Micropython,
    CircuitPython,
    Raspberry Pi

    View Slide

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

    View Slide

  16. !16
    Governance
    Post-BDFL

    View Slide

  17. !17
    PEP 8016
    The Steering Council
    Model

    View Slide

  18. 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 Slide

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

    View Slide

  20. Core Development

    View Slide

  21. !21
    Python 3.8

    View Slide

  22. 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 Slide

  23. !23
    Farewell to
    Python 2

    View Slide

  24. !24
    py3readiness.org

    View Slide

  25. !25
    pythonclock.org

    python3statement.org
    25
    2020-01-01

    View Slide

  26. !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 Slide

  27. Communicating
    through code

    View Slide

  28. !28
    Jupyter
    nteract
    Binder

    View Slide

  29. !29
    Jupyter
    nteract
    Binder

    View Slide

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

    View Slide

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

    View Slide


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

    on GitHub

    View Slide

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

    View Slide

  34. jupyter.org

    View Slide

  35. !35
    Interactive = Web

    Agnostic = Language

    Open Source = World
    Keys to Jupyter's Success

    View Slide

  36. !36
    Jupyter
    nteract
    Binder

    View Slide

  37. !37
    ReactJS front end
    nteract

    View Slide

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

    View Slide

  39. !39
    Enterprise data workflows

    View Slide

  40. !40
    Jupyter
    nteract
    Binder

    View Slide

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

    View Slide

  42. !42
    jupyter.org

    View Slide

  43. !43
    Juliette Taka

    View Slide

  44. !44
    Binder
    mybinder.org

    View Slide

  45. Keys to Python's
    Future

    View Slide

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

    View Slide

  47. !47
    Web

    View Slide

  48. !48
    JavaScript and
    WebAssembly
    Interactions with Python

    View Slide

  49. !49
    pyodide

    View Slide

  50. !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 Slide

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

    View Slide

  52. !52

    View Slide

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

    View Slide

  54. !54
    Animation
    jupyter.org

    View Slide

  55. !55
    Binaries
    User installation experience

    View Slide

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

    View Slide

  57. !57
    cross platform

    View Slide

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

    View Slide

  59. !59
    Mobile
    Portable for Global Users

    View Slide

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

    View Slide

  61. zero-to-jupyterhub.readthedocs.io

    View Slide

  62. !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 Slide

  63. !63
    From a
    phone in
    the park!

    View Slide

  64. !64
    Web Binaries Mobile
    What can you do

    View Slide

  65. !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 Slide

  66. Code and
    Community
    Call to Action

    View Slide

  67. –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 Slide

  68. !68
    Sensible Defaults
    for Code and
    Community

    View Slide

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

    View Slide

  70. !70
    Listen
    understanding
    consideration
    value ideas of others

    View Slide

  71. !71
    Share
    experiences
    knowledge
    risk and reward

    View Slide

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

    View Slide

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

    View Slide

  74. !74
    Have a bold vision

    View Slide

  75. Connect
    the
    Pythonistas

    View Slide

  76. – 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 Slide

  77. !77
    the future of
    Python
    depends on

    View Slide

  78. !78
    YOU

    View Slide



  79. Thank you
    @WillingCarol
    willingc on
    GitHub

    View Slide



  80. Thank you

    View Slide

  81. !81
    Join the

    View Slide



  82. Thank you
    @WillingCarol
    willingc on
    GitHub

    View Slide

  83. Attributions and
    Acknowledgements

    View Slide

  84. 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 Slide

  85. The End

    View Slide

  86. PyCon Korea 2019
    The State of Python
    Carol Willing

    View Slide