Pacific Northwest Software Symposium 2013
by Matt CholickI just finished up attending the Pacific Northwest Software Symposium: No Fluff Just Stuff's Redmond event. I enjoyed the conference; this series has really solid speakers. I found two talks especially useful.
I started the conference off with several talks on JavaScript. I'm writing more and more code in the language and wanted a stronger foundation. The session that I found most valuable in this area was a Backbone.js lab by Nate Schutta. Backbone has been on my list of technologies-to-investigate for a long time. This lab gave me a chance to spend some hands on time with the framework. I was very surprised at how familiar it felt; working in Backbone was very much like working in Angular. There are certainly differences, but the frameworks share some very strong conceptual and functional overlap. I'm now confident I could take what I know about Angular and be productive working on a Backbone application. The other talks were hit and miss, but I do feel like I gained some solid JavaScript knowledge.
The talks outside of JavaScript that I attended were more conceptual and focused on soft skills. My favorite talk of the conference was a presentation on the SOLID principles from the perspective of functional languages (slides). The talk equipped me to think about good design in new ways.
The point that really started my thinking was around the single responsibility principle and classes in object oriented-programming. Class's model both state and behavior. Does this pairing of meta-responsibilities violate the single responsibility principle? It's a question that one isn't even equipped to ask from a foundation of pure OO languages: there is simply no elegant object-oriented way to really separate those two things. They're fundamentally what a class is. Independently, that question would never occur to me. The speaker demonstrated how functional languages can, and do, pull apart those two meta-responsibilities.
The Sapir-Whorf hypothesis has special meaning for programmers. Roughly summarized, the hypothesis states that the langue we speak changes how we think about the world. The Pragmatic Programmer advises learning a new language every year. 2013 has definitely been my year of JavaScript. 2014 will be my year for Clojure. Being presented with this question showed me how thoroughly my current experience is coloring how I think about solving problems. It's time to expand that experience.