Atlas Brand View, Wabi Sabi … and DevHawk?

Tanya, my cohort on the Architecture Strategy Marketing team, has finally – after much promising and subsequent delays – starter her blog. So far, just she’s just written a hello world post where she explains why she named her blog “Wabi-Sabi”.

Of course, long time readers are probably wondering: “Did he just say ‘Marketing team’?”

Yes. Yes I did.

About two weeks ago, I was re-orged to be reporting to Norman. While you might expect me to be displeased about this, I’m really ok with it. First off, I was acting as the marketing director for about six months, so the fact that we now have three people doing marketing instead of just me is a huge bonus. Secondly, while I was acting as the marketing director (badly I might add) I was in total firefighting mode – no opportunity to do advance planning whatsoever. Now, I have the opportunity to focus on doing a great job on a few things well (like the TechEd Architecture track) rather than doing just enough to keep a ton of things from completely falling apart. It’s taken a while to shift gears, but now I spend more time doing and less time running around like a chicken with my head cut off.

Finally, my move to the marketing team is inherently temporary. Yeah, it’s fun while it lasts and I’m learning a ton, but don’t think this is a long term career change. Before it even happened, Adam (head of Architecture Strategy) explained that he expects me to be over on the architecture side of the house “soon”. Norman and I have already started planning that transition.

So get your “marketing slime” digs in while you can! (Apparently, we marketing slime prefer the term “marketing flacks”.)

TechEd Session Triage

One of the reasons blogging has been a little light around here recently is because I was prepping for the TechEd Session Triage. Basically, all the track owners figure out what sessions they want on their own then come together for an entire afternoon to present their sessions to each other. Turns out there is often overlap with other sessions in other tracks that need to be worked out, suggesting changes to titles and abstracts and other wise cutting up. For example. I’m sitting next to Becky who owns the Connected Systems Infrastructure track. We had several sessions in both the CSI and ARC tracks that have caused changes and cuts. We actually got the ARC, CSI and DEV tracks got together earlier this week for a “pre-iage” which means today went pretty smooth for the ARC track. Not that it felt like things were going to go smooth running around this morning. Typically, the last 24 hours before triage are a flurry of emails with last minute suggestions. This year – no exception. But now, at least it’s done.

DSL Toolkit Known Issues

Jochen just posted a list of known issues for the Dec 04 CTP release of the DSL Toolkit. I have not had enough time to play with this. Anyone know where I can get 3-4 more hours a day? 😄

DSL Toolkit Walkthru

Jochen and Stuart both blogged that the walkthrus for the December release of the DSL toolkit are now available for download. Given the relative lack of documentation, this is a good thing.

Concurrency: Next New Major Language Feature?

Several people have pointed out Herb Sutter’s great article on concurrency entitled The Free Lunch Is Over. When I blogged last week about new possible features of “full-grown” OO languages I mentioned dynamic typing but I didn’t think about concurrency. I think Herb is right: “programming languages…will increasingly be forced to deal well with concurrency” as applications get more CPU bound. Maybe I need to take another look at Comega (or Cw). Cw extends C# in two areas – data typing/querying and concurrency. The concurrency extension used to be called Polyphonic C#, but the name got changed when it merged with Xen/X#. (BTW, there’s a new Cw release (v1.0.2) but no specifics as to changes other than no longer needed VS.NET 2003 to be installed in order to use it.)

Cw adds the idea of asynchronous methods and something called chords – sets of methods with the same method body. The chord method body in only executed when all the associated methods have been called. In the simple buffer tutorial, the buffer class has a synchronous Get method and asynchronous Put method. If you call Get before Put, it blocks until Put is called, then the method body is executed. If you call Put before Get, then the Put call returns immediately (it is async after all) but the call is queued so that when Get is called, the method body is executed immediately. FYI, the Cw docs have a variety of other tutorials of async methods and chords.

BTW, speaking of my post on full grown OO languages…My father suggested that I not jump to conclusions regarding the X-develop‘s support for what they term “toy languages or little domain specific languages”. In fact, Hans Kratz of Omnicore (which makes X-develop) had this to say:

This comment on our website was not intended to bash DSLs at all. Instead we wanted to make clear that the plugin API in X-develop is powerful enough to allow integrating support for “full-grown” languages without placing arbitrary restrictions on language complexity.

For a language developer/integrator this is a plus regardless if he wants to integrate support for a DSL or “full-grown” programming language.

Makes sense. Maybe I was just too sensitive to the use of the word “toy” so close in proximity to “DSL”. Sorry about that Hans.