28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI...

30
28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston, Virginia, USA) [email protected] http://www.python.org

Transcript of 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI...

Page 1: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 2: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 3: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 4: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 5: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 6: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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)

Page 7: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 8: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 9: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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)

Page 10: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 11: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 12: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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!

Page 13: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum

13

The Future

Page 14: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 15: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 16: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 17: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum

17

More wishes?

Suggestions?

Page 18: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 19: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 20: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 21: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 22: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 23: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum

23

Computer Programming for Everybody

DARPA funding for Python…?

Page 24: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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!

Page 25: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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!

Page 26: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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?!

Page 27: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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)

Page 28: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 29: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

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

Page 30: 28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

28 May, 1999 Le Copyright © 1999 CNRI, Guido van Rossum

30

Questions?

http://www.python.org/doc

/download