director of PythonLabs at Zope Corporation

Slides:



Advertisements
Similar presentations
Why Have The OSGi Specifications Been Based On Java Technology ? By Peter Kriens, CEO aQute OSGi Technology Officer
Advertisements

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.
A Programmer's Introduction to Java - from a S/370 user (c) IDMS/SQL News
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
® ® Why Design Another Language? Python UK & ACCU Spring Conference Oxford - April 2, 2003 Guido van Rossum Director of PythonLabs at Zope Corporation.
"The State of the Python Union" Python10 - Alexandria, VA - February 7, 2002 Guido van Rossum Director, PythonLabs at Zope Corporation
Why I Invented Python EuroPython – June 27, 2005 Guido van Rossum Elemental Security, Inc.
Python: Building an Open Source Project and Community SDForum Distinguished Speaker Series, 2/17/05 Guido van Rossum Elemental Security,
Python Whats in a name? Snake logos and mascot notwithstanding, its named after Monty Pythons Flying Circus Humor-impaired can safely.
Introduction to Python LinuxWorld - New York City - January 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
Optional Static Typing Guido van Rossum (with Paul Prescod, Greg Stein, and the types-SIG)
10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,
10/10/1999© 1999 CNRI, Guido van Rossum 1 Python Workshop Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston, Virginia,
3 Copyright © 2005, Oracle. All rights reserved. Basic Java Syntax and Coding Conventions.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
8 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: JavaServer Pages.
EIONET Training Beginners Zope Course Miruna Bădescu Finsiel Romania Copenhagen, 27 October 2003.
Other Web Application Development Technologies. PHP.
Code Correctness, Readability, Maintainability Svetlin Nakov Telerik Corporation
SCAPE Carl Wilson Open Planets Foundation SCAPE Training Guimarães Characterisation An introduction to the identification and characterisation of.
How to enter the world of Python Programming for ArcGIS Or, a funny thing happened on the way from an ESRI conference By Katherine Paybins WVAGP Membership.
Introduction to Python Week 15. Try It Out! Download Python from Any version will do for this class – By and large they are all mutually.
CS1022 Computer Programming & Principles
A Crash Course Python. Python? Isn’t that a snake? Yes, but it is also a...
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Python By Steve Wright. What is Python? Simple, powerful, GP scripting language Simple, powerful, GP scripting language Object oriented Object oriented.
Python Brandon Jeffcoat Dashaun West “Why settle for snake oil when you can have the whole snake?” -- From Usenet posting by Mark Jackson, June 1998.
Python Jordan Miller and Lauren Winkleman CS 311 Fall 2011.
PHP Scripting Language. Introduction “PHP” is an acronym for “PHP: Hypertext Preprocessor.” It is an interpreted, server-side scripting language. Originally.
WHAT IS PHP PHP is an HTML-embedded scripting language primarily used for dynamic Web applications.
Python Introduction.
23-August-1999© 1999 CNRI, Guido van Rossum August-1999© 1999 CNRI, Guido van Rossum 2 Python Track Opening Words Guido van Rossum
GlueTrack interpreter for S2E beam dynamic simulations Igor Zagorodnov BDGM, DESY
Python Python طراحی و پیاده سازی زبان‌های برنامه‌سازی.

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.
Python Guido van Rossum Sung-Jin Hong SPARCS
1 Python CIS*2450 Advanced Programming Concepts Material for this lecture was developed by Dr. D. Calvert.
Washington Area SGML/XML Users Group – 21 June 2000 BeOpen.com 1 Python, XML, and PythonLabs Fred L. Drake, Jr.
Ruby! Ronald L. Ramos. What is Ruby? Ruby is a scripting language designed by Yukihiro Matsumoto, also known as Matz. It runs on a variety of platforms,
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
An Introduction to Python Blake Brogdon. What is Python?  Python is an interpreted, interactive, object-oriented programming language. (from python.org)
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
1Computer Sciences Department Princess Nourah bint Abdulrahman University.
C463 / B551 Artificial Intelligence Dana Vrajitoru Python.
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.
Ch 1. A Python Q&A Session. Why do people use Python? Software Quality Developer productivity Program portability Support Libraries Component integration.
PHP vs. Python. Similarities are interpreted, high level languages with dynamic typing are Open Source are supported by large developer communities are.
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 P.SRIVIDYA 085D1A0552 Programming Language.
Zope Concepts - Python scripts Valentin Baciu Finsiel Romania Tirana, 6 June 2005.
Python Programming Unit -1.
CST 1101 Problem Solving Using Computers
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
About Python.
Pegasus Status Update April 2001
PHP / MySQL Introduction
What Is a Program? A program is like an algorithm, but describes a process that is ready or can be made ready to run on a real computer Retrieved from:
Introduction to Python
Introduction to Python
Introduction to PHP.
FEATURES OF PYTHON.
Web Application Development Using PHP
Presentation transcript:

director of PythonLabs at Zope Corporation Guido van Rossum director of PythonLabs at Zope Corporation mailto:guido@python.org http://www.python.org

What’s in a name? Snake logos and mascot notwithstanding, it’s named after Monty Python’s Flying Circus Humor-impaired can safely ignore the spam references :-) Nobody expects the Spanish inquisition

What is Python? O-O rapid prototyping language Not just a scripting language Not just another Perl Easy to learn, read, use Extensible (add new modules) C/C++/Fortran/whatever Java (through Jython) Embeddable in applications

Touchy-feely properties Open Source (OSI Certified) copyrighted but use not restricted no "viral" license owned by independent non-profit, PSF Mature (13 years old) Supportive user community plenty of good books, too Simple design, easy to learn reads like “pseudo-code” Suitable as first language Suitable as last language :-)

High-level properties Extremely portable Unix/Linux, Windows, Mac, PalmOS, WindowsCE, RiscOS, VxWorks, QNX, OS/2, OS/390, AS/400, PlayStation, Sharp Zaurus, BeOS, VMS… Compiles to interpreted byte code compilation is implicit and automatic Memory management automatic reference counting for most situations GC added for cycle detection “Safe”: no core dumps due to your bugs

What is it used for? rapid prototyping web programming (client and server side) ad hoc programming ("scripting") steering scientific applications extension language XML processing database applications GUI applications education

Who is using it? Google (various projects) NASA (several projects) NYSE (one of only three languages "on the floor") Industrial Light & Magic (everything) Yahoo! (Yahoo mail & groups) RealNetworks (function and load testing) RedHat (Linux installation tools) LLNL, Fermilab (steering scientific applications) Zope Corporation (content management) ObjectDomain (embedded Jython in UML tool) Alice project at CMU (accessible 3D graphics) More success stories at www.pythonology.com

Language properties Everything is an object Packages, modules, classes, functions Exception handling Dynamic typing, polymorphism Static scoping Operator overloading Indentation for block structure Otherwise conventional syntax

High-level data types Numbers: int, long, float, complex Strings, Unicode: immutable Lists and dictionaries: containers Other types for e.g. binary data, regular expressions, introspection Extension modules can define new “built-in” data types

Interfaces to... XML Relational databases Java (via Jython) DOM, expat XMLRPC, SOAP, Web Services Relational databases MySQL, PostgreSQL, Oracle , ODBC, Sybase, Informix Java (via Jython) Objective C COM, DCOM (.NET too) Many GUI libraries cross-platform Tk, wxWindows, GTK, Qt platform-specific MFC, Mac (classic, Cocoa), X11

Compared to Perl Easier to learn More readable code very important for infrequent users More readable code More maintainable code Fewer “magical” side effects More “safety” guarantees Better Java integration

Compared to Java Code up to 5 times shorter Dynamic typing and more readable Dynamic typing Multiple inheritance, operator overloading Quicker development no compilation phase less typing Yes, it may run a bit slower but development is much faster and Python uses less memory (studies show) Similar (but more so) for C/C++

Jython Seamless integration with Java Separate implementation Implements the same language Different set of standard modules differences in “gray areas” e.g. some different introspection calls different command line options, etc.

Jython's Java integration Interactive Compiles directly to Java bytecode Import Java classes directly Subclass Java classes pass instances back to Java Java beans integration Can compile into Java class files

Example function def gcd(a, b): "greatest common divisor" while a != 0: a, b = b%a, a # parallel assignment return b

Example class class Stack: "A well-known data structure" # doc string def __init__(self): # constructor self.items = [] def push(self, x): self.items.append(x) # the sky is the limit def pop(self): x = self.items[-1] # what happens if it’s empty? del self.items[-1] return x def empty(self): return len(self.items) == 0

References and plugs References: www.python.org - Python home site documentation, downloads, community, PSF www.pythonology.org - success stories www.artima.com/intv - interview with GvR www.zope.org - Zope community site www.zope.com - Zope corporate site Python Conferences (see www.python.org): PyCon DC March 26-28 Washington, DC on-line registration ends today ($200) Python UK April 2-3 Oxford, England EuroPython June 25-27 Charleroi, Belgium Python11 at OSCON July 7-11 Portland, OR