programmer • MFA in Design and Technology from Parsons, studied under Golan Levin and Zach Lieberman • Former Computer Science Educator, 5th-12th grades including AP Java • FT Professional Developer for ~6 years • Day Job is Ruby, JavaScript, and Go, but mostly people 3
easily when I have a goal • Ruby lacks the tools we need • Clojure provides tools to make my goals simpler • An excuse to really dig into core.logic and relational programming in general • Likewise an excuse to learn and play with Zippers 4
a nightmare (Ruby’s parse.y is over 11,000 LOC - https://github.com/ruby/ruby/blob/ trunk/parse.y) • Doesn’t have the same kind of IDE integration as other languages • No decent refactoring tools • Not much in the way of commonly available static analysis tools in general 6
The same parser used by JRuby itself to parse Ruby Code • Takes Ruby Code and turns it into an AST format • AST has some nice built in visitor functions • Helped me understand how to work with trees better 7
by Alex Miller (@puredanger) http://www.ibm.com/ developerworks/library/j-treevisit/index.html • Helpful for walking the AST and producing a seqable data structure in Clojure • Had the cool side effect of showing me how to use metadata 8
to • Took me about a year to get any basic understanding, another year or so to start doing anything decent • Still not very good at it • But I’m trying really hard • And thankfully David Nolen is a mensch • graaaph is a good use case 9