May 28, 2007
@ 10:03 AM

Last week there was a nasty "blog-war" between two sets of bloggers I really enjoy reading. It was kind of dumb and unproductive, but things more or less of worked out in the end. All I can say is that talking smack doesn't fix anything.

One of the things that I did not see addressed in any of the noise (well, Sam kind of called this out in his first post) was how P&P's stuff is really helping make things better for teams not made of Ayende's and Jeremy's - and not so much from the tools or the frameworks themselves, but from the example they set.

I think of the P&P team as kind of the clutch between the ALT.NET world and the rest of the .NET developer world. The rate at which change and new ideas come out of the ALT.NET world is a little tough for most developers to follow. Right now, the clutch is getting burned. It sucks that the P&P team has done a lot of really cool things and not really been recognized much for their efforts, but that's the nature of being a clutch. What did they think was going to happen?

I personally spend several hours a day reading weblogs, learning, and trying to keep up with things. I do this because I enjoy it, not because it's part of my job. Most of the developers I have met are not interested enough in their jobs to sacrifice time with family, hobbies, friends, etc.

So if there was no P&P team, what would the clutch be? There is no equivalent to this function in the open source .NET community. You're either on their bus or not. No one is going to come along and try to make things better for you if you don't get on the bus. It's unlikely that anyone would spend a great deal of time and effort to make things like wizards, recipes, visual studio integration, for things like Castle, unless the person doing the work derives direct and personal benefit from the exercise. What more could anyone expect? The P&P team is different because they _don't_ derive any (direct) benefit from what they do. Their success has nothing to do with how much better their jobs are because of the things they build. It's about other developer's productivity.

At the end of the day, there is no panacea. The best you can hope for is to learn some new techniques that you might be able to use. CAB is loaded with these. SCSF, WCSF, even EntLib are loaded with these. The source code is easy to read. Most developer's with an open mind and a few minutes here and there should be able to learn from this stuff.

I don't see much emphasis, even from the P&P team on this, aspect of what they do. Just downloading SCSF and running a few wizards isn't where it's at. Without understanding how this stuff is designed and how it works, it's just a big fancy alien artifact. Understanding how it works and how it's designed is everything.

Could any developer, using not special tools at all, build a smart client application like a CAB application, but simpler, and with less code? Absolutely. No doubt.

Could any developer pick up the code for CAB and learn something about smart clients? Absolutely. I have no doubt.

So if you've never looked at the source code for CAB or SCSF, what are you waiting for? Check it out. It's working code that's easy to read and well designed. Once that's done, if you still have time, check out Castle, StructureMap, ActionPack, and the tons of other cool stuff that works and has source code. If you still have time, read a lot of blogs and books about DDD and design patterns.


 
Categories: