Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python: Building an Open Source Project and Community SDForum Distinguished Speaker Series, 2/17/05 www.sdforum.org/dss Guido van Rossum Elemental Security,

Similar presentations


Presentation on theme: "Python: Building an Open Source Project and Community SDForum Distinguished Speaker Series, 2/17/05 www.sdforum.org/dss Guido van Rossum Elemental Security,"— Presentation transcript:

1 Python: Building an Open Source Project and Community SDForum Distinguished Speaker Series, 2/17/05 Guido van Rossum Elemental Security, Inc.

2 Feb. 17, 2005© 2005 Guido van Rossum 2 What to Talk About Elemental Security, Inc. Personal history Python's history Python, the language Python, the software The Python community The Open Source community Python's future Questions

3 Feb. 17, 2005© 2005 Guido van Rossum 3 Elemental Security, Inc. Enterprise security software cross-platform policy compliance reporting and enforcement Early stage startup in stealth mode but not much longer! :-) Using lots of Python We're always hiring! See

4 Feb. 17, 2005© 2005 Guido van Rossum 4 Personal History Age 4: first Lego kit Age 10: first electronics kit (with two transistors) Age 18: first computer program (on punched cards) Age 21: first girlfriend :-) 1982: "drs" math degree; joined CWI in Amsterdam 1987: first worldwide open source release 1989: started work on Python in spare time 1995: moved to USA to join CNRI 2000: got married 2001: became a father 2003: moved to California to join Elemental Security

5 Feb. 17, 2005© 2005 Guido van Rossum 5 Python's History Amsterdam –Early '80s – development of ABC (by others) –1990 – Python developed & used internally –1991 – Python released to the world –Early '90s – growing world-wide user base USA –1994 – first Python workshop at NIST in Md –1995 – Python's home moves to CNRI in Va –Late '90s – yearly Python conferences –2000 – PythonLabs breaks loose from CNRI –2001 – Python Software Foundation formed –2003 – first PyCon organized by PSF

6 Feb. 17, 2005© 2005 Guido van Rossum 6 Python, the Langue Dynamically typed object-oriented language Python programs look like executable pseudo-code Supports multiple paradigms: –procedural, object-oriented, some functional High level data types and namespaces A bit like Lisp and Smalltalk Extensible in lower-level languages (C, Fortran,...) –that's the origin of its OO nature! Most controversial issues: –block structure through indentation –dynamic type checking

7 Feb. 17, 2005© 2005 Guido van Rossum 7 Example Function def gcd(a, b): "Greatest common divisor of two integers" while b != 0: a, b = b, a%b return a Note: –no declarations –indentation+colon for statement grouping –documentation string part of function syntax –parallel assignment (to swap a and b: "a, b = b, a")

8 Feb. 17, 2005© 2005 Guido van Rossum 8 Comparison to Other Languages (Apart from syntax differences!) Perl: objects vs. regexps; TOOWTDI vs. TMTOWTDI PHP: general purpose vs. web language Java: dynamic vs. static typing (and all that follows) C++: dynamic vs. static; memory management Lisp: code != data Smalltalk: namespaces Haskell, ML, Prolog: different paradigms

9 Feb. 17, 2005© 2005 Guido van Rossum 9 Python, the Software Open Source (non-GPL) Used by: –Google, ILM, NASA, Disney, RealNetworks, Yahoo,... –BitTorrent, GNU mailman, games,... Runs on: –Unix, Windows, Mac, Palm, VxWorks, PlayStation 2,... Bundled with: –Linux, Mac OS X Written in portable ANSI C Jython: Java version, translates to Java byte code IronPython: C#/.NET version, translates to IL Many 3rd party modules downloadable

10 Feb. 17, 2005© 2005 Guido van Rossum 10 Why Use Python? Dynamic languages are more productive –Burton Group: P-languages 5x as productive C-languages Python code is more readable Python code is more maintainable –Burton Group: Python preferred for application development Python has fast built-in very high-level data types Developer time is more expensive than CPU time When Should You Not Use Python (Yet)? Things like packet filters, MP3 codecs, etc. Instead, write in C/C++ and wrap Python around it

11 Feb. 17, 2005© 2005 Guido van Rossum 11 Sample Use Areas Server-side web programming (CGI, app servers) Client-side web programming (HTML, HTTP,...) XML processing (including XML-RPC and SOAP) Databases (Oracle, MySQL, PostgreSQL, ODBC,...) GUI programming (Qt, GTK+, Tcl/Tk, wxPython,...) Scientific/numeric computing (e.g. LLNL) Testing (popular area for Jython) Scripting Unix and Windows Rapid prototyping (e.g. at Google) Programming education (e.g. Oxford physics) –from middle school to college

12 Feb. 17, 2005© 2005 Guido van Rossum 12 The Python Community On line: –website, newsgroups, mailing lists, IRC, blogs –many subcommunities (Zope, Twisted, SciPi,...) –separate communities for developers and users In stores: –books, T-shirts In your face: –conferences, local user groups, meetups, workshops Legally: –Python Software Foundation –Other organizations e.g. EuroPython, EuroZope, PyBiz

13 Feb. 17, 2005© 2005 Guido van Rossum 13 The Python Software Foundation Is a membership organization –new members elected on merit –special regards for paying sponsor members Is a 501(c)(3) non-profit –receives US tax-free donations Owns or manages the copyrights to the software –dedicated to release under Open Source license Takes financial responsibility for PyCon Sponsors a tiny bit of Python development only Does not control the developers –if anything, it's the other way around!

14 Feb. 17, 2005© 2005 Guido van Rossum 14 Python's Development Processes Conservative release cycle –new functionality release every months 2.0, 2.1, 2.2, 2.3, 2.4 –bug fix releases as needed, usually 3-9 months PEP (Python Enhancement Proposals) –the RFC's of the Python world –can propose community processes as well as software Checks and balances favoring slow growth –the user community wants it this way! BDFL (Benevolent Dictator For Life; me) breaks ties –wields no actual power except through persuasion

15 Feb. 17, 2005© 2005 Guido van Rossum 15 Python's Developer Community Pyramid structure: –1 BDFL –10 key developers ("lieutenants") –100 core developers (checking privileges) –1000 contributors –(numbers are rough approximations) Key developers emerge through technical merit –there ain't no shortcut to the top Other developers often have niche expertise –e.g. a specific module or a specific platform

16 Feb. 17, 2005© 2005 Guido van Rossum 16 Python's User Community Often separate from the developer community Many roles: –book authors, editors etc. –3rd party module developers –teachers –self-appointed evangelists –professional users –packagers –bloggers –site administrators –Python-based businesses

17 Feb. 17, 2005© 2005 Guido van Rossum 17 Related Communities Zope – web application server, CMS framenwork Plone – built on top of Zope Twisted – networking Swiss army knife Scientific Python users Database module developers PyPy

18 Feb. 17, 2005© 2005 Guido van Rossum 18 The Open Source Community Many separate communities –Linux, languages, lots of individual applications –Languages are biggest after Linux itself Apache is a case apart –ASF served as model for PSF Similarities, differences exist; examples: –Perl Foundation has no members –Apache has no single leader Unifying principle –Open Source licenses (OSI-approved) The Free Software Foundation

19 Feb. 17, 2005© 2005 Guido van Rossum 19 Python's Future Slow growth Python 3000 is years away (still!) Optional type declarations?

20 Feb. 17, 2005© 2005 Guido van Rossum 20 Questions


Download ppt "Python: Building an Open Source Project and Community SDForum Distinguished Speaker Series, 2/17/05 www.sdforum.org/dss Guido van Rossum Elemental Security,"

Similar presentations


Ads by Google