15
Python

Why Python

  • Upload
    arnav

  • View
    1.319

  • Download
    0

Embed Size (px)

DESCRIPTION

A quick talk I gave at work on Python, its philosophy and why to use it...

Citation preview

Page 1: Why Python

Python

Page 2: Why Python
Page 3: Why Python

History

• Created by Guido von Rossum in 1990 (BDFL)and named after Monty Python's Flying Circus

• Influences: ABC, Lisp, Perl, Haskell and Java• Developed and supported by a large team of

volunteers - Python Software Foundation• Major implementations: CPython, Jython, Iron

Python, PyPy

Page 4: Why Python

E.g. Projects with Python

• Websites: Google, YouTube, Yahoo Groups & Maps, CIA.gov

• Systems: NASA, LALN, CERN, Rackspace• Games: Civilization 4, Quark (Quake Army

Knife)• Mobile phones: Nokia S60 (Symbian),

PythonCE• P2P: BitTorrent

Page 5: Why Python

What is Python

• Very high level scripting-cum-programming language (almost like pseudo-code)

• Multi-paradigm: OOP, Structured, Functional, Aspect-oriented

• Multi-platform• Dynamic Typing• Automatic garbage collector for memory

management

Page 6: Why Python

Philosophy

“there is one -and preferably only one- obvious way to do it”

“The long-term usefulness of a language comes not in its ability to support clever hacks, but from how well and how unobtrusively it supports the day-to-day work of programming. The day-to-day work of programming consists not of writing new programs, but mostly reading and modifying existing ones.”

- Eric Raymond, 'Why Python?' 2003

Page 7: Why Python

Readability

• Forced indentation• No curly brackets /

do..end / if...endif• No semicolons

Page 8: Why Python

SyntaxTypes: • str, unicode • list, tuple, set• dict• int, float, complex, bool

Conditions:• if, elif, else

Loops:• for...in• while

Page 9: Why Python

Why Python?

• Readability, maintainability• Fast development and all just works the first

time...• Dynamic typing and automatic memory

management• Paradigm of your choice• Extensive library

Page 10: Why Python
Page 11: Why Python

Some problems

• Scripting-like language and compiled and runtime - hence slower than C/C++ and slightly slower than Java

• Memory economy hard to achieve (high level data-structures)

• Multiprocessing and Global interpreter lock

Page 12: Why Python

EXAMPLES

Page 13: Why Python

Example: Old Directory Cleanup Script

Page 14: Why Python

Example: Simple XML Processing

Page 15: Why Python

Example: Simple Spell Checker in 21 Lines