State of the Python Union OSCON, July 24, 2002 Guido van Rossum Director of PythonLabs at Zope Corporation

Slides:



Advertisements
Similar presentations
Take a tour of De Gruyter Online
Advertisements

Writing Good Use Cases - Instructor Notes
Unit testing in.Net. Copyright 2007 Tikal Knowledge, Ltd. | 2 | Agenda Introduction Visual Studio built-in support Open source frameworks Working together.
1 Rules of Thumb for Creating XML Vocabularies for Workflow Applications February 1, 2009.
Chapter 6 Writing a Program
Copyright © 2003 Pearson Education, Inc. Slide 1.
Chapter 7 Constructors and Other Tools. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-2 Learning Objectives Constructors Definitions.
Copyright © 2003 Pearson Education, Inc. Slide 6-1 Created by Cheryl M. Hughes, Harvard University Extension School Cambridge, MA The Web Wizards Guide.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 5 Author: Julia Richards and R. Scott Hawley.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
1 Take a tour of De Gruyter Online Join the rally and learn how to navigate through our website.
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Slide 1 FastFacts Feature Presentation September 18, 2012 To dial in, use this phone number and participant code… Phone number: Participant.
Armstrong Process Group, Inc. Copyright © , Armstrong Process Group, Inc., and others All rights reserved Armstrong Process.
AJDT and AspectJ Release Review | © 2007 by SpringSource, made available under the EPL v1.0 1 Release Review: AJDT and AspectJ
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
® ® Why Design Another Language? Python UK & ACCU Spring Conference Oxford - April 2, 2003 Guido van Rossum Director of PythonLabs at Zope Corporation.
"The State of the Python Union" Python10 - Alexandria, VA - February 7, 2002 Guido van Rossum Director, PythonLabs at Zope Corporation
Why I Invented Python EuroPython – June 27, 2005 Guido van Rossum Elemental Security, Inc.
What's New in Python 2.2 LinuxWorld - New York City - January 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
State of the Python Union OSCON Portland, Oregon July 29, 2004 Guido van Rossum Elemental Security, Inc.
Python Regrets OSCON, July 25, 2002
EuroPython Keynote June 26, 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
Optional Static Typing Guido van Rossum (with Paul Prescod, Greg Stein, and the types-SIG)
10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
1 FUND RAISING THE GAME EVERYONE CAN PLAY – AND MUST! Leadership Institute March 2006.
Addition Facts
Formal Models of Computation Part III Computability & Complexity
Evaluating Provider Reliability in Risk-aware Grid Brokering Iain Gourlay.
Lecture 10 Flow of Control: Loops (Part 2) COMP1681 / SE15 Introduction to Programming.
Micro Focus Research 1 As far as youre aware, how does your organization plan to drive business growth over the next three years? (Respondents' first choices)
1 FUTURE DIRECTIONS FOR COUNTER AND USE STATISTICS David Goodman Palmer School of Library & Information Science Long Island University.
Configuration management
Understanding by Design PLC
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
Modern Programming Languages, 2nd ed.
ABC Technology Project
Molecular Biomedical Informatics Web Programming 1.
© Charles van Marrewijk, An Introduction to Geographical Economics Brakman, Garretsen, and Van Marrewijk.
CAR Training Module PRODUCT REGISTRATION and MANAGEMENT Module 2 - Register a New Document - Without Alternate Formats (Run as a PowerPoint show)
Cs205: engineering software university of virginia fall 2006 Specifying Procedures David Evans
Customize Your View of Data Training Presentation for Supply Chain Platform: BAE Systems July 2012.
Error-handling using exceptions
1 Advanced C Programming from Expert C Programming: Deep C Secrets by Peter van der Linden CIS*2450 Advanced Programming Concepts.
CMPT 275 Software Engineering
© 2012 National Heart Foundation of Australia. Slide 2.
Lecture 8: Testing, Verification and Validation
Lilian Blot PART V: FUNCTIONS Core elements Autumn 2013 TPOP 1.
1 Chapter 4 The while loop and boolean operators Samuel Marateck ©2010.
Chapter 5 Test Review Sections 5-1 through 5-4.
SCAPE Carl Wilson Open Planets Foundation SCAPE Training Guimarães Characterisation An introduction to the identification and characterisation of.
Addition 1’s to 20.
25 seconds left…...
Services Course Windows Live SkyDrive Participant Guide.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Week 1.
Chapter 9 Interactive Multimedia Authoring with Flash Introduction to Programming 1.
Lilian Blot CORE ELEMENTS SELECTION & FUNCTIONS Lecture 3 Autumn 2014 TPOP 1.
We will resume in: 25 Minutes.
Chapter 11 Component-Level Design
Copyright 2013 – Noah Mendelsohn Compiling C Programs Noah Mendelsohn Tufts University Web:
Created Revised Office of Information, Technology and Accountability 1 Introduction to Microsoft Word.
Addition 14 Days (English) Slide Show Menu 1st2ndEnd DAY 11+1=2 1+2=3 1+3=4*1+4=5 1+5=6 1+6=7*1+7=8 1+8=9 1+9=10* DAY 22+2=4 2+3=5 2+4=6*2+5=7 2+6=8 2+7=9*2+8=10.
Python Mini-Course University of Oklahoma Department of Psychology Day 1 – Lesson 4 Beginning Functions 4/5/09 Python Mini-Course: Day 1 - Lesson 4 1.
CS1022 Computer Programming & Principles
Bruce Beckles University of Cambridge Computing Service
Presentation transcript:

State of the Python Union OSCON, July 24, 2002 Guido van Rossum Director of PythonLabs at Zope Corporation

Slide 2Copyright 2002 Zope Corporation. All rights reserved.

Slide 3Copyright 2002 Zope Corporation. All rights reserved. Recent Releases Python 2.2 –iterators! –generators!! –new-style classes!!! –and too much to summarize here... Python –bug fix release for 2.1; focus on stability Python –bug fix release for 2.2; ditto What's with this stability focus...? (...see later!)

Slide 4Copyright 2002 Zope Corporation. All rights reserved. Python Organizations Python Software Foundation – –US non-profit for research and education –owns the current Python copyright –looking for donations and sponsors Python Business Forum – –EU non-profit for businesses based on Python –plans: Python in a Tie Compile farm Python Secret Underground

Slide 5Copyright 2002 Zope Corporation. All rights reserved. Python in a Tie Result of stability discussion on c.l.py Plan: –pick a release and maintain it for 18+ months –bleeding edge development releases continue Purpose: –have a reliable target for commercial users –stability more important than latest features Which release will wear the tie? –Python 2.2!

Slide 6Copyright 2002 Zope Corporation. All rights reserved. PBF Compile Farm Joint venture of PBF and Lysator Lysator: oldest Swedish computer (student) society –Lysator owns a very diverse hardware farm –PBF provides motivation, funding Goals: –testing on many platforms Python-in-a-Tie as well as bleeding edge code core Python as well as 3rd party extensions –build binary releases for Python-in-a-Tie hopefully "sumo releases"

Slide 7Copyright 2002 Zope Corporation. All rights reserved. Python Conferences in 2003 EuroPython will probably be repeated Python11 will be at OSCON 2003 Yet Another Python Conference (YAPyC) –these plans are tentative –co-organizers: YAS and PSF –registration fee: <= $150; expect 300 attendees –time: January/February 2003 –location: downtown Washington, DC (GWU) –format: workshop-like –looking for volunteers to help organize!

Slide 8Copyright 2002 Zope Corporation. All rights reserved. Python.Org HTTP Statistics May 2002 –7.9M HTTP requests from 257K hosts 291K hits for "/" –52K downloads of Python about 70% Windows installer Feb 2001 –5.5M HTTP requests from 164K hosts 212K hits for "/" –23K downloads of Python 2.0 over 70% Windows installer

Slide 9Copyright 2002 Zope Corporation. All rights reserved. Controversy of the Year Yearly recap of a recent flame war This year's topic: –to bool or not to bool

Slide 10Copyright 2002 Zope Corporation. All rights reserved. Why bool()? I always regretted having left it out If it's not built-in, people define their own Explicit is better than implicit: "return True" A bool result is distinguished in output –>>> x == y True >>> "bool(x)" normalizes Booleans –was "not not x" RPC tools can special-case Booleans

Slide 11Copyright 2002 Zope Corporation. All rights reserved. Why Not bool()? All misunderstandings (in my opinion) Will "if x:" require x to be a bool? (Never!) Some people write "if x == True:" (Yuck) "No function should return a bool" (Huh?) It's confusing to teach –I don't buy this: You need to explain the Boolean concept anyway You need to pick representatives anyway You need to explain that (almost) all types have a Boolean interpretation anyway

Slide 12Copyright 2002 Zope Corporation. All rights reserved. How To bool()? bool is a new built-in type True and False are the only values –singletons like None ("dualtons"?) Cannot be subtyped bool is a subtype of int, for compatibility –True + 1 == 2 –True == 1 –str(True) == "True" # The only incompatibility –will stay this way in Python 3.0 it's useful and harmless

Slide 13Copyright 2002 Zope Corporation. All rights reserved. Lessons Learned It's a growth opportunity! Everything is controversial –QOTY: "When a group becomes large enough there are no uncontroversial topics any more." –Erik van Blokland (in personal ) Anticipate potential misunderstandings –explain in advance –I thought the PEP was clear - not so :-( In the end, do what you think is right –can't please everyone

Slide 14Copyright 2002 Zope Corporation. All rights reserved. The Future: Python 2.3 No new syntax, except yield w/o __ future __ Library focus, e.g.: support extended slices, e.g. "dlrow olleh"[::-1] bool() and enumerate() more callable types; basestring import from zip files timeouts for sockets logging module gnu_getopt and option parser modules new compiler package berkeleydb module Fixing bugs

Slide 15Copyright 2002 Zope Corporation. All rights reserved. PendingDeprecationWarning Discourage certain things in new code –But don't warn about them normally –Use: warnings.warn("your message here", PendingD...) –No output by default (unlike other warnings) –To see the warnings: python -Wall::PendingDeprecationWarning Potential examples: –string module (use string methods) –types module (use built-in type names) –has_key() (use 'in' operator)

Slide 16Copyright 2002 Zope Corporation. All rights reserved. 2.3 Release Schedule Surprise: we have none! Focus on feature completeness, not dates Hope: alpha soon, final before 2002 ends See PEP 283 for details

Slide 17Copyright 2002 Zope Corporation. All rights reserved. Pace of Change Users demand a stop to all new features Except for their personal favorite –this contradiction seems unavoidable What do do about this? Is Python-in-a-Tie sufficient?

Slide 18Copyright 2002 Zope Corporation. All rights reserved. "Would You Rather..." [1] –Learn more syntax; or –use a library module? –Understand a deep concept; or –live with fuzzy rules? –Fix design mistakes; or –be backwards compatible? [1]

Slide 19Copyright 2002 Zope Corporation. All rights reserved. Example: String Interpolation Problem: % interpolation is cumbersome –print x, "+", y, "=", x+y –"%s + %s = %s" % (x, y, x+y) –"%(x)s + %(y)s = %(z)s" % vars() –str(x) + " + " + str(y) + " = " + str(x+y) The print form is most readable –but not general enough (doesn't return a string) The other forms leave a lot to desire This is a very common need –so a clean solution would be nice; hence PEP 292

Slide 20Copyright 2002 Zope Corporation. All rights reserved. Solutions Explored Solution 1: "$foo".sub()# runtime –"$x + $y = $z".sub() Solution 2: x"$foo"# compile-time –x"$x + $y = $(x+y)" Alternatives: %x, `x`, >, ?x?, Solution 3: func(foo)# no new notation –func(x, " + ", y, " = ", x+y) None of these are satisfactory! Even more issues when considering i18n

Slide 21Copyright 2002 Zope Corporation. All rights reserved. Why Is This Important To Me? Preserve the "sweet spot". Python is: –small enough to learn and remember easily –convenient for expressing common patterns –powerful for advanced usage Improving 2 or 3 often threatens 1 Compatibility requirement prevents throwing away failed experiments –like `back ticks` or lambda No obvious solution

Slide 22Copyright 2002 Zope Corporation. All rights reserved. Python 3.0 No release schedule either :-) Not within two years Question: what to focus on??? Zope 3 experience may be relevant –Rebuild from scratch Refactor mercilessly during development No concern for backwards compatibility –But learn from past: good ideas, bad ideas Use coding "sprints" –Later, add compatibility (Zope 3x -> Zope 3) –Or: Later, merge best features back into 2.x

Slide 23Copyright 2002 Zope Corporation. All rights reserved. Open Mike It's your turn!