behavior The principle of linguistic relativity holds that the structure of a language affects the ways in which its speakers conceptualize their world, i.e. their world view, or otherwise influences their cognitive processes. Friday, November 2, 12
JavaScript X X X* X easy Ruby/Python X X X X normal CoffeeScript X X X X normal Objective-C X X X X * nightmare Java X X X hard Go X * structural X X* X normal Clojure X X (hints) * X normal/ nightmare/ hell Scala X * structural X inferred X X normal/ nightmare Friday, November 2, 12
name self.topic = topic end def start puts "Hi, my name is #{name} \ and I will talk about #{topic}." end end talk = Presentation.new("Matt", "Ruby") talk.start code example ported to each language Friday, November 2, 12
Fetching http://matt.aimonetti.net/ .....http://golang.org/ was fetched .......http://rubyconf.com/ was fetched .http://matt.aimonetti.net/ was fetched http://golang.org/ status: 200 OK http://rubyconf.com/ status: 200 OK http://matt.aimonetti.net/ status: 200 OK http://bit.ly/go-async-http Friday, November 2, 12
sensible conventions fast compilation flexible code organization simpler take on OO features of FP error handling documentation source as documentation Friday, November 2, 12
and topic.")) (defrecord Presentation [name topic] Talk; implement the Talk protocol (start [_] (str "Hi, this is " name " and I will talk about " topic "."))) (def talk (Presentation. "Matt" "Clojure")) (start talk) Friday, November 2, 12
to know a lot of functions/macros not really web focused brain stack overflow hard mental context switch meaningless error stacks Friday, November 2, 12
what Clojure offers Easy to get started Inferred types Flexible functional approach Modern concerns (parallelism) Pattern matching Relatively rich ecosystem Community JVM/CLR Friday, November 2, 12