Java Developers also suck, or why there’s nothing that bad with LightSwitch

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.

posted on Tuesday, August 10, 2010 9:58 PM Print
# re: Java Developers also suck, or why there’s nothing that bad with LightSwitch
Charles Strahan
8/19/2010 11:57 AM
Well said. I have to consciously remind myself that my clients wants to make money, not abstractions.

Here's the funny part though: this a problem shared only by a tiny fraction of developers. Words can't accurately capture how ironic it is that I spent the first couple early years of my career *convinced* that I needed to learn AB&C so I can impress XYZ Corp (and because I enjoy learning)... just to realize that none of their developers knew and/or used AB&C in any way (even though their job ad listed it as a required skill. when asked to define what they mean by "unit test", they mention integration tests involving solely their DAL). It's like some sick twisted joke; I totally caught the architecturitis bug, and now I'm a disillusioned, grouchy ALT.NETer. Damn you,!!! :)

# re: Java Developers also suck, or why there’s nothing that bad with LightSwitch
8/19/2010 6:21 PM
To be clear, I wouldn't mind it being a problem for more developers. I think I'm orders of magnitudes better as a developer because of, et al, and if it was up to me, I would do AB&C on every project at every client.

But, I also think that there are times when the demands of a particular project for a particular client mean you can't use all of the tools you might want to use.

For instance, I've worked in places where the use of open-source software is restricted because they have been sued for patent infringement, and they (probably incorrectly) think that using OSS opens them up to future lawsuits. Is it highly annoying to have to use Enterprise Library instead of NHibernate? Hell yeah. Does Legal care? Nope. Are they making money anyway? Yep. And they want developers who can somehow make a lot of those maintainability issues 'go away' when it starts to interfere with BAU.
# re: Java Developers also suck, or why there’s nothing that bad with LightSwitch
12/24/2011 1:43 PM
"what I can say from that experience is that Java developers are equally as capable of producing shit code as .NET developers"

Being experienced in both environments I can tell you this: it is a lot easier to shoot yourself in the foot with Java. You will find more CS backgrounds in the Java world, but that does not mean one environment is better than the other one.

As far as, patterns, architectures, and whatever "best practice" rears its ugly head as the flavor of the month; run for your life. Programmers should learn to think for themselves, if they can't, they should not program.

Post Comment

Title *
Name *
Comment *  
Please add 1 and 5 and type the answer here: