+ CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an...
-
Upload
lina-pinkston -
Category
Documents
-
view
221 -
download
1
Transcript of + CS1001. Python. November 14 th, 2011. + Scripting languages Scripting languages foster an...
+
CS1001. Python.November 14th, 2011
+Scripting languages
Scripting languages foster an exploratory, incremental approach to writing code
Historically interpreted
Favor 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 timeThinking about the problemExperimenting with solutions
Less timeWriting 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/