Find my posts on IT strategy, enterprise architecture, and digital transformation at ArchitectElevator.com.
My biggest fear of joining Google was that I would be living somewhat on "borrowed time" as far as my participation in Microsoft events is concerned. I have a lot of good friends at Microsoft and I am a still an MVP so I am not yet ready to give up my connections into that universe for quite some time to come. However, being on stage at a Microsoft event with a Google badge (and with a straight face) is a bit harder. Therefore, I was particularly happy to be invited to this year’s PDC, Microsoft’s Professional Developer Conference. It is ironic that in my years working as a consultant with a lot of Microsoft technologies I never got to go to PDC. Now that I work for Google I am here as a speaker :-) The part I like the best: I work for Google, speak at a Microsoft event, have an IBM laptop and just e-mailed a friend at Sun. Peace on earth :-)
One of the equally exciting and frustrating things at PDC is that when you get there people shower you with a whole set of new acronyms that get you excited about all the new stuff and disappointed when you find out that most it are new names for the same old stuff. We already knew that Longhorn is now Vista but I had missed the baptizing of Indigo into WCF – The Windows Communication Foundation. According to Don, the acronym WTF was considered but was reserved for the Windows Transaction Foundation...
Conferences are all about getting free stuff and talking to interesting people. I had a good start with Jim Newkirk taking me to the Addison-Wesley author dinner, which I crashed. Hey, my book has enough C# code to deserve a free dinner :-) Plus it was nice to hang out with Don Box, Anders Hejlsberg, David Chappell, Jim Newkirk and many others again. Speaking of publishers, The Best Software Writing was slashdotted on Thursday. I am particularly proud that my Starbucks article was pointed out specifically with a link to Google search. Now how appropriate is that? And I still think Starbucks really should buy me free drinks! After all Google buys me free lunches :-) While I am digression already let me put one more item on the stack. The conference Starbucks happened to use the (sequential) invoice number for correlation instead of the name. First of all I could not help but notice and secondly it demonstrated how much out of sequence the drinks really come when people order hot and cold drinks or multiples of the same kind. And who says going to Starbucks is not inspiring?
The free dinner was followed by free rides at the usual Universal Studios party. Actually, I can no longer imagine an amusement park without free food and 10,000 geeks. I am not sure whether that is a good thing or a bad thing :-)
By the way, PDC 2005 is the “other year” PDC, i.e. many of the previewed technologies more or less were talked about already at PDC 2 years ago. However, I did not mind at all because I did not attend last time and it seems that this time hand waving was largely replaced with actual demos. Regardless, many products are still a year or two away from GA. So while many things we got to see are very cool, patience is the order of the day.
PDC has very few external speakers because most presentations are previews of upcoming products, delivered by the responsible product managers or lead architects. I was lucky enough to participate in a panel on The Art and Practice of Connected Systems, part of the architecture symposium organized by Devhawk Harry Pierson. Connected Systems are a big item in Microsoft’s developer strategy, ranging from the Indigo (WCF) to the Windows Workflow Services.
The panel was the last agenda item on Friday so attendance was a bit lower than most of the sessions. I hope the people who did come got something out of it and also found it entertaining. Steve Swartz makes for a great anchor on panels and did not disappoint this time. I also enjoyed meeting and interacting with David Ing from Meridian Software. He even gave me upfront kudos in his blog! Sadly, a quick (Google) search did not reveal too much blog coverage of the panel. I personally like panels (both as panelist and attendee) because it provides real-time interaction and ad-hoc opportunity for disagreement and discussion. I see them as a nice contrast to scripted and polished presentations.
The symposium itself was based on a skid that covered topics ranging from SOA to Agile to process and domain modeling. We got to see Harry Pierson, Brenton Webster, Arvindra Sehmi, Beat Schwegler, Simon Guest and a few other usual suspects on stage. It seems that you can only be an architect if you have a funny accent... Skids are always a bit tricky but this one worked out pretty well. Here some of my take-aways. The symposium lasted 3 hours so obviously my list is a little condensed...
Since I did not arrive until Wednesday night I missed the major keynotes on Tuesday and Wednesday. I made it to Thursday's key note about 15 minutes late. It was mostly a sequence of brief feature intros. For example, they showed a pretty nice programming model to manage clusters / grids. Also, Microsoft is making shell scripting a first class citizen with the new OO command line language Monad. Furthermore, some time in the not too distant future we will see a transactional file system that allows multiple file creation and writes in a single commit. The overhead is supposed to be in the single digit %. Sweet.
IIS 7 was also demo'd. In short, IIS has been dislodged from the OS and is now modular and can be run and configured much more like a service. Whoohoo! Here my take-aways:
One of the most popular sessions was Anders' intro into C# 3.0 During the rerun of the session the overflow room overflowed! A good way to describe the difference between TechEd and PDS is that at TechEd US Anders talked about the new C# 2.0 features whereas at PDC he talked about C# 3.0 features. Now keep in mind that C# 2.0 has not even be released as part of the official platform...
Maybe I got suckered in by the Universal party and the free food but my impression is that in terms of language and platform design Microsoft is the big innovator these days. You might not immediately fall in love with all the proposed C# 3.0 features (language bloat is a definite concern) but the amount of innovation going into the C# language design is very impressive. 3.0 will provide lambda expressions, extension methods (I just wished for those in Java the other day), local variable type inference, object initializers, anonymous types, query expressions, and expression trees. Whew!
To me two parts of C# 3.0 are truly outstanding:
Lambda Expressions
Lambda expressions are a way to pass code to a function similar to delegates or anonymous methods. In that sense they are a logical evolution of delegates. Having type inference helps tremendously because the types can be inferred from context instead of having to be specified in the language. The operator “ => “ is read as “for which”.
Linq
The killer app for all the new features is certainly Linq. Linq allows queries against a variety of data sources to be performed without having to embed nasty SQL or XPATH expressions into string variables. Instead it uses the native language syntax to express the queries and result sets. Very cool.
Sad but true... not many smart people are funny and not many funny people are exceptionally smart. Don Box is the definite exception to this rule, so it is always great to hear him talk. This time he showed off a major "Frankenbuild" of WWF (the workflow foundation, formerly known as WinOE), Indigo and what not to show how process models and services can interact to create more transparent distributed systems. According to him "this stuff does not run anywhere except in Dharma’s bedroom" but it was still quite interesting and entertaining. As such, Don reminded us to take this all with a grain of salt and emphasized that “There are no tenets of workflow enabled services”. :-) Instead of a complete transcript of the talk (I am sure you can find that somewhere) I captured a few highlights and noteworthy quotes, especially the ones that are funny and insightful.
The core message (no pun intended) of the talk can be summarized as follows:
The big picture looks like this: messages come into an endpoint (according to Don "You now know Indigo" ). The message starts a XAML-based workflow that uses the WWF execution engine. The workflow simplifies asynchronous and concurrent execution, as opposed to having to deal with threads and all that. The main activities of the workflow are send and receive. Keep in mind that the service provider can be both sender and receiver. Do not mix up sender and receiver with client and server. (of course anyone who reads my ramblings has known this for a long time ). The basic MEP of request-reply has made this distinction so confusing.
Cool feature: As part of the transparency goal state transitions inside the work flow
are published as an RSS feed. You can also inspect the XAML for the service by appending
?rawContent
to the URL. You can then open this process definition in the workflow designer and
edit the XAML post-deployment.
Jochen Seemann gave another demo of the DSL tools in VS 2005. Early stage still but very interesting. I'll save this for another post.
Luckily we had Friday afternoon off and got to see a little bit of LA. Every time I roam around "downtown" LA I feel like there is no way Blade Runner could have taken place in any other city. Fittingly enough the last part of the movie was filmed in the Bradbury Building in Downtown LA. Pip and I then braved the LA traffic and crawled to the Getty and Santa Monica. All in all a nice way to finish up the conference.