Morning Coffee 109

  • I forgot to add a number to my last morning coffee post. However, after extensive research, I have determined that it was #108. So thing are continuing as usual today with #109. On the other hand, do you really want development and architecture opinions from a guy who can barely count? šŸ˜„
  • The finalists in the Dream-Build-Play contesthave been announced. I havenā€™t played any of them yet (some are available for download) but they several of them sure look good.
  • And speaking of gaming, MS announced an Xbox 360 price drop yesterday. So if you want to get in on some of the XNA action, hereā€™s your chance (or you could just build for your PC ā€“ take your pick).
  • Finally on the gaming front, if youā€™re not busy Monday you can watch the first day of Gamefest 2007 online. Get the scoop on XNA 2.0 as well as the new XNA networking support. I, alas, am busy Monday so Iā€™ll have to catch it on demand.
  • On to, you know, actual geek stuff things. Scott Guthrie seems to have retired his LINQ to SQL series and moved on to LINQ to XML. He shows how to build an RSS reader application with LINQ to XML. An oldie demo, but a goodie.
  • Wanna learn F#, thereā€™s a whole site of samples up on CodePlex. (via Don Syme)
  • Jeff Atwood is annoyed at how many different products you have to install to get a current & complete setup of VS 2005. Of course, MS shipped two parts of that stack since VS05 shipped (TFS & DBPro), three service packs (VS05 SP1, SQL 05 SP2 and DBPro SR1) and a major OS upgrade (VS Vista update). Doesnā€™t the same thing happen with any shipping product after a few years? BTW, if this is such a huge hassle, I wonder why Jeff doesnā€™t create a slipstreamed VS installer?
  • Udi Dahan has a great post on estimation where he claims ā€œDevelopers donā€™t know how to estimate.ā€ No argument, but the way he phrases it sounds like itā€™s the developerā€™s fault they suck at estimation. Itā€™s not. Developing ā€“ by definition ā€“ is building something youā€™ve never built before. Is it any surprise we suck at estimating how long it will take us to do something weā€™ve never done before?

Quote of the Day

In a discussion on governance in our bi-weekly Integration v-team meeting, Jason Howell made the following tongue-in-cheek suggestion:

ā€œIf you have architect in your title, you get a taser.ā€

Morning Coffee

  • Libor Soucek continues our conversation about durable messaging. We still donā€™t agree, but he says he ā€œfineā€ with durable messaging. He does go out of his way to differentiate between enterprise and supporting systems. But when youā€™re building connected systems, does that differentiation still matter?
  • After taking a few months off, John deVadoss is back at the blog. Check out his Big SOA/Little SOA post. I especially like his snowball analogy ā€œHow do you build a big snowball? You start with a small snowball.ā€) though heā€™s also on this ā€œmiddle outā€ bandwagon. Do we really believe ā€œmiddle outā€ works, or are we just saying it because we know top down and bottom up donā€™t? And John: Youā€™re welcome!
  • Anyone coming to the Microsoft SOA & Business Process Conference this fall? Maybe we can have a shindig / blogger dinner / unconference / something?
  • Remus Rusanu writes about SSBā€™s dynamic routing. One of the (many) cool things about SSB is that all the addressing is logical, not physical. Routing is what binds logical addresses to physical addresses, and itā€™s extensible.
  • Martin Fowler discusses the value of sticking to one language. I agree with his points about large frameworks being as difficult to learn as a new language. Iā€™ve said for a long time ā€œIf you build a framework, build tools to make it easy to use your frameworkā€. Language is obviously a core example of a tool. Another interesting point Martin makes is the traditional ā€œintimate relationshipā€ between scripting languages and C, but that the rise of JVM & CLR makes them impossible to ignore. Does the need to play well in a managed environment hinder a C based language like Ruby when compared to a natively managed scripting language like Powershell? Finally, Martinā€™s ā€œjigger of 80 proof uglinessā€ quote made me laugh.
  • Politics 2.0 Watch: EJ Dionne says that DailyKos is doing for Democrats what Rush Limbaugh did for Republicans almost twenty years ago: mobilization. Josh Marshall points out that ā€œwhatā€™s happening today is vastly more participatory and distributedā€¦than anything happening back then.ā€

Where Have All the SOA Mashups Gone?

John Heintz responded to my serendipitous reuse post. Nice to see I misunderstood his opinions about how easy RESTful systems are to integrate:

I didnā€™t mean to imply that building RESTful system would lead to magical integration without any hard work. I can see how that came across in my post, and I guess I got the reaction I asked for šŸ˜‰

I get the feeling that John would be a good guy to have a beer with.

John spends most of his post writing about the SOA in the Real World book. Iā€™ve flipped thru it and Iā€™m familiar with the model (it is my old team after all) but I havenā€™t read it so I donā€™t really want to comment about the book specifically. But there were two things John mentioned that I did want to comment on.

First, at the end of his post John writes:

Can some of the constraints of REST be applied to SOA? Absolutely. I think an asynchronous, message-passing architecture with a uniform interface would be astoundingly interesting! Iā€™m not the only one: see MEST, AMPQ, and Erlang.

This goes back to a REST question I asked two months ago: is it still REST if you donā€™t use HTTP? Iā€™m guessing John would say yes.

I might be going out on a limb here, Iā€™ll bet the core of Johnā€™s problem with SOA is how toolkits like WCF all but force you to build RPC style services that can easily be modeled as method calls. Thatā€™s certainly one of my problems with SOA. Tim Ewald said it best:

Itā€™s depressing to think that SOAP started just about 10 years ago and that now that everything is said and done, we built RPC again. I know SOAP is really an XML messaging protocol, you can do oneway async stuff, etc, etc, but letā€™s face it. The tools make the technology and the tools (and the examples and the advice you get) point at RPC. And we know what the problems with RPC are. If you want to build something that is genuinely loosely-coupled, RPC is a pretty hard path to take.

If SOA == RPC and REST == loosely coupled messages, then Iā€™ll start growing dreadlocks right now. Frankly, as Tim says, I think itā€™s a problem with the tools (Iā€™m looking at you WCF) and not the underlying architecture, but how many people can distinguish the architecture from the tools? Not many, Iā€™m afraid.

Second, John asks an interesting question:

Where are the SOA mashups?

Thatā€™s easy! Theyā€™re inside the firewall where you canā€™t see them! šŸ˜‰

Seriously, Iā€™m not sure about ā€œSOAā€ mashups, but Iā€™m working with what you might call a huge ā€œenterpriseā€ mashup system inside Microsoft. Our Enterprise Data Integration Services push around massive amounts of data to downstream systems. There are over fifty datasets in production, each with scores of tables, millions of rows and hundreds of subscribing systems. One example, our Products dataset, has over 100 tables and nearly 300 subscribing systems.

Is it ā€œservice orientedā€? No, but then again it was originally developed ten years ago on SQL 6.5. But is it a mashup? Is it an ā€œapplication that combines content from more than one source into an integrated experienceā€œ? Yep. Is it easy to work with? No, but guess why Iā€™m involved? Weā€™re looking at ways to ā€œmodernizeā€ the system. Am I going to build RPC style services as part of this modernization? Hell, no.

So John, am I right or wrong about that beer?

Morning Coffee 107

  • The last day of the service factory workshop was much like the second, primarily focusing on stuff p&p built to integrate GAT and DSLs. We also got a briefing in whatā€™s coming for factories after VS08 (canā€™t blog about that). We ended with a look at the DSL Editor Power Toy, which provides additional views on a given model and allows you to completely replace the graphical editor with a Windows Forms UserControl. I wonder if you could use ElementHost in order to build a WPF based editor?
  • Finished the last Harry Potter book last night. My wife finished it last week but kept quiet about it until I got to the end. No spoilers here, but I wasnā€™t exactly surprised by how it played out. I wonder what J.K. Rowling will write next?
  • As promised, Silverlight 1.0 RC and Silverlight 1.1 Alpha Refresh were released last week. Also finishing out this beta wave were Silverlight 1.1 Alpha Tools for VS08 and a new preview of Expression Blend 2. Scott Hanselman has all the details on all the releases.
  • In one of his articles on LINQ to SQL, Scott Guthrie mentioned the LINQ to SQL debug visualizer in passing. Now, he drills into that feature in more detail. Apparently, this isnā€™t a built-in feature of VS08 ā€“ it has to be installed separately. Make sure you do that, this seems like a must-have extension for LINQ to SQL development.
  • Jeff Atwood is worried that he spends more time talking about programming than actually programming. Thatā€™s exactly why I left evangelism to join MSIT.
  • Iā€™m still way behind on blogs, but if I donā€™t post this soon, itā€™s going to be an afternoon coffee. Iā€™ve also got this day job thing that Iā€™ve been away from for several days. So more old news tomorrow.