I attended Seattle CodeCamp this past weekend. I guess this is one of the advantages of living in Redmond that you have all kinds of
geek events interesting events happening in 10 minutes' drive away from my home.
I liked CodeCamp a lot, all of the presentations I visited were interesting. The average amount of people in a talk ranged from 7-8 to 50-60. Here are the highlights that I had a chance to visit.
- Reflector and Friends: An overview of Lutz Roeder's .Net Reflector and its add-ins - a nice overview by Jason Haley, of the reflector itself as well as its many plugins.
- Scala - I've never taken a look at Scala before and I liked this presentation a lot. The speaker, Ted Neward, is a genius of presentation. I can't remember enjoying a technical presentation so much in the recent times. Besides, Ted is very competent and has incredibly broad interests. I don't know how he managed to squeeze a pretty decent coverage of Scala features into one hour. Scala itself is an interesting language. I think Scala to Java is what F# and Nemerle are to C#. I've seen especially a lot of similarities with Nemerle, ranging from being a strongly typed, functional, OO language to things like return value of a function is the last thing evaluated (no need to type the return keyword). Also, it has Traits/Mixins (what I was always interested in), return type covariance (yummy!), and a whole lot other goodies.
- F# - same speaker, Ted Neward, also gave a great overview of F#. The internet is full with details about F#, so I won't try to repeat it here :) Interesting that the F# talk was highly popular, the room was full (about 50 people).
- Then there was also a nice general talk about Silverlight and its place as a technology. Made me do a lot of philosophical thinking about browsers as a phenomenon.
- And last, but not least, Walt Ritscher gave an excellent deep technical talk about WPF Data-binding. It is such a pleasure to listen to a presentation by a clear thinker who has a deep understanding of the subject matter. It all just makes sense and seems so natural. What else do I have to say. I love WPF and really admire its architecture. Finally Microsoft was the first to build something that the world has never seen before - and Microsoft implemented it the right way. The more I learn about WPF the more I say to myself: "yes, yes, that's how it's supposed to be". Also, the talk itself was also densely attended and we all stayed till 6:30 pm (Saturday evening!) although the official end was at 6 pm.
- LINQ Overview - Charlie Calvert gave a great overview of LINQ and different providers. It went very well and was as always pleasant to watch. Although LINQ gets really a lot of traction on the internet nowadays, Charlie managed to give a fresh, clear and inspiring presentation. I have to say, LINQ is a revolution. I'm proud to be a part of the team who built it (although they built it before I joined so I can't take credit for it :)
- Static Analysis - this talk was basically what I came for. Wesner Moise was demoing NStatic, a software he is building, basically a bug finder that heavily employs artificial intelligence methods to, say, catch NullReferenceExceptions at compile time. I deeply share Wesner's vision that tools need to have a deeper understanging of source code. For example, NStatic uses algebraic methods to infer semantical information about possible variable ranges (it can infer and prove that a variable will have a given value or fall within a given range at runtime). But it's really difficult to explain without actually listening to the presentation. I was very impressed by what NStatic can do and looking forward to play with the released version.
For me meeting Wesner and listening to his ideas and NStatic was also especially important for other reasons. In 2004, when I started working on a structured editor, I was inspired by Wesner's post Whidbey May Miss the Next Coding Revolution. Since then I am reading his blog and have gained a lot of appreciation for his creativity and talent. I myself don't have any significant impact whatsoever (just gathering pebbles on the beach of the ocean of knowledge :), but I have a strong belief that there are a number of people on the planet (Charles Simonyi, Jonathan Edwards, Wesner Moise, Rob Grzywinski, Sergey Dmitriev, Maxim Kizub and some others) who are searching in the right direction. They will know what I'm talking about :) But I digress, pardon me :)
- LINQ to XML - it's a pity I missed it. Erick Thompson was presenting XLinq, a new great API to work with XML from managed languages. I really like the XLinq API usability.
- VSX: Extend Your Visual Studio Development Experience - this was the last talk I attended, where the VSX team was demoing considerable improvements to the Visual Studio extensibility story. It is much easier to extend Visual Studio now than it was before. You can use managed code to achieve your goals. It is still not perfect, but it is good to know that a great team is striving towards improving the Visual Studio extensibility experience.