- The biggest news of the week IMHO is Soma announcing the formation of an F# product team. Specifically, they will “fully integrate the F# language into Visual Studio and continue innovating and evolving F#.” Though Soma calls F# “another first-class programming language on the CLR”, I get the feeling there won’t be a “Visual F#” sku. Don Syme has more on the news.
- In other Soma announcement news, Popfly is now in beta. More details on what’s new on the Popfly Team Blog. I haven’t played with Popfly in depth, but I think it’s got huge potential.
- Scott Guthrie details the upcoming ASP.NET MVC Framework. Personally, I’m not building web apps much these days, so I’m not really invested one way or the other. Given the interest in this approach, it’s nice to see the ASP.NET team respond to the market, though I’m sure someone will complain that we’re trying to kill off the various open-source MVC Web frameworks that have sprung up.
- Over in Windows Live, they shipped a new version of Live Search Maps, upgraded WL Photo Gallery (which I’ve been digging) to support Flickr and shipped an update to WL Accounts which allows you to link accounts.
- The Clarius folks keep churning out great tools for software factory developers. The latest is the T4 editor, which brings intellisense, color syntax highlighting and property inspector support for Text Templating Transformation Toolkit (aka T4) files. T4 files are used for code generation in both DSL Toolkit and GAT.
- David Pallman (again via Sam Gentile) suggests there are only three choices for infrastructure architecture: None/Point-to-point, Centralized/Hub-and-Spoke and Thin/Bus. I get the first two, but his explanation of the third goes to far into the “magic framework” category for my taste. “Physically distributed but logically centralized”? That doesn’t make any sense to me at all.
- Fellowship of the Ring makes its way onto XBLM. Alas, not in HD so I’ll stick w/ my extended four hour DVD version thankyouverymuch.
Morning Coffee 119
Morning Coffee 118 – ITARC SoCal Edition
I’m not back on blog sabbatical, but between finishing my presentation and attending ITARC SoCal earlier this week – not to mention being sick – I didn’t have time to write anything. Normal Morning Coffee resumes tomorrow, here’s a summary of my notes from on my two days at ITARC.
Scott Ambler did the opening keynote on agile enterprise architecture strategy.
- He claims that success is more prevalent in the industry that people think, because the industry has a narrow definition of success. If you change (aka widen) the definition, the success rate goes way up! That’s not exactly useful, but he referred to an as-yet-unpublished survey on project success rate that should be up on DDJ “soon”. I’d like to see that raw data.
- While I agree with most of his points, Scott’s presentation style is very abrasive. For example, he makes the point that there is no one-size-fits-all process, which I couldn’t agree with more. But does he say it like that? No, he says “Repeatable processes? What an incredibly stupid idea!” even though the room is full of folks who probably think repeatable process is actually a good idea.
- Scott suggested that unit tests are the best way to specify requirements. I’ve heard this before from agile practitioners, but something nags at me about it. Certainly, having executable requirements is a huge plus. But how can you be sure they’re the right requirements if the stakeholders can’t read them?
- This keynote setup what turned out to be a major theme for the conference – traditional vs. non-traditional enterprise architecture. Or as I would characterize it: Industrial vs. Post Industrial architecture.
Simon Guest presented on user experience in architecture, which is his specialty these days. He lays out a UX model that was very compelling. I’m not sure if there’s a whitepaper version of this model (there should be) but you can see the model as he lays it out in powerpoint. I’ve seen Simon’s UX decks, but never actually seen him present it, so that was a treat.
I skipped Ted Neward’s session in order to take in something new. So I went to see Daniel Brookshier of No Magic talk about DoDAF – the Dept. of Defense Architecture Framework. I had met Daniel the night before at dinner and while No Magic primarily sells UML modeling tools, we seemed to agree that UML is most useful (in my opinion “at all useful”) when you imbue the vanilla models with custom semantics – aka you turn them into a DSL. So while I liked hanging out with Daniel, his DoDAF session did nothing except ensure I never work for the DoD. There’s no amount of money that’s worth dealing with the two dozen or so bureaucratic models that are all wholly isolated from anything that actually executes. Daniel kept saying how easy these models are to build. I’m sure they are, but that’s not the problem. Since they’re not an intrinsic part of a construction process, they won’t stay up to date. This was a very industrial approach – Daniel even stated at one point that he was “anti-Ambler”.
David Chappell did the second keynote on grid-enabled SOA.
- When did David join Oracle? I guess I haven’t been paying much attention to competitors since I moved to MSIT.
- There’s an article version of this presentation available, but I haven’t read it yet.
- For me, the best part of this presentation was him acknowledging that there’s a need for non-stateless services, something he has blogged about recently. I’m not sure I agree with his framework for stateful interaction, but at least he’s admitting that it’s needed. Now if I could only convince the Connected Systems Division…
- The rest of his talk was basically a sales pitch for the Coherence product Oracle recently bought. Basically, it’s a huge, multi-node, redundant, in-memory database. While I’m sure there are a few high-end problems out there – my immediate thought was travel and David mentioned SABRE is one of their customers – this is not a good general purpose solution, though David was positioning it as such.
My talk on “Moving Beyond Industrial Software” was after the second keynote. It was good, if sparsely attended. I’m doing it again @ the p&p Summit so I’ll post the slides and hopefully a recording after that.
I skipped the last session of the day to decompress, so the next session I went to was the day two opening keynote by Fred Waskiewicz, OMG’s Director of Standards. His talk, unsurprisingly, was on the value of standards – in particular, OMG’s standards. This was about as anti-Ambler, anti-agile, pro-industrial a presentation as you could make. I’d heard this spiel before, so I mostly tuned out. I did challenge Fred on his point that the UML models are at a higher level of abstraction than code. They’re not – they’re a visualization and they’re very useful, but they’re at the exact same level of abstraction as code. That’s why you can automatically generate the visualization in tools like Visual Studio’s class designer. Fred didn’t have much of a response to my question, though he did point out that some models like Business Process Models are, in fact, higher levels of abstraction.
Next was what I thought was the best presentation of the entire show, IASA Founder Paul Preiss on what architects need to know. Note, I’m not brown-nosing Paul here – I’m the guy that first decided to commit Microsoft as an IASA sponsor, so he has to like me even if I thought his session was crap. Paul talked about architect as a career, comparing it to doctors. He worries that he’s over-using that analogy, but software architect has much more in common career wise than it does with building architects IMO. I wonder where one might do their architecture residency? He also thinks of architects as “living governance”, saying that project managers answer to the stakeholders while architects are beholden to the stockholders. I like that approach to governance.
Finally, I attended Vince Casarez’s session on Web 2.0 in the enterprise. Vince is an Oracle VP and this turned into a sales pitch like David Chappell’s keynote did. I’m not sure what product it was, but it reminded me of QEDWiki from IBM that I saw at ETech last year, which isn’t a complement. If you’re going to build an enterprise mashup designer, is it just me or is “lots of code spew” a poor model. Why not go for something like Popfly or Pipes?
I left early the second day in order to get home before my kids went to sleep (which I failed at due to lack of naptime). Overall, the conference was pretty good, though a bit sparsely attended in part I think because they held it in San Diego. The Orange Country IASA user group is very popular, so I don’t understand why they didn’t just hold it around there somewhere. Live and learn, I guess. They did have to postpone the DC event until next year sometime. Here’s hoping I get invited to that as well as well as ITARC SoCal ’08 (note, that is brown-nosing a bit)
Throwing Gasoline on the Fire
Steve Vinoski has raised a bit of a flame war by admitting he has lost the ESB religion. Given that I’ve never been a fan of ESB’s anyway, there’s a lot there that I agree with. In particular I liked the description of “magical framework” middleware, blaming enterprise architects for driving ESB’s as the “single integration architecture” even though a single *anything* in the enterprise is untenable and his point that flexibility means you don’t do any one thing particularly well.
However, Steve goes on to bash compiled languages and WS-* while suggesting the One True Integration Strategy™ is REST + <insert your favorite dynamic language here>, then acts surprised that the conversation denigrates into “us vs. them”. When you start by saying that compiled language proponents “natter on pointlessly”, I think you lose your right to later lament the depreciating level of conversation .
All programming languages provide their own unique model of the execution environment. Dynamic languages have a very different model than compiled languages. Arguing that this or that model is better for everyone, everywhere, in all circumstances seems unbelievably naive and arrogant at the same time.
On the other hand, I do agree with Steve’s point that most developers only know a single programming language, to their detriment. One language developers often miss a better solution because their language of choice doesn’t provide the right semantics to solve the problem at hand. Developers could do a lot worse than learn a new language. And I don’t mean a C# developer should learn VB.
The most pressing example of picking the right language for the right problem today is multi-threading. Most languages – including dynamic languages – have shitty concurrency semantics. If you’re building an app to take advantage of many-core processing, “mainstream” apps like C#, Java and Ruby won’t help you much. But we’re starting to see languages with native concurrency semantics like Erlang. Erlang is dynamically typed, but that’s not what makes it interesting. It’s interesting because of it’s native primitives for spawning tasks. I don’t see why you couldn’t add similar primitives for task spawning to a compiled functional language like F#.
As for REST vs. SOAP/WS-*, I thought it was interesting that Steve
provided no rationale whatsoever for why you should avoid them. The more
I listen to this pissing match debate, the more I think the various
proponents are arguing over unimportant syntactical details when the
semantics are basically the same. SOAP is just a way to add metadata to
an XML message, much as HTTP headers are. WS-* provides a set of
optional message-level capabilities for handling cross-cutting
concerns like security. Past that, are the models really that different?
Nope.
For system integration scenarios like Steve is talking about, I’m not sure how important any of the WS-* capabilities are. Security? I can get that at the transport layer (aka HTTPS). Reliable Messaging? If I do request/response (which REST excels at), I don’t need RM. Transactions? Are you kidding me? Frankly, the only capability you really need in this scenario is idempotence, and neither REST or SOAP provides any standard mechanism to achieve that. (more on that in a later post)
I understand that some vendors are taking the WS-* specs and building out huge centralized infrastructure products and calling them ESBs. I think Steve is primarily raging against that, and on that point I agree 100%. But Steve sounds like he’s traded one religion for another – “Born Again REST”. For me, picking the right tool for the job implies much less fanaticism than Steve displays in his recent posts.
Morning Coffee 117
- Quick update to the DevHawk 2007 World Tour: I won’t be making it to the SOA & BP Conference. Riley’s having her tonsils out. As much as I’d like to hang with my geek peeps, family is the priority. But I can still make an evening event or geek dinner later in the week if anyone is game.
- Caps season-opening winning streak continues. Still 100% on the PK, though the power play is pretty anemic. As I said yesterday, it’s WAAAAY to early in the season to start bragging, but starting strong is much better than starting weak.
- Speaking of hockey, looks like the NHL Network is launching in the US this month (it’s been available in Canada since 2001). Also, NHL.tv is up and running. Those wishing to see Caps highlights can go directly to Capitals.NHL.tv. Unfortunately, if you want to see full games, you’ve got to subscribe to Center Ice or Center Ice Online to the tune of $150. But I don’t want to get “up to 40 games each week”, I just want the Caps games. Between the time zone difference and kids, it’s not like I have time to watch that much hockey anyway. Why can’t I subscribe to just the Caps games online for say $25 a season?
- Finished Halo 3 Sunday night. Fun game and a great end of the trilogy. Looking forward to what the newly-independent Bungie does next. Something tells me we haven’t seen the last of Master Chief. However, I do think Bioshock has better and more original storytelling. Mass Effect looks like it’ll be better still.
- Sam Gentile pointed out that his Neudesic colleague David Pallmann has posted a series of WCF tips. Several of them are right on the money like “Take Advantage of One Way Operations” and “Use a Discovery Mechanism to Locate Services“. However, I can’t agree with “Maintain a Service Catalog“. David warns that if you don’t, “The left hand won’t know what the right hand is doing.” Of course, that’s probably the case regardless of how you maintain your service catalog. And “Retry on minor failures“? That’s fine, if you’ve got an idempotent operation. Unfortunately, most non-read operations aren’t idempotent unless you take the time to design them that way. And most people don’t.
- Speaking of Sam, he’s blown up his CodeBetter blog and walked away from the ALT.NET crowd. I’ve not been a fan of this ALT.NET stuff since it surfaced – as Sam said, “ALT.NET is a divisive thing” – so I’m happy to see my good friend walk away from it.
- Speaking of ALT.NET, Scott Hanselman blogged about previewing the new ASP.NET MVC Framework at the ALT.NET conference. Like Sam, Scott thinks the term ALT.NET is “too polarizing”. I like Scott’s suggestion for Pragmatic.NET. Oh, and the MVC framework stuff looks cool too.
- Reading Dare’s description of OAuth gave me a distinct sensation of deja-vu.
Morning Coffee 116
“Looks like I picked the wrong week to stop sniffing glue”
Steve McCroskey, Airplane!
- So it’s been a while since my last post. Just over a month, not including The F5 High, which wasn’t “original IP”. Frankly, I just stopped reading pretty much cold turkey. I wanted and needed to go heads down on day job stuff for a while. Since I haven’t been reading, Morning Coffee is going to be a little cold while I ramp back up.
- The new NHL season is upon us, and the Caps are looking good so far. Obviously, they have the new uniforms, but they’re also out to a 2-0 start for the first time in five years. And in those two games, they’ve only allowed one goal and are 100% on the PK. It’s nice to see them start strong, but obviously there’s a long way to go. Here’s hoping the can stay strong all season.
- Speaking of staying strong, the wheels that were rattling last week came off the Trojan bandwagon completely this week. I’m not sure it’s as big an upset as Appalachian State beating Michigan but it’s close. What happened to the team that scored 5 TD’s in a row on Nebraska?
- Big news last week is that MSFT is going to release the source code to much of the .NET Framework. Scott Guthrie has the details. Frankly, between Rotor & Reflector, it wasn’t like you couldn’t see the source code anyway, so this seems like a no-brainer. But integrating it directly into the VS Debugging experience, that’s frakking brilliant.
- I haven’t had a chance to install the new XML Schema Designer (Aug 07 CTP) but I was really impressed with this video. The XML Team blog has more details. However, I’m not sure what the ship vehicle is. The CTP install on top of VS08 beta 2, but in the video they keep saying “a future version” of VS, implying that it’s not going to be in VS08.
- Dare is spending some time investigating SSB. I think it’s interesting that some of the REST crowd are starting to see the need for durable messaging. Dare argues that the features and usage models are more important than wire protocol. As long as it’s standardized, I don’t care that much about the protocol. Several of the REST folks mentioned AMQP. While I’ve got nothing against AMQP technically (frankly, I haven’t read the spec), but what does it say about durable messaging vendors (including MSFT) that a financial institution felt the need to drive an interoperable durable messaging specification?