SlideShare a Scribd company logo
The One Way
  Daniel Greenfeld
http://bit.ly/nFqO57
The 13th Aphorism


There should be one–
 and preferably only one
 –obvious way to do it.
What does this mean?

• Implementation in core Python should be
  obvious
 • Control Structures
 • Readability
 • blah blah - remember Raymond’s Talk?
What does this mean?

• We all follow the same protocols
 • DB-API
 • WSGI
 • Compression
 • blah blah - remember Raymond’s Talk?
How far does this carry?
How far does Python’s
   “The is one obvious way to do it” carry?
(1 PIL vs many? 1 framework to use? 1 NLTK?)
How far does Python’s
   “The is one obvious way to do it” carry?
(1 PIL vs many? 1 framework to use? 1 NLTK?)



 I understand “one way” from the idiom’s point
    of view, not necessarily implementations
How far does Python’s
      “The is one obvious way to do it” carry?
   (1 PIL vs many? 1 framework to use? 1 NLTK?)



    I understand “one way” from the idiom’s point
       of view, not necessarily implementations



The bigger the problem space the more valid trade-offs
   there are, so more choices start to make sense.
Web Frameworks?
Is Zope the obvious way?

  • Some people think so
  • Other people do not
  • Django, Pyramid, Twisted, Flask, et al
   • Solved problems unsuited to Zope
   • Attracted a new breed of developer
   • Django’s culture of documentation
Desktop GUI?
Is TKinter the obvious way?

   • Some people think so
   • Other people do not
    • wxPython
    • pyQT
    • PyGame!
Image Processing
Is PIL the obvious way?

 • Scaling
 • Encoding/decoding
 • Installation
Is PIL the obvious way?

 • Scaling - the experts complain
 • Encoding/decoding - the experts complain
 • Installation
Is PIL the obvious way?

 • Scaling - the experts complain
 • Encoding/decoding - the experts complain
 • Installation
     http://pypi.python.org/pypi/Pillow
Is PIL the obvious way?

 • Scaling - the experts complain
 • Encoding/decoding - the experts complain
 • Installation
     http://pypi.python.org/pypi/Pillow
                  Really?!?
Is PIL the obvious way?

 • Scaling - the experts complain
 • Encoding/decoding - the experts complain
 • Installation
   http://pypi.python.org/pypi/Pillow
                Really?!?
  Why do we make Alex Clark do this?
To the Radical Zen-ists...
http://bit.ly/nFqO57
The 9th Aphorism

   Although
   practicality
   beats
   purity.

More Related Content

PDF
Hacktoberfest - An Open Source Story
ODP
Looking back at 7.5 years of Devopsdays , DOd PDX
PDF
Salvatore Sanfilippo - Running Redis for 8 years: what I learned about people...
ODP
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
PDF
Dod is not done
ODP
Looking back at 5 years of #cfgmgmtcamp
PDF
Docker is killing your #devops Efforts
PPTX
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
Hacktoberfest - An Open Source Story
Looking back at 7.5 years of Devopsdays , DOd PDX
Salvatore Sanfilippo - Running Redis for 8 years: what I learned about people...
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Dod is not done
Looking back at 5 years of #cfgmgmtcamp
Docker is killing your #devops Efforts
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before

What's hot (9)

PDF
Devops is dead, Long Live Devops
PDF
Ready to Raid Questline Development
PDF
Linux in Robotics
PPTX
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
PPT
Ignite presentation
PDF
The Return of the Dull Stack Engineer
ODP
From MonitoringSucks to Monitoring Love , 2016 Edition
ODP
Introduce Python
PPTX
Golang (Go Programming Language)
Devops is dead, Long Live Devops
Ready to Raid Questline Development
Linux in Robotics
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
Ignite presentation
The Return of the Dull Stack Engineer
From MonitoringSucks to Monitoring Love , 2016 Edition
Introduce Python
Golang (Go Programming Language)
Ad

Viewers also liked (14)

KEY
Lighting talk on django-social-auth
PDF
Intro to Data Visualizations
KEY
PyCon Philippines 2012 Keynote
KEY
Round pegs and square holes
PDF
An Extreme Talk about the Zen of Python
PPTX
Python Programming Essentials - M34 - List Comprehensions
PPTX
Python Programming Essentials - M44 - Overview of Web Development
PDF
How to Write a Popular Python Library by Accident
PDF
Thinking hard about_python
PDF
Intro to Python
PDF
10 more-things-you-can-do-with-python
PDF
From NASA to Startups to Big Commerce
PDF
Python Worst Practices
Lighting talk on django-social-auth
Intro to Data Visualizations
PyCon Philippines 2012 Keynote
Round pegs and square holes
An Extreme Talk about the Zen of Python
Python Programming Essentials - M34 - List Comprehensions
Python Programming Essentials - M44 - Overview of Web Development
How to Write a Popular Python Library by Accident
Thinking hard about_python
Intro to Python
10 more-things-you-can-do-with-python
From NASA to Startups to Big Commerce
Python Worst Practices
Ad

Similar to The One Way (20)

PDF
On the Usage of Pythonic Idioms
PPTX
ODP
Intro to python
PDF
Python. Why to learn?
PPT
Cmpe202 01 Research
PDF
Welcome to Python
PDF
Python Orientation
PDF
Python in Industry
PDF
Python Cookbook 1st Edition Alex Martelli
PPT
Python Programming1.ppt
PDF
Instant download Python Cookbook 1st Edition Alex Martelli pdf all chapter
PPTX
First of all, what is Python? According t
PDF
Python Cookbook 1st Edition Martelli Alex Ascher David
PDF
Idiomatic Python
PPTX
What is Python? An overview of Python for science.
PDF
PyData Texas 2015 Keynote
PDF
Python overview
PDF
Python Django Intro V0.1
PDF
Ln monitoring repositories
PPTX
Austin Python Learners Meetup - Everything you need to know about programming...
On the Usage of Pythonic Idioms
Intro to python
Python. Why to learn?
Cmpe202 01 Research
Welcome to Python
Python Orientation
Python in Industry
Python Cookbook 1st Edition Alex Martelli
Python Programming1.ppt
Instant download Python Cookbook 1st Edition Alex Martelli pdf all chapter
First of all, what is Python? According t
Python Cookbook 1st Edition Martelli Alex Ascher David
Idiomatic Python
What is Python? An overview of Python for science.
PyData Texas 2015 Keynote
Python overview
Python Django Intro V0.1
Ln monitoring repositories
Austin Python Learners Meetup - Everything you need to know about programming...

More from Daniel Greenfeld (12)

KEY
Future of Collaboration
KEY
Advanced Django Forms Usage
KEY
Confessions of Joe Developer
PDF
Django Worst Practices
PDF
How to sell django panel
PPT
Pinax Long Tutorial Slides
PPT
Testing In Django
PDF
Django Uni-Form
PDF
Nova Django
PPT
Pinax Introduction
PDF
Why Django
PDF
Pinax Tutorial 09/09/09
Future of Collaboration
Advanced Django Forms Usage
Confessions of Joe Developer
Django Worst Practices
How to sell django panel
Pinax Long Tutorial Slides
Testing In Django
Django Uni-Form
Nova Django
Pinax Introduction
Why Django
Pinax Tutorial 09/09/09

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Hybrid model detection and classification of lung cancer
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
project resource management chapter-09.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
STKI Israel Market Study 2025 version august
PPTX
cloud_computing_Infrastucture_as_cloud_p
NewMind AI Weekly Chronicles - August'25-Week II
Final SEM Unit 1 for mit wpu at pune .pptx
DP Operators-handbook-extract for the Mautical Institute
gpt5_lecture_notes_comprehensive_20250812015547.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Module 1.ppt Iot fundamentals and Architecture
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Hybrid model detection and classification of lung cancer
Chapter 5: Probability Theory and Statistics
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
1 - Historical Antecedents, Social Consideration.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Assigned Numbers - 2025 - Bluetooth® Document
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
project resource management chapter-09.pdf
NewMind AI Weekly Chronicles – August ’25 Week III
Group 1 Presentation -Planning and Decision Making .pptx
STKI Israel Market Study 2025 version august
cloud_computing_Infrastucture_as_cloud_p

The One Way

  • 1. The One Way Daniel Greenfeld
  • 3. The 13th Aphorism There should be one– and preferably only one –obvious way to do it.
  • 4. What does this mean? • Implementation in core Python should be obvious • Control Structures • Readability • blah blah - remember Raymond’s Talk?
  • 5. What does this mean? • We all follow the same protocols • DB-API • WSGI • Compression • blah blah - remember Raymond’s Talk?
  • 6. How far does this carry?
  • 7. How far does Python’s “The is one obvious way to do it” carry? (1 PIL vs many? 1 framework to use? 1 NLTK?)
  • 8. How far does Python’s “The is one obvious way to do it” carry? (1 PIL vs many? 1 framework to use? 1 NLTK?) I understand “one way” from the idiom’s point of view, not necessarily implementations
  • 9. How far does Python’s “The is one obvious way to do it” carry? (1 PIL vs many? 1 framework to use? 1 NLTK?) I understand “one way” from the idiom’s point of view, not necessarily implementations The bigger the problem space the more valid trade-offs there are, so more choices start to make sense.
  • 11. Is Zope the obvious way? • Some people think so • Other people do not • Django, Pyramid, Twisted, Flask, et al • Solved problems unsuited to Zope • Attracted a new breed of developer • Django’s culture of documentation
  • 13. Is TKinter the obvious way? • Some people think so • Other people do not • wxPython • pyQT • PyGame!
  • 15. Is PIL the obvious way? • Scaling • Encoding/decoding • Installation
  • 16. Is PIL the obvious way? • Scaling - the experts complain • Encoding/decoding - the experts complain • Installation
  • 17. Is PIL the obvious way? • Scaling - the experts complain • Encoding/decoding - the experts complain • Installation http://pypi.python.org/pypi/Pillow
  • 18. Is PIL the obvious way? • Scaling - the experts complain • Encoding/decoding - the experts complain • Installation http://pypi.python.org/pypi/Pillow Really?!?
  • 19. Is PIL the obvious way? • Scaling - the experts complain • Encoding/decoding - the experts complain • Installation http://pypi.python.org/pypi/Pillow Really?!? Why do we make Alex Clark do this?
  • 20. To the Radical Zen-ists...
  • 22. The 9th Aphorism Although practicality beats purity.

Editor's Notes