presentation source - Python Programming Language

Download Report

Transcript presentation source - Python Programming Language

Le Python à Paris
Guido van Rossum
CNRI
(Corporation for National Research Initiatives, Reston, Virginia, USA)
[email protected]
http://www.python.org
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
1
About me
• 12 years at CWI (Amsterdam)
• 4 years at CNRI (Reston, USA)
• Interests:
• languages, programming tools, user
interface design, distributed systems,
multimedia, ...
• Python was a logical next step...
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
2
What I do
• At CWI, worked on:
• ABC, Python’s predecessor
• Amoeba, novel distributed OS in ’80s
• Hypermedia editor in Python
– (now: [email protected])
• Python
• At CNRI, working on:
• Knowbot System, Mobile agents
• Python
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
3
Python buzzword bingo
• object-oriented
• scripting
• rapid prototyping
• steering
• rapid application development
•PRODUCTIVITY
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
4
More buzzwords
• interactive
• interpreted
• elegant
• easy to learn, use
• embeddable
• portable
• free, open source
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
5
Python's early days
• Born Christmas 1989
• Named after Monty Python
– “Nobody expects the Spanish Inquisition”
• Quickly used internally at CWI (scripting
Amoeba, multimedia experiments, ...)
• First public release February 1991
• Unix sources newsgroup
• BSD style license (up to today)
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
6
Python’s growth
• Releases 0.9.0-0.9.8, 1.0, 1.1, 1.2
• from CWI (1991-1994)
• ftp, mailing list, newsgroup
• Releases 1.3, 1.4, 1.5, 1.5.1, 1.5.2
• from CNRI (1995-1999)
• website, Python Software Activity, SIGs
• books, workshops, US-based conferences
• Traffic doubling every year
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
7
What next?
(Looking for support?)
• Several new books in 1999
• Python Consortium
• Digital Creations, Foretec, Interet
• Lawrence Livermore National Labs (LLNL)
• ...you?
• DARPA funding:
• “Computer Programming for Everybody”
– more about this later
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
8
Applications
• The web
• Zope (dynamic website manager)
– www.zope.org (Digital Creations)
• Mailman (the GNU mailing list manager)
– www.list.org
• much, much more
• Java
• JPython - integrated scripting for Java
– www.jpython.org (CNRI)
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
9
More applications
• GUI development
• IDLE (cross-platform IDE for Python)
• Windows COM, MFC
• PythonWin (Mark Hammond)
• write COM clients, servers in Python!
• Database access
• all commercial, free databases
• see db-sig archives
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
10
Who uses it? (sample)
• Yahoo - mail.yahoo.com
• Industrial Light&Magic - everything
• Infoseek - Ultraseek site searcher
• LLNL - steering large numeric apps
• Microsoft - commerce server 1.0
• Letterror+ - RoboFog
• Lots more...
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
11
IDLE
Interactive DeveLopment Environment
• Written in Python using Tkinter
• Portable (Unix, Windows, Mac)
• Under development
• Watch an interactive session now!
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
12
The Future
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
13
Python 1.6
• Last of 1.x breed; release in 2000
• Try to be compatible with 1.5.x
• Serious reworking of internals
• Fix most urgent problems
• Some new syntax
• May push some ideas to 2.0
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
14
Python 1.6 plans
• Unicode!
(but how much?)
• Rich comparisons; coercions
• Flexible import hooks
• Better install/build support
• Restructure Virtual Machine
• allow 3rd party VM plugins (Christian? :-)
• support small footprint versions
– e.g. PalmPilot
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
15
Possible new syntax
• Parallel for loop
• for x in L1; y in L2:
print x, “<-->”, y
• Extended slicing for all sequences
• x[0:10:2] means:
y = []
for i in range(0,10,2): y.append(x[i])
return y
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
16
More wishes?
Suggestions?
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
17
Python 2.0
– Incompatible:
• C API level, for advanced Python users
– Release in 2001+
– Total rewrite in C++? (or Java???)
– Opportunity for radical changes
– Fix major problems with language
– First releases may be slower than 1.x
– Focus on VM; more stuff in Python
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
18
Wild ideas
• Thinking about...
• Types are classes
• Incorporate NumPy array type
• Optional static typing
• Assign ops (+= etc.)
• Packagized, renamed library
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
19
Even wilder ideas
• Dreaming about...
• Conservative GC
• Autowrap of shared libraries
– (Using C++ dynamic type info)
• Closures (well… some people are:)
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
20
Simplify!
• lambda (or fix it - def in expressions?)
• Tuples in argument lists
• def foo(a, (b,c), (d,e), f): …
• can replace with optional static typing
• range() and xrange()
• replace with [:10], [0:10:2]
• optimize for i in [:10]: ...
• Obsolete library modules
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
21
Expected problems
• Monumental effort
• Is C++ ready?
• Books, docs need to be rewritten
• JPython synchronization
– two rewrites!
• Key extension modules
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
22
Computer Programming
for Everybody
DARPA funding for Python…?
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
23
Objective
• Empower computer users:
– Make programming easier!
• Learning how to program a computer is
just too hard...
– But it shouldn’t be, and it needn’t be!
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
24
Current Limitations
• Everything’s too
hard for novices:
Learning
• Learning how to
program (concepts)
Too
• Using a programming
Hard!
language (tools)
• Modifying existing
programs (software,
motivating examples) Using
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
Modifying
25
New Approach
• Use Python* as first language:
– Learning - learn Python in 20 hours?
– Using - novice-friendly tools
– Modifying - interesting 3-D worlds
• Engage larger community
– a billion users?!
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
26
Evidence of Success
• Novices like Python
– derives from teaching language (ABC)
– a 10-year old can learn it!
• Experts choose Python
– for situations where novices must
modify or read code
– to create serious software
• (not just a teaching language)
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
27
Impact if Successful
• Much better understanding and
use of computers by non-experts
• Millions (billions!) of programmers
• Real software significantly more
accessible to regular users
• Users customize their own software
• Abundant personalizable software
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
28
Why Python?
• Why not Java or C++?
• system languages, not for teaching
• superficial details obscure concepts
• Why not Perl?
• too many ideosyncracies
• Why not Logo?
• Python is also used in the real world
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
29
Questions?
http://www.python.org
/doc
/download
28 May, 1999
Le Copyright © 1999 CNRI,
Guido van Rossum
30