The State of Python
‣ Python Today
‣ Communicating through code
‣ Keys to Python's Future
‣ Code and Community
‣ Connect the Pythonistas
Slide 6
Slide 6 text
The Zen of Python
Governance
Slide 7
Slide 7 text
!7
Change is a
constant
Slide 8
Slide 8 text
!8
Great code
requires
communication
Slide 9
Slide 9 text
!9
People have
opinions
Slide 10
Slide 10 text
Python
Today
Slide 11
Slide 11 text
!11
Growth
Governance
Python 3.8
Farewell to Python 2
Code and Language
Slide 12
Slide 12 text
!12
Growth
Slide 13
Slide 13 text
What's behind the growth?
Web
DevOps
Systems
Scripting
Slide 14
Slide 14 text
Embedded &
Makers
Micropython,
CircuitPython,
Raspberry Pi
Slide 15
Slide 15 text
!15
Data Science & Science
PyData
AI
Machine Learning
Visualization
Fernando Perez
Creator, IPython & Jupyter
Slide 16
Slide 16 text
!16
Governance
Post-BDFL
Slide 17
Slide 17 text
!17
PEP 8016
The Steering Council
Model
Slide 18
Slide 18 text
PEP 13: Python Language Governance
‣ Quality and Stability
‣ Contributing accessible, inclusive, sustainable
‣ Core team and PSF relationship
‣ Decision making processes for PEPs
‣ Seek consensus
Slide 19
Slide 19 text
!19
Barry Warsaw
Brett Cannon
Carol Willing
Guido van Rossum
Nick Coghlan
Steering Council
Slide 20
Slide 20 text
Core Development
Slide 21
Slide 21 text
!21
Python 3.8
Slide 22
Slide 22 text
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
!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
Slide 27
Slide 27 text
Communicating
through code
Slide 28
Slide 28 text
!28
Jupyter
nteract
Binder
Slide 29
Slide 29 text
!29
Jupyter
nteract
Binder
Slide 30
Slide 30 text
Jupyter
Notebook
A Jupyter Notebook document with a visualization of measles data.
Slide 31
Slide 31 text
!31
2014
Now,
5 years
later...
Slide 32
Slide 32 text
Millions of
Notebooks
https://github.com/trending/jupyter-notebook
Over 5 million
on GitHub
Slide 33
Slide 33 text
!33
‣ Growth
‣ ACM Award
‣ Industry adoption
‣ Creative uses
‣ Open Source Book
Jupyter
Slide 34
Slide 34 text
jupyter.org
Slide 35
Slide 35 text
!35
Interactive = Web
Agnostic = Language
Open Source = World
Keys to Jupyter's Success
Slide 36
Slide 36 text
!36
Jupyter
nteract
Binder
Slide 37
Slide 37 text
!37
ReactJS front end
nteract
Slide 38
Slide 38 text
!38
‣ Papermill
‣ Scrapbook
‣ Bookstore
‣ Commuter
Netflix: data at scale
https://medium.com/netflix-techblog/notebook-innovation-591ee3221233
Slide 39
Slide 39 text
!39
Enterprise data workflows
Slide 40
Slide 40 text
!40
Jupyter
nteract
Binder
Slide 41
Slide 41 text
!41
Binder
mybinder.org
Binder 2.0 blog post
elifesciences: Share
your interactive
research environment
Nature article about
Binder
Slide 42
Slide 42 text
!42
jupyter.org
Slide 43
Slide 43 text
!43
Juliette Taka
Slide 44
Slide 44 text
!44
Binder
mybinder.org
Slide 45
Slide 45 text
Keys to Python's
Future
Slide 46
Slide 46 text
!46
Web Binaries Mobile
Keys to Python's future
Slide 47
Slide 47 text
!47
Web
Slide 48
Slide 48 text
!48
JavaScript and
WebAssembly
Interactions with Python
Slide 49
Slide 49 text
!49
pyodide
Slide 50
Slide 50 text
!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
!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
Slide 66
Slide 66 text
Code and
Community
Call to Action
Slide 67
Slide 67 text
–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.”
Slide 68
Slide 68 text
!68
Sensible Defaults
for Code and
Community
Slide 69
Slide 69 text
!69
Respect
time
graceful disagreement
your approach may not be best
Slide 70
Slide 70 text
!70
Listen
understanding
consideration
value ideas of others
Slide 71
Slide 71 text
!71
Share
experiences
knowledge
risk and reward
Slide 72
Slide 72 text
!72
Trust
Negativity shuts down creativity.
Silencing productive discourse and
gatekeeping result in toxic workflows.
Slide 73
Slide 73 text
!73
Humility
Long term success
Learning from failures
Innovation
Slide 74
Slide 74 text
!74
Have a bold vision
Slide 75
Slide 75 text
Connect
the
Pythonistas
Slide 76
Slide 76 text
– 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
Slide 77
Slide 77 text
!77
the future of
Python
depends on
Slide 78
Slide 78 text
!78
YOU
Slide 79
Slide 79 text
Thank you
@WillingCarol
willingc on
GitHub
Slide 80
Slide 80 text
Thank you
Slide 81
Slide 81 text
!81
Join the
Slide 82
Slide 82 text
Thank you
@WillingCarol
willingc on
GitHub
Slide 83
Slide 83 text
Attributions and
Acknowledgements
Slide 84
Slide 84 text
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
Slide 85
Slide 85 text
The End
Slide 86
Slide 86 text
PyCon Korea 2019
The State of Python
Carol Willing