INFO-H-302 Introduction Python Analyse et Conception par Objets Pourquoi apprendre Python ? Pourquoi apprendre un nouveau langage ? • ... pourquoi pas ? • "Controlling complexity is the essence of computer programming." (Brian Kernighan) • Autre langage, autre approche de la complexité History of Programming Languages 1954 1960 1965 1975 1970 1986 www.oreilly.com For more than half of the fifty years computer programmers have been writing code, O’Reilly has provided developers with comprehensive, in-depth technical information. We’ve kept pace with rapidly changing technologies as new languages have emerged, developed, and matured. Whether you want to learn something new or need answers to tough technical questions, you’ll find what you need in O’Reilly books and on the O’Reilly Network. 1990 1980 1990 1991 1990 1985 1991 1993 1994 1995 1995 1996 1996 1997 2000 1997 2000 2001 2001 2002 2001 2003 2003 2004 2003 2004 This timeline includes fifty of the more than 2500 documented programming languages. It is based on an original diagram created by Éric Lévénez (www.levenez.com), augmented with suggestions from O’Reilly authors, friends, and conference attendees. For information and discussion on this poster, go to www.oreilly.com/go/languageposter. ©2004 O’Reilly Media, Inc. O’Reilly logo is a registered trademark of O’Reilly Media, Inc. All other trademarks are property of their respective owners. part#30417 2008 2006 2004 2002 2000 1998 1996 1994 1992 1990 1988 1986 1984 1982 1980 1978 1976 1974 1972 1970 1968 1966 1964 1962 1960 1958 1956 C++ C# 2.0 C# Python 2.0 Perl 5 Python Perl Smalltalk Ruby Tcl Eiffel Fortran 90 Ada 83 ML Haskell 98 OCaml Caml SML Prolog Fortran 77 Pascal PL/I COBOL Smalltalk 80 Algol 60 C (K&R) C++ (ISO) JavaScript Java 2 (v1.5 beta) Scheme R5RS Java Common Lisp Scheme Lisp Fortran I 2008 2006 2004 2002 2000 1998 1996 1994 1992 1990 1988 1986 1984 1982 1980 1978 1976 1974 1972 1970 1968 1966 1964 1962 1960 1958 1956 C++ C# 2.0 C# Python 2.0 Perl 5 Python Perl Smalltalk Ruby Tcl Eiffel Fortran 90 Ada 83 ML Haskell 98 OCaml Caml SML Prolog Fortran 77 Pascal PL/I COBOL Smalltalk 80 Algol 60 C (K&R) C++ (ISO) JavaScript Java 2 (v1.5 beta) Scheme R5RS Java Common Lisp Scheme Lisp Fortran I 2008 2006 2004 2002 2000 1998 1996 1994 1992 1990 1988 1986 1984 1982 1980 1978 1976 1974 1972 1970 1968 1966 1964 1962 1960 1958 1956 C++ C# 2.0 C# Python 2.0 Perl 5 Python Perl Smalltalk Ruby Tcl Eiffel Fortran 90 Ada 83 ML Haskell 98 OCaml Caml SML Prolog Fortran 77 Pascal PL/I COBOL Smalltalk 80 Algol 60 C (K&R) C++ (ISO) JavaScript Java 2 (v1.5 beta) Scheme R5RS Java Common Lisp Scheme Lisp Fortran I Pourquoi apprendre Python ? • Suffisamment proche de Java pour être facile • Suffisamment différent pour être intéressant • Très utilisé : • Développement web • Recherche en Mathématiques, Bioinformatique • Administration système Python • Interprété • Orienté-Objet • Strong typing • Dynamic typing Interprété Interprété Interprété Typage dynamique Typage fort “Duck-Typing” • “If it quacks like a duck and flies like a duck... it must be a duck” “Duck-Typing” • “If it quacks like a duck and flies like a duck... it must be a duck” Orienté-Objet Types de données Contrôle de flux Contrôle de flux Contrôle de flux Fonctions Iterator Iterator Fonctions, lambdas Fonctions, lambdas Plus d’information • http://www.python.org • http://docs.python.org/tut/ • http://www.python.org/download/