don’t exist.
I just read a rant by Davy Brion that made me feel like I had to post my own thoughts on the subject. Davy did preface his post with an explanation that it was a rant, and I appreciate that, and it does mean I’ll cut him a lot of slack here. After all, I often rant with the best of them, and in some ways this very post is my own rant. However, there’s enough fallacies in his rant that I just can’t let it go.
One of the most important goals of every piece of guidance and tooling that they provide is accessibility. Lower-end developers should be able to use their products and their guidance and be able to build software of an acceptable quality.
Davy must never look at the Patterns & Practices guidance, then. This guidance is certainly not accessible to “lower-end” developers. Microsoft is so often criticized for ignoring the “higher-end” developers, but that’s simply not true. They just don’t always target them. Having worked in plenty of other development communities, for good or ill that’s true everywhere.
Please note that I’m not trying to give Microsoft a complete pass here. There’s a complaint hidden within this larger complaint that Davy is making that has some truth. Microsoft does have a problem with sometimes providing poor guidance, no matter what level of developer the guidance was targeted at. However, I think more often than not the community makes a mountain out of a molehill here. Often the “guidance” isn’t guidance, but simply code of questionable quality written by a Microsoft employee, or is sample code meant to illustrate a very narrow and specific point which would be lost if enterprise level best practices were followed, or any number of other scenarios. Then there’s areas where there’s simply debate as to what “best practices” really are, where it’s fine to disagree but it’s not really black and white as to whether or not the guidance provided is “bad”.
There is a huge difference in quality between the higher-end .NET developers, and the lower-end.
Absolutely! But what’s being inferred here is that the differences are not so great in other developer communities. Having worked in a very diverse set of communities, from mainframe developers to Windows developers to Unix developers, from .NET to Java to C++ to Ruby to Python to PHP to ECMA Script, I can tell you that this is simply not the case. The difference in quality between lower-end developers and higher-end developers in all of these communities is huge, and the lower-end developers far outnumber the higher-end developers across the board. Sorry, greener pastures don’t exist.
I found it extremely telling that Microsoft is capable of putting resources on products like WebMatrix and LightSwitch (both of which are targeting the very-very-lower-end developers, or even non-developers) while at the same time, they are severely cutting back the resources for projects like IronRuby, IronPython and the DLR (which drew more interest from the higher-end developers than the lower-end developers).
I share some of Davy’s sentiments here. However, I know that this is irrational. First, WebMatrix and LightSwitch aren’t really bad products. They target a far different audience then what most developers, much less higher-end developers, fall into. However, that audience is real, and has always existed. I share frustration over this… I’ve had to “maintain” and “rewrite” using proper development tools and methodologies more than my fare share of programs written using these types of tools, and it’s frustrating and painful. However, I’m experienced enough at this point to acknowledge that these “small, quick, dirty” applications written by non- or low-level developers using RAD tooling provide real business value and meet a real need.
The apparent cutting of IronRuby support/development funding really annoys me, and I think is a terrible mistake. However, I highly doubt there’s any relationship to this announcement and the WebMatrix and LightSwitch announcements. It’s just coincidental timing, and not any indication that Microsoft is changing an emphasis towards more low-level developers.
My rant (and please note this is not directed at Davy): I’m growing sick and tired of the negative tone coming from many in the .NET community, especially those in the blogosphere who consider themselves “top tier” .NET developers. To listen to them, the .NET community is entirely populated by idiots, who are idiots because Microsoft makes them that way, who will never learn because Microsoft doesn’t want them to learn. Further, according to them, Microsoft tools are always the worst possible tools you could choose to use. Without conviction, they tell you that this is a “.NET/Microsoft problem”, and that all other development communities are so much better. Well, I’ve worked with and in those other communities, and if you really believe that’s true, do the .NET community a favor and try those other pastures. Like the cow from the fable, you’ll find the grass isn’t any greener over there, and maybe you’ll learn and grow from that experience and come back to help make our community better.

for the record, i do know about P&P… but frankly, i just don’t find their guidance to be good enough
That, is not the argument you made. As quoted, you were arguing that Microsoft always writes their guidance for the lowest-level developer, and whether or not the P&P guidance is “good enough” you can’t argue that it’s written for low-level developers. Sad as it is, a very large portion of the developer community is unlikely to be able to understand the P&P guidance, and there’s simply no way to argue it was written for them.
I do understand your frustration, and don’t begrudge you your rant. This post is NOT meant to direct criticism at you, though I do understand how it can be taken that way. I’m just also ranting, because I’m tired of hearing sentiments like this which are not entirely warranted, and are certainly nothing more than wishes for the mythical greener pasture. The occasional rant about it may be theraputic to the author, but it’s not productive, and there’s too many in the .NET community that seem to spend all their time ranting (not saying you’re one of them).
I agree 100% with you Bill. I came to .NET 1.1 after about 5-6 years in Java land (before that I was a Windows developer with Visual Studio and Borland Tools). Since I’ve made the switch I haven’t looked back.
I’ve stated this before and will re-emphasize. A lot of Java’s open source community comes from the fact that Sun didn’t provide a lot of needed tooling out of the box. In many cases if you wanted it you had to build it. Or pay 10000 dollars for it, your choice.
The original Hibernate project arose from the fact that EJB Entity Beans SUCKED tremendously.
To be fully honest, the .NET community is somewhat unique in the development world in that there is a single entity guiding the platform listening to the feedback of its constituents. I guess that’s why it’s so easy to blame them when it’s not exactly what you want.
BTW, it’s very easy to complain about the environment that you’re in where you’re forced to use the “fisher price” development process. It’s also funny that Davy compared it to the Matrix. A real high-end developer does things to change that reality. Morpheus, Neo, Trinity and the other denizens of Zion didn’t just go flying around in hovercraft fighting agents for their health. They put their necks out to make a change in the reality around them.
One of my favorite sayings is
“Change where you work or change where you work.” So you say you’ve taken the red pill. Now that you know there’s a different way of doing things, what are YOU going to do about it.
“Change where you work or change where you work.” Absolutely love that! *lol*