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

Slides:



Advertisements
Similar presentations
Open Source and Free Software in Education
Advertisements

Web 2.0 Programming 1 © Tongji University, Computer Science and Technology. Web Web Programming Technology 2012.
IS 6116 Introduction – 10 Jan Lecturer Details Aonghus Sugrue Website: aonghussugrue.wordpress.com
1 Copyright © 2002 Pearson Education, Inc.. 2 Chapter 1 Introduction to Perl and CGI.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Introduction to ASP.NET.
Copyright © 2003 Pearson Education, Inc. Slide 6-1 Created by Cheryl M. Hughes, Harvard University Extension School Cambridge, MA The Web Wizards Guide.
Technology Analysis LINUX Alper Alansal Brian Blumberg Ramank Bharti Taihoon Lee.
® ® Why Design Another Language? Python UK & ACCU Spring Conference Oxford - April 2, 2003 Guido van Rossum Director of PythonLabs at Zope Corporation.
Why I Invented Python EuroPython – June 27, 2005 Guido van Rossum Elemental Security, Inc.
The State of the Python Union BDFL PyCon – March 24, 2005 Guido van Rossum Elemental Security, Inc.
What's New in Python? "Not your usual list of new features" Stanford CSL Colloquium, October 29, 2003; BayPiggies, November 13, 2003 Guido van Rossum Elemental.
Python Whats in a name? Snake logos and mascot notwithstanding, its named after Monty Pythons Flying Circus Humor-impaired can safely.
director of PythonLabs at Zope Corporation
10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,
Python - an Open Source Project Guido van Rossum CNRI
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
EIONET Training Beginners Zope Course Miruna Bădescu Finsiel Romania Copenhagen, 27 October 2003.
PHP I.
1 G54PRG Programming Lecture 1 Amadeo Ascó Adam Moore G54PRG Programming Lecture 1 Amadeo Ascó 3 Java Programming Language.
NGS computation services: API's,
Guy Griffiths. General purpose interpreted programming language Widely used by scientists and programmers of all stripes Supported by many 3 rd -party.
Software change management
Operating Systems An Introduction. 2 What Does An Operating System Do? Manages the hardware and software resources of the system. In a desktop computer,
Getting Familiar with Web Pages 1 2 The Internet Worldwide collection of interconnected computer networks that enables businesses, organizations, governments,
Languages for IT & CS Pseudo-code What HTML isn’t Early history Compiling & interpreting Classifying languages The process of programming.
Oracle User Productivity Kit Professional Ensuring Success with Oracle Apps
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Python Jordan Miller and Lauren Winkleman CS 311 Fall 2011.
Jonathan Huelman CSC 415 – Programming Languages
PHP Scripting Language. Introduction “PHP” is an acronym for “PHP: Hypertext Preprocessor.” It is an interpreted, server-side scripting language. Originally.
1 CS428 Web Engineering Lecture 18 Introduction (PHP - I)
Python Introduction.
CSC 110 A 1 CSC 110 Introduction to Python [Reading: chapter 1]
PHP HYPERTEXT: PREPROCESSOR By: Justin T. Pleva. WHAT IS PHP?  General purpose  Server-side web development  Console application.
23-August-1999© 1999 CNRI, Guido van Rossum August-1999© 1999 CNRI, Guido van Rossum 2 Python Track Opening Words Guido van Rossum
Open Source: It's Already Here Dave Cross Magnum Solutions Ltd
28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,
About Python. Sept. 2003© Guido van Rossum 2 Executive Summary Dynamically typed object-oriented language Python programs look like executable.
Intro to Python Programming (Introduction) Pamela A. Moore Zenia C. Bahorski Eastern Michigan University March 7, 2012 A language to swear by, not at.
PHP Professor Waterman. Agenda What is PHP Versions HTML Dynamic Web sites Interactive Web Sites Installing PHP Transfer pages to a Web hosting service.
Python Guido van Rossum Sung-Jin Hong SPARCS
August 29, 2005ICP: Chapter 1: Introduction to Python Programming 1 Introduction to Computer Programming Chapter 1: Introduction to Python Programming.
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
2001 IT Conference RenoPage: 1 PHP 101 PHP – You can DO IT! Greg Lawler Brooks Institute of Photography February IT Conference Reno.
A very basic overview of Server-Side Scripting Or what is PHP, Perl, Python, Ruby and what can they do for me?
1Computer Sciences Department Princess Nourah bint Abdulrahman University.
Using Python on the WWW Guido van Rossum CNRI
Intro to Python Programming (Part 1) Pamela Moore Zenia Bahorski Eastern Michigan University March 16, 2011 A language to swear by, not at.
WEB DEVELOPMENT WITH PHP/MYSQL. WEB DEVELOPMENT COURSE HAS DIFFERENT NAME IN DIFFERENT INSITUTES, THIS IS A CORE COURSE FOR BS/MS STUDENTS. THIS IS ALSO.
Overview of Python Eric Finkenbiner David J. Stucki.
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 13 A & B Programming Languages and the.
Bucharest, 23 February 2005 CHM PTK technologies Adriana Baciu Finsiel Romania.
Presented By Sushil K. Chaturvedi Assistant Professor SRCEM,Banmore 1.
PHP Basics and Syntax Lesson 3 ITBS2203 E-Commerce for IT.
PHP using MySQL Database for Web Development (part II)
Python Programming Unit -1.
Top 8 Best Programming Languages To Learn
NOCTI Study Guide #2.
About Python.
PHP / MySQL Introduction
Do you know this browser?...
Content of Presentation
Introduction to PHP.
Web Application Development Using PHP
Introduction to Computer Science
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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!

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

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

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

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

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

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

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