+ CS1001. Python. November 14 th, 2011
+ Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically interpreted Favor your time and energy over the CPUs Include libraries for common tasks Examples AWK [1977], Perl [1987], Python [1991]
+ Style Java: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world"); } } Python: print hello world Perl: print hello world\n; AWK: BEGIN { print "Hello, world!" }
+ Philosophy More time Thinking about the problem Experimenting with solutions Less time Writing code
+ Perl Larry Wall, 1987 (linguist) Report writing (text processing!) There is more than one way to do it. What was text processing essential for in the early 90s?
+ Websites per year (log scale) Source:
+ Which is more important? Code should be easy to write Code should be easy to read (This is a false dichotomy)
+ Obfuscated code contest `$=`;$_=\%!;($_)=/(.)/;$==++$|; (.)..(.)......(.)/,$"),$=++;$.++;$.+ +; $_++;$_++;($_,$\,$,)=($~.$"."$;$ /$%[$?]$_$\$,$:$%[$?]",$"&$~,$ #,);$,++;$,++;$^|=$";`$_$\$,$/$: $;$~$*$%[$?]$.$~$*${#}$%[$?]$ ;$\$"$^$~$*.>&$=` Perl
+ Obfuscated code contest `$=`;$_=\%!;($_)=/(.)/;$==++$|; (.)..(.)......(.)/,$"),$=++;$.++;$.+ +; $_++;$_++;($_,$\,$,)=($~.$"."$;$ /$%[$?]$_$\$,$:$%[$?]",$"&$~,$ #,);$,++;$,++;$^|=$";`$_$\$,$/$: $;$~$*$%[$?]$.$~$*${#}$%[$?]$ ;$\$"$^$~$*.>&$=` $ Just another Perl hacker. Perl
+ Obfuscated code contest C
+ C
+ Python Emphasizes readability There should be one – and preferably only one – way to do it. Large standard library (batteries included) Cross platform and open source
+ Parsing text files (and reading them back!)
+ Getting the weather
+ Technically Dynamic typing Garbage collected Multi-paradigm Compiles to bytecode Exception based error handling Extensible
+ Dynamic typing pi = print pi pi = "I'd love to have " + str(pi) + " pies" print pi print "In fact, I'd like one more" pi = pi + 1 # TypeError: cannot concatenate 'str' and 'int' objects print pi
+ Books Ordered by technical complexity - notice anything?
+ Internet humor Source: