Sunday, April 14, 2013

GOTO Zurich 2013

Last week I attended the GOTO software conference in Zurich. It was intensive 2 days with a lot of good presentations about Agile, Polyglot Programming, Multi-Core Programming, Continuous Delivery and more. There was a good mix of international and local speakers. My favourite speakers where Dan North, Bruce Tate and Greg Young.

In his presentation "8 Lines of Code" Greg Young talked about simplicity in software programming. He showed us a code example which used an AOP style approach to implement cross-cutting concerns. He showed us the depenendencies and complexity of these few amount of code. Multiple times he raised the question: "Can you explain this to a junior?". He then showed how the code can be restructured to remove the dependencies. He ended up with a simple design with no dependencies to external code.
Simplicity was also the topic of Greg's keynote the day after. The keynote had the provocative title "Developers have a mental disorder". He went after our sacred cows like ORM, relational databases, design patterns, DRY and unit testing. He didn't say these patterns and practices are bad. His point was that they are a lot overused or used without thinking. Regarding DRY he mentioned the disorder that programmers try to apply DRY to the extreme also in unit test code. I can confirm this observation. I too often saw completly unreadable unit tests where every common code was factored out in helper classes or methods.

Bruce Tate gave two talks with insides out of his journey Seven Languages in Seven Weeks. It was a very fascinating tour of programming languages like Clojure, Haskell, Io, Prolog, Scala and Erlang. Eventhough this was all exciting I don't know how this big choice of languages can help me as a developer who develops most of the time business applications. In my opinion the "Right Tool for the Job" is a myth. In the last 10 years I cannot remember a single project where I could choose the language. It was always given by the organization I worked with or by the customer.

Besides the talks I very enjoyed to get in touch with other attendees and speakers. My boss and me had a quick chat with Greg Young which motivated us to dig deeper into the implementation details of the event sourcing pattern which we already use for persistence in a product we are developing. These special moments are at least as valuable as the content of the presentations itself.