"The State of the Python Union" Python10 - Alexandria, VA - February 7, 2002 Guido van Rossum Director, PythonLabs at Zope Corporation

Slides:



Advertisements
Similar presentations
TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Advertisements

Chapter 8 Technicalities: Functions, etc. Bjarne Stroustrup
Chapter 6 Writing a Program
Copyright © 2002 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.
Chapter 1 C++ Basics. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 1-2 Learning Objectives Introduction to C++ Origins, Object-Oriented.
Copyright © 2002 Pearson Education, Inc. Slide 1.
® ® Why Design Another Language? Python UK & ACCU Spring Conference Oxford - April 2, 2003 Guido van Rossum Director of PythonLabs at Zope Corporation.
Why I Invented Python EuroPython – June 27, 2005 Guido van Rossum Elemental Security, Inc.
State of the Python Union OSCON, July 24, 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
Python 3000 (PyCon, 24-Feb-02007) Guido van Rossum
What's New in Python 2.2 LinuxWorld - New York City - January 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
Python 3000 and You Guido van Rossum PyCon March 14, 2008.
director of PythonLabs at Zope Corporation
State of the Python Union PyCon DC, March 26-28, 2003 Guido van Rossum Director of PythonLabs at Zope Corporation
Python Regrets OSCON, July 25, 2002
EuroPython Keynote June 26, 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
Introduction to Python LinuxWorld - New York City - January 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 Python Training for HP OSO Guido van Rossum CNRI 7/23/1999 9am - 1pm.
0 - 0.
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
Addition Facts
Exception Handling Genome 559. Review - classes 1) Class constructors - class myClass: def __init__(self, arg1, arg2): self.var1 = arg1 self.var2 = arg2.
Lesson 6 CDT301 – Compiler Theory, Spring 2011 Teacher: Linus Källberg.
Lilian Blot 11 Spring 2014 TPOP 1. Lilian Blot 22 Spring 2014 TPOP 2.
1 Automating Auto Tuning Jeffrey K. Hollingsworth University of Maryland
Molecular Biomedical Informatics Web Programming 1.
Code Correctness, Readability, Maintainability Svetlin Nakov Telerik Corporation
1.A computer game is an example of A.system software; B.a compiler; C.application software; D.hardware; E.none of the above. 2.JVM stands for: A.Java Virtual.
Problem Solving and Algorithm Design
Lilian Blot PART V: FUNCTIONS Core elements Autumn 2013 TPOP 1.
Addition 1’s to 20.
Test B, 100 Subtraction Facts
Week 1.
Chapter 9 Interactive Multimedia Authoring with Flash Introduction to Programming 1.
Lilian Blot CORE ELEMENTS PART V: FUNCTIONS PARAMETERS & VARIABLES SCOPE Lecture 5 Autumn 2014 TPOP 1.
Introduction to Recursion and Recursive Algorithms
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.
Chapter Modules CSC1310 Fall Modules Modules Modules are the highest level program organization unit, usually correspond to source files and.
Lecture 04 – Classes.  Python has a number of classes built-in  lists, dictionaries, sets, int, float, boolean, strings  We can define our own classes.
Introduction to Python
CS1022 Computer Programming & Principles
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
A Crash Course Python. Python? Isn’t that a snake? Yes, but it is also a...
Jonathan Huelman CSC 415 – Programming Languages
Introduction to Python (for C++ programmers). Background Information History – created in December 1989 by Guido van Rossum Interpreted Dynamically-typed.
Intro to Python Programming (Resources) Pamela A. Moore Zenia C. Bahorski Eastern Michigan University March 7, 2012 A language to swear by, not at. 1.
Introduction to Python Guido van Rossum Director of PythonLabs at Zope Corporation
Modules and Decomposition UW CSE 190p Summer 2012 download examples from the calendar.
Week 1 - Friday.  What did we talk about last time?  Our first Java program.
An Introduction to Python Blake Brogdon. What is Python?  Python is an interpreted, interactive, object-oriented programming language. (from python.org)
1 CSC 221: Introduction to Programming Fall 2012 Python data, assignments & turtles  Scratch programming review  Python & IDLE  numbers & expressions.
Python – May 11 Briefing Course overview Introduction to the language Lab.
Introduction to Information Security Python. Python motivation Python is to a Hacker what Matlab is to an engineer Lots of built-in modules Lots of 3.
Python Overview  Last week Python 3000 was released  Python 3000 == Python 3.0 == Py3k  Designed to break backwards compatibility with the 2.x.
Compsci 06/101, Spring Compsci 6/101: PFTW, Feb 28-March 4 l Algorithms and Data Structures  Sets and how they are used in Python (data structure)
An Introduction. What is Python? Interpreted language Created by Guido Van Rossum – early 90s Named after Monty Python
Curry A Tasty dish? Haskell Curry!. Curried Functions Currying is a functional programming technique that takes a function of N arguments and produces.
Python Let’s get started!.
8 January 2016Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems
Python  Monty or Snake?. Monty?  Spam, spam, spam and eggs  Dead parrots  Eric Idle, John Cleese, Michael Palin, etc.
Compsci 06/101, Fall Programming Equations l Algorithms + Data Structures = Programs  Niklaus Wirth, old view of programming and compsci l How.
Python Let’s get started!.
Introduction to Python
Intro To Pete Alonzi University of Virginia Library
Testing and Debugging.
Programming Tips GS540 January 10, 2011.
Bryan Burlingame 13 February 2019
Presentation transcript:

"The State of the Python Union" Python10 - Alexandria, VA - February 7, 2002 Guido van Rossum Director, PythonLabs at Zope Corporation

Slide 2©2001, 2002 Guido van Rossum Overview Toy of the year Where are we now Parade of the PEPs Open mike

Slide 3©2001, 2002 Guido van Rossum Toy of the Year Warning: shameless plug ahead "familiar" Linux on iPAQ Python as main development language Go to handhelds.org

Slide 4©2001, 2002 Guido van Rossum Where Are We Now Python 2.2 released (Dec 21) –iterators, generators –type/class unification –new bugs :( Working on Python (within a month) –fix the bugs :) Planning Python 2.3 (this summer) –library improvements –next phase of int/long unification –WHAT ELSE?!?!

Slide 5©2001, 2002 Guido van Rossum Too Many Choices! New languages features Extend import Expand library Improve performance Restructure implementation Other wild ideas Too many choices! What to work on????

Slide 6©2001, 2002 Guido van Rossum New Language Features? Syntactic sugar for new class features? –static/class methods –slots –properties –super Dict comprehensions? (PEP 274) Generator comprehensions? –[yield x**2 for x in range(10)] TBL's triple graph notation? –{sky color blue, gray; sea color green}

Slide 7©2001, 2002 Guido van Rossum Static Methods, Class Methods? class C: # extra keyword after def def static foo(arg1, arg2):... def class cfoo(cls, args):... class C: # list of properties def foo [static](arg1, arg2):... def foo [class](arg1, arg2):... class C: # keyword in front of def static def foo(arg1, arg2):... class def cfoo(cls, arg1, arg2):... class C: # implicit by lack of 'self' def foo(arg1, arg2):... def cfoo(cls, arg1, arg2):...

Slide 8©2001, 2002 Guido van Rossum Slots??? class C: slot a, b, c class C: a, b, c: slot class C: slots: a: int b: str c Is 'slot' the right word?

Slide 9©2001, 2002 Guido van Rossum Properties? class C: property a: """Computed variable a""" def get(self):... def set(self, value):... def delete(self):... class C: properties: a: def get(self):... b: def get(self):... def set(self):...

Slide 10©2001, 2002 Guido van Rossum Super? class C(A,B): def save(self, file):...dadada... super.save(file)...tatata...

Slide 11©2001, 2002 Guido van Rossum New Keywords? super, property, slot to become keywords? Need to allow "old" (2.2) usage too! Context-sensitive keywords??? E.g. –property is only a keyword at start of line –static is only a keyword if followed by dot

Slide 12©2001, 2002 Guido van Rossum Extending Import? ihooks is for all practical purposes dead :) imputils might as well be dead :( import from zip file is very much alive! Webizing Python (TBL)? –add " to sys.path? –Mike McLay asked for this 5 years ago :)

Slide 13©2001, 2002 Guido van Rossum Expand Library? Logging module? PyChecker? Persistence, ZODB? YAPPS or SPARK? –Expose pgen?...? DB-API 3? TBL's triple store API?

Slide 14©2001, 2002 Guido van Rossum Improve Performance? 2.2 slower than 2.1 slower than 2.0 slower than 1.5.2! –(But sometimes 2.2 is fastest!) Improve virtual machine? PyMalloc? "Low-hanging fruit" in bytecode –Faster globals –Recognize built-ins? –Faster attributes??? Come to session with Jeremy and Skip

Slide 15©2001, 2002 Guido van Rossum Restructure Implementation? More can be done in Python –saves C code Much already exists as alternative! –print tracebacks –bytecode compiler (from abstract syntax tree) –interactive command line –import What else? Careful: code may be compromised

Slide 16©2001, 2002 Guido van Rossum Parade of the PEPs Switch to IE window

Slide 17©2001, 2002 Guido van Rossum Open Mike Your turn

Slide 18©2001, 2002 Guido van Rossum And Don't Forget... >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those! >>>