Davy Brion has posted a cri de coeur about how he feels about .NET development, and it’s sort of par for the course in certain circles. It’s also a bit silly.
One of the things he says is this:
“A lot of people simply don’t know that the quality of software that we, the .NET community, produce on average is really low compared to other development communities.”
He doesn’t specifically talk about Java, but I’m going to go ahead and assume that.
I’m a pure C# developer. I can read Java code, but I can’t produce it. Regardless, I’ve worked in numerous environments where I’ve worked with real Java developers. And what I can say from that experience is that Java developers are equally as capable of producing shit code as .NET developers.
When I was learning software development practices, because Microsoft wasn’t exactly in the business of promoting software patterns, I learned a lot by visiting sites like this. I think it is fair to say that, generally speaking, any random Java developer might know more about these sorts of patterns than any random .NET developer. Some people think this is a big deal. I don’t, but that’s okay.
However, my experience is that Java code sucks as much as .NET code as much as any other code because there is nothing about learning development patterns that ensures those patterns will be used properly.
I’ve never exactly worked with the mythical person who says “We implemented 21 of the 24 GOF patterns in our current application, we hope to get to all of them in the next one” but I do know of how people misuse them, in abundance.
Enter LightSwitch. It appears to be Microsoft’s latest entry into application tooling that allows business users to develop software quickly in the sort of drag and drop way that makes Alt.NETrs gag, because you know you won’t get all of the maintainability love (and whatever else) that we enjoy. Though I haven’t seen or used the tooling (I guess it’s being released in some form in a few weeks), I’m going to go ahead and accept that it sucks from that perspective.
What Alt.NETers continually don’t get is that businesses don’t give a shit about maintainability (unless they have too). They care about generating revenue.
It might be hard for people to accept, but millions, if not billions, of dollars of revenue has been generated building applications using VB6 or Access 2002 or Excel whatever. This is a fact. I’ve seen such applications. I’ve seen the fuckers built using VBScript for God’s sake.
As a ‘Craftsman’, I would never recommend that an application be built using such things, but you know what? If a business can gain time to market building an application that runs on crappy Excel macros, they not only do not care if I complain that I can’t use IoC, they *shouldn’t*.
LightSwitch, to me, looks like a less sucky version of tooling that doesn’t require Access. In that regard, it’s an improvement. As someone who wants to use BDD-style development on every project, is this something that I think I would like using? Hell no. When confronted with a real world business scenario where something like this builds revenue quicker and in a more sustainable way than what I would like, do I really have something to complain about? Hell no. You can call it ‘Fischer Price’ development all you want, but no one who is in a position to make decisions is going to give a shit.
If you’re a .NET developer, build your software to the ‘highest’ levels of quality/craftsmanship/whatever you like. The existence of LightSwitch should have *no* affect on you whatsoever. If that existence bothers you so much, go write Ruby or Java or whatever. No one will miss you.