why python

Post on 19-May-2015

1.314 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

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

Readability

• Forced indentation• No curly brackets /

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

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

Conditions:• if, elif, else

Loops:• for...in• while

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

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

EXAMPLES

Example: Old Directory Cleanup Script

Example: Simple XML Processing

Example: Simple Spell Checker in 21 Lines

top related