Python Guido van Rossum Sung-Jin Hong SPARCS

Slides:



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

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/10/1999© 1999 CNRI, Guido van Rossum 1 Python Workshop Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston, Virginia,
EIONET Training Beginners Zope Course Miruna Bădescu Finsiel Romania Copenhagen, 27 October 2003.
Other Web Application Development Technologies. PHP.
A Crash Course Python. Python? Isn’t that a snake? Yes, but it is also a...
‘And Now For Something Completely Different’ Python Programming David Hartwell Clements.
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.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
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.
The PHP Story. PHP Story PHP is a programming language. Incorporate(join) sophisticated business logic. Widely used general purpose scripting language.
Programming 101 with Python: an open-source, cross-platform, and fun language By J. Burton Browning, Ed.D. Copyright © J. Burton Browning All rights reserved.
23-August-1999© 1999 CNRI, Guido van Rossum August-1999© 1999 CNRI, Guido van Rossum 2 Python Track Opening Words Guido van Rossum
Introduction to Python Dr. Bernard Chen Ph.D. University of Central Arkansas July 9 th 2012
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
GlueTrack interpreter for S2E beam dynamic simulations Igor Zagorodnov BDGM, DESY
Python Python طراحی و پیاده سازی زبان‌های برنامه‌سازی.
Server- Side technologies Client-side vs. Server-side scripts PHP basic ASP.NET basic ColdFusion.

Introduction to Python Guido van Rossum Director of PythonLabs at Zope Corporation
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
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.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Intro to Python Programming (Introduction) Pamela A. Moore Zenia C. Bahorski Eastern Michigan University March 7, 2012 A language to swear by, not at.
1 Programming in Python Language Overview. 2 Who is using it? Google (various projects) NASA (several projects) NYSE (one of only three languages "on.
Computer Science 111 Fundamentals of Programming I Overview of Programming.
1 Python CIS*2450 Advanced Programming Concepts Material for this lecture was developed by Dr. D. Calvert.
PHP and MySQL by Example COMP YL Professor Mattos.
Washington Area SGML/XML Users Group – 21 June 2000 BeOpen.com 1 Python, XML, and PythonLabs Fred L. Drake, Jr.
Programming language A programming language is an artificial language designed to communicate instructions to a machine,languageinstructionsmachine particularly.
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.
Introduction to CS520/CS596_026 Lecture Two Gordon Tian Fall 2015.
Introduction to PHP Advanced Database System Lab no.1.
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.
Unit 1 Basic Python programs, functions Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except.
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.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
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.
Chapter 13 Web Application Infrastructure
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.
Scope History of Ruby. Where can you use Ruby? General Features.
About Python.
Ch 1. A Python Q&A Session Bernard Chen 2007.
PHP / MySQL Introduction
Introduction to Python
Introduction to Python
basic Python programs, defining functions
Introduction to Python
Programming in Python Language Overview
FEATURES OF PYTHON.
Web Application Development Using PHP
Presentation transcript:

Python Guido van Rossum Sung-Jin Hong SPARCS

Slide 2©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 3©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 4©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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 :-)

Slide 5©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 6©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 7©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 8©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 9©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 10©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong Interfaces to... XML –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

Slide 11©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong Compared to Perl Easier to learn –very important for infrequent users More readable code More maintainable code Fewer “magical” side effects More “safety” guarantees Better Java integration

Slide 12©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong Compared to Java Code up to 5 times shorter –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++

Slide 13©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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.

Slide 14©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 15©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong IronPython Seamless integration with.NET framework Separate implementation –Python interpreter in.NET CLI Implements the same language Same set of standard modules Developed by Microsoft Easy integration with C#, VB, etc..

Slide 16©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong PyPy Python implemented in Python For studying

Slide 17©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong Example function def gcd(a, b): "greatest common divisor" while a != 0: a, b = b%a, a # parallel assignment return b

Slide 18©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong 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

Slide 19©2001, 2002 Guido-van-Rossum2006 Sung-Jin Hong References and plugs References: – - Python home site documentation, downloads, community, PSF – - success stories – - interview with GvR – - Zope community site – - Zope corporate site Python Conferences (see –PyCon DC March Washington, DC on-line registration ends today ($200) –Python UK April 2-3 Oxford, England –EuroPython June Charleroi, Belgium –Python11 at OSCON July 7-11 Portland, OR