28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI...
-
Upload
cameron-simon -
Category
Documents
-
view
219 -
download
3
Transcript of 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI...
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
1
Le Python à Paris
Guido van RossumCNRI
(Corporation for National Research Initiatives, Reston, Virginia, USA)
[email protected]://www.python.org
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
2
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
3
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
4
Python buzzword bingo
• object-oriented• scripting• rapid prototyping• steering• rapid application development
• P R O D U C T I V I T Y
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
5
More buzzwords
• interactive• interpreted• elegant• easy to learn, use• embeddable• portable• free, open source
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
The Future
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
14
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
15
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
16
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
17
More wishes?
Suggestions?
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
18
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
19
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
20
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
21
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
22
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
23
Computer Programming for Everybody
DARPA funding for Python…?
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
24
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
25
Current Limitations
• Everything’s too hard for novices:
• Learning how to program (concepts)
• Using a programming language (tools)
• Modifying existing programs (software, motivating examples)
Learning
Modifying
Using
TooHard!
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum
26
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
27
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
28
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
29
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
30
Questions?
http://www.python.org/doc
/download