have a couple classes. • Maybe you can keep the side effects in mind as you code. • Maybe you know what that ProcessTransactions() returns a value, but changes a couple of things… • … but we are fallible, with ﬁnite mindspace.
is written. • We need to convey meaning quickly, without unnecessary ceremony… • Doesn’t matter if it’s a new programmer, or you six months after you wrote it. • And that’s before we discuss the baroque class architectures people build on top.
a new function now and then. • You have to use it to get acquainted with the semantics. • Need to learn how to express yourself differently. • It’s not about understanding the language, it’s about grokking its semantics.
even have objects. • I used to love Grails’ approach… until I realized I couldn’t control it. • Full control over what’s going on. • Libraries are easy to replace, since you don’t have to wonder about what goes on behind the scenes.
your functions as you develop. • Excellent for exploring someone else’s functions (remember, no context!) • I’ve found myself experimenting with my new functions on the REPL, then codifying those as tests.
C# to Java, it’s not just about learning new vocabulary. • There will be a learning curve. • Don’t get too used to blindly hack off templates at ﬁrst just because you want to start big. • 5 mistakes Clojure newbies make: http://adambard.com/blog/ﬁve-mistakes- clojure-newbies-make/