Le Python Paris Guido van Rossum CNRI Corporation

  • Slides: 30
Download presentation
Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston, Virginia, USA) guido@python. org 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,

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,

What I do • At CWI, worked on: • ABC, Python’s predecessor • Amoeba, novel distributed OS in ’ 80 s • Hypermedia editor in Python – (now: GRINS@oratrix. nl) • 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

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 •

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

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,

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, 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

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

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,

More applications • GUI development • IDLE (cross-platform IDE for Python) • Windows COM, MFC • Python. Win (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 -

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+ - Robo. Fog • Lots more. . . 28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum 11

IDLE Interactive Deve. Lopment Environment • Written in Python using Tkinter • Portable (Unix,

IDLE Interactive Deve. Lopment 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

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

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

Python 1. 6 plans • Unicode! (but how much? ) • Rich comparisons; coercions • Flexible import hooks • Better install/build support • Restructure Virtual Machine • allow 3 rd party VM plugins (Christian? : -) • support small footprint versions – e. g. Palm. Pilot 28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum 15

Possible new syntax • Parallel for loop • for x in L 1; y

Possible new syntax • Parallel for loop • for x in L 1; y in L 2: 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

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 –

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 Num.

Wild ideas • Thinking about. . . • Types are classes • Incorporate Num. Py 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

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

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

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 ©

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

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

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

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) –

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 •

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

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

Questions? http: //www. python. org /doc /download 28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum 30