SlideShare ist ein Scribd-Unternehmen logo
1 von 22
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (9)

Devops is dead, Long Live Devops
Devops is dead, Long Live DevopsDevops is dead, Long Live Devops
Devops is dead, Long Live Devops
 
Ready to Raid Questline Development
Ready to Raid Questline DevelopmentReady to Raid Questline Development
Ready to Raid Questline Development
 
Linux in Robotics
Linux in RoboticsLinux in Robotics
Linux in Robotics
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
 
Ignite presentation
Ignite presentationIgnite presentation
Ignite presentation
 
The Return of the Dull Stack Engineer
The Return of the Dull Stack EngineerThe Return of the Dull Stack Engineer
The Return of the Dull Stack Engineer
 
From MonitoringSucks to Monitoring Love , 2016 Edition
From MonitoringSucks to Monitoring Love , 2016 EditionFrom MonitoringSucks to Monitoring Love , 2016 Edition
From MonitoringSucks to Monitoring Love , 2016 Edition
 
Introduce Python
Introduce PythonIntroduce Python
Introduce Python
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)
 

Andere mochten auch

From NASA to Startups to Big Commerce
From NASA to Startups to Big CommerceFrom NASA to Startups to Big Commerce
From NASA to Startups to Big Commerce
Daniel Greenfeld
 

Andere mochten auch (14)

Lighting talk on django-social-auth
Lighting talk on django-social-authLighting talk on django-social-auth
Lighting talk on django-social-auth
 
Intro to Data Visualizations
Intro to Data VisualizationsIntro to Data Visualizations
Intro to Data Visualizations
 
Intro
IntroIntro
Intro
 
PyCon Philippines 2012 Keynote
PyCon Philippines 2012 KeynotePyCon Philippines 2012 Keynote
PyCon Philippines 2012 Keynote
 
Round pegs and square holes
Round pegs and square holesRound pegs and square holes
Round pegs and square holes
 
An Extreme Talk about the Zen of Python
An Extreme Talk about the Zen of PythonAn Extreme Talk about the Zen of Python
An Extreme Talk about the Zen of Python
 
Python Programming Essentials - M34 - List Comprehensions
Python Programming Essentials - M34 - List ComprehensionsPython Programming Essentials - M34 - List Comprehensions
Python Programming Essentials - M34 - List Comprehensions
 
Python Programming Essentials - M44 - Overview of Web Development
Python Programming Essentials - M44 - Overview of Web DevelopmentPython Programming Essentials - M44 - Overview of Web Development
Python Programming Essentials - M44 - Overview of Web Development
 
How to Write a Popular Python Library by Accident
How to Write a Popular Python Library by AccidentHow to Write a Popular Python Library by Accident
How to Write a Popular Python Library by Accident
 
Thinking hard about_python
Thinking hard about_pythonThinking hard about_python
Thinking hard about_python
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
 
10 more-things-you-can-do-with-python
10 more-things-you-can-do-with-python10 more-things-you-can-do-with-python
10 more-things-you-can-do-with-python
 
From NASA to Startups to Big Commerce
From NASA to Startups to Big CommerceFrom NASA to Startups to Big Commerce
From NASA to Startups to Big Commerce
 
Python Worst Practices
Python Worst PracticesPython Worst Practices
Python Worst Practices
 

Ähnlich wie The One Way

Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
Aron Ahmadia
 

Ähnlich wie The One Way (20)

Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker street
 
Devops -- LKFR14
Devops -- LKFR14Devops -- LKFR14
Devops -- LKFR14
 
SoC Python Discussion Group
SoC Python Discussion GroupSoC Python Discussion Group
SoC Python Discussion Group
 
Open Source Monitoring in 2019
Open Source Monitoring in 2019 Open Source Monitoring in 2019
Open Source Monitoring in 2019
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011
 
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
 
Another 7 tools for your #devops stack
Another 7 tools for your #devops stackAnother 7 tools for your #devops stack
Another 7 tools for your #devops stack
 
Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?Dev secops opsec, devsec, devops ?
Dev secops opsec, devsec, devops ?
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove
 
Moby is killing your devops efforts
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops efforts
 
Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018
 
Ploneide
PloneidePloneide
Ploneide
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Craft of coding
Craft of codingCraft of coding
Craft of coding
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
FEC2017-Introduction-to-programming
FEC2017-Introduction-to-programmingFEC2017-Introduction-to-programming
FEC2017-Introduction-to-programming
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 

Mehr von Daniel Greenfeld

Mehr von Daniel Greenfeld (12)

Future of Collaboration
Future of CollaborationFuture of Collaboration
Future of Collaboration
 
Advanced Django Forms Usage
Advanced Django Forms UsageAdvanced Django Forms Usage
Advanced Django Forms Usage
 
Confessions of Joe Developer
Confessions of Joe DeveloperConfessions of Joe Developer
Confessions of Joe Developer
 
Django Worst Practices
Django Worst PracticesDjango Worst Practices
Django Worst Practices
 
How to sell django panel
How to sell django panelHow to sell django panel
How to sell django panel
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial Slides
 
Testing In Django
Testing In DjangoTesting In Django
Testing In Django
 
Django Uni-Form
Django Uni-FormDjango Uni-Form
Django Uni-Form
 
Nova Django
Nova DjangoNova Django
Nova Django
 
Pinax Introduction
Pinax IntroductionPinax Introduction
Pinax Introduction
 
Why Django
Why DjangoWhy Django
Why Django
 
Pinax Tutorial 09/09/09
Pinax Tutorial 09/09/09Pinax Tutorial 09/09/09
Pinax Tutorial 09/09/09
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

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.

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n