Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
+ CS1001. Python. November 14th, 2011 + Scripting languages Scripting languages foster an exploratory, incremental approach to writing code Historically Favor interpreted your time and energy over the CPU’s 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: http://www.useit.com/alertbox/web-growth.html + 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 + Obfuscated code contest 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 http://weather.yahooapis.com/forecastrss?w=2459115 + Technically Dynamic typing Garbage collected Multi-paradigm Compiles to bytecode Exception based error handling Extensible + Dynamic typing pi = 3.1459 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: http://xkcd.com/534/