Bigotry and Software

This may sound like it’s a post about race/gender tensions in the industry. I’m not quite ready to tackle that topic just yet. What I’m talking about is language/platform bigotry. And to me it’s as idiotic as cultural bigotry. I’ve sat back and listened to various arguments against Windows and Microsoft products for years. Sometimes when I see that the person actually would be open to logical discourse, I will engage with them. Many times it’s not even worth discussion: they are as blinded by unmitigated hatred for all things Microsoft as a neo-Nazi is toward…well practically everyone but themselves. I used to write it off as some kind of technology non-conformist club. Then I saw this post on the expensify blog.

I’ll save you the trouble of following the link by summarizing it here: anyone who uses the Microsoft platform for development can’t possibly be a good developer or the chances are very slim that they are. Let’s look at his reasoning, item by item with a clear head. Actually the argument is so full of metaphors it’s hard. Something about .NET being the McDonald’s of the development world and he wants a 1.7 oz. burger instead of a 1.6 oz. burger (personally I’d have to question anyone who thinks a burger smaller than six oz. is satisfying). His argument is that .NET developers can’t think outside the box enough for the needs of a startup. He says that the .NET platform is designed for incremental changes not the revolutionary leaps that a startup needs. He argues that although .NET allows you to get started quickly, the framework makes it difficult to step outside of the scenarios it’s designed for. .NET development to him is a matter of clicking a few buttons and out pops a fully working application. He also argues that the .NET community doesn’t embrace open source. He also says that the majority of startups don’t use .NET for development (somehow implying that it validates his statement that .NET is not a good platform for startups). In addition he makes some claims that make it patently obvious that he hasn’t even used Microsoft platforms beyond surfing the web and making powerpoint slides (my notes in red):

Big things, like obscuring the networking stack under so many countless layers of abstraction that it’s virtually impossible to even imagine what bytes are actually going over the wire (ever hear of System.Net.Sockets). And a thousand other things in between: programming tools that generate a dozen complex files before you even write your first line of code (if only there was an empty project template in visual studio…oh wait there is now let me import the frameworks, create a global.asax page, write my web.config file, setup my MVC routes, add jQuery.js, and my CSS file, and a MasterPage now I can start writing code.), expensive servers that force a remote GUI terminal on you to do essentially anything despite a few keystrokes being perfectly adequate for everybody else (if only there were a way to remotely manage my windows server or some kind of remote shell) ,

It almost sounds like he’s complaining that .NET makes it convenient to do common things. Oh my God I wonder how good of a housekeeper that person is…they use a washing machine instead of scrubbing their clothes on a scrub-board in a tub of water. Gotta question how well that guy drives…his car has anti-lock breaks, power steering, and traction control. Even more pathetic is that everything he claims Microsoft tools don’t have IS RIGHT THERE! Now let’s discuss the rest of his hole-ridden argument.

First let’s talk about the “revolutionary” expensify application. It generates expense reports from online credit card statements. I’m sorry but that doesn’t quite pass my “wow” test. Revolutionary is a computer that can beat Jeopardy champions at their own game, or a $150 piece of hardware that enables gesture-based interaction, even a service that lets you do a git push and see your website running a few minutes later in the cloud. There’s nothing I’d call revolutionary about screen scraping a credit card statement and parsing it. And that’s what I really want to get to. Doing something that’s been solved already is the PERFECT time to pick a tool that does all the crappy stuff for you and lets you get to adding value quicker.

The argument that it’s hard to break out of the box on the .NET platform had more merit 3-4 years ago for web applications (Web Forms did require a lot of skill to implement new controls or even override behavior on existing controls). And WPF wiped out that argument for the desktop more than 5 years ago. Today, that argument doesn’t hold water. Web or desktop, the .NET platform is all about doing the tedious work for you and getting out of the way so you can add your “ground breaking” changes.

Speaking of ASP.NET MVC, it’s open source. As is Mono (the .NET implementation that Attachmate is apparently killing). Iron Ruby is an open source implementation of Ruby for the .NET platform including full integration with Visual Studio. Hibernate, spring, quartz, and dozens of other open source frameworks have been ported to .NET. There are over 5000 open source projects listed on Codeplex as stable. MonoDevelop and SharpDevelop are open source IDEs built on and targeting .NET. To say that the .NET community doesn’t foster open source is either ignorant (as in not being aware) or deceitful (knowing and purposely pretending not to). Either way, it makes me question the technical acumen of someone making those statements.

Moving on to the argument that most startups don’t use .NET. It’s very easy to see why. When given a choice between two platforms, most decision makers in a startup will choose the “free” one. Think of it this way…if I’m a college kid making Facebook, I probably don’t have 10000 dollars to buy an MSDN subscription. In addition, most web hosts charge a premium for .NET hosting. What it boils down to is that the low adoption rate for .NET in the startup world is a sign of frugality, not a reproach of the technical merit of the platform. Microsoft is doing a lot to lower the barrier of entry. The Dreamspark program provides free MSDN subscriptions to students (this subscription includes usage on the Azure platform). Bizspark provides 3 years of MSDN Subscriptions for multiple developers to startups plus corporate use licenses for Windows, Office, and other Microsoft apps for running the business. While it may be true that today .NET isn’t the dominant platform in the startup community, Microsoft has removed the cost barrier. If more people are aware of these programs, let’s see which one they choose.

Finally, we come to the argument that .Net experience on a resume makes a developer suspect. This is why I used the term bigotry. It’s very little different from saying that a black person or a woman will have to work harder to prove themselves worthy of a job with your company. Of course choice of development platform isn’t a protected status; but it is a POOR discriminator for what makes a “good” developer versus a “bad” developer.

As a startup I want to know what kind of experience a developer has had with scale (unless you have no intention of being successful, it’s a bit important). Using Ruby, PHP, or Java doesn’t guarantee you know anything more than the next guy about scalability. Using .NET doesn’t mean you know any less. Also important is how well the candidate is at algorithms and optimization (again a 1 second query over ten thousand records turns into practically 2 minutes over a million). Ruby, PHP, and Java doesn’t make you any better at this than .NET. So basically the things that matter – algorithms, scalability, creativity – the stuff that makes your startup different is not impacted by choice of platform. In fact, I would be more impressed by a developer who found creative solutions to work around limitations of the .NET framework.

I don’t care what platform you’ve used, I care about what challenges you’ve taken on. I care what attitude you take about your profession. Do you punch in 9-5 and don’t think about computers after (nothing inherently wrong just obviously not the right mindset for a startup) or are you so passionate that you write code just to keep your skills sharpened like a razor.

Sidenote: Many corporate developers take the 9-5 attitude. Microsoft is the leading platform in the corporate world. Standard corporate development doesn’t break outside the box. I actually think this is what he’s trying to say but instead of saying that he makes flawed arguments about the technical capabilities of the Microsoft stack. .NET isn’t allergic to Open Source…corporate and government IT is allergic to Open Source. There are many .NET developers who don’t follow the corporate mold. You’d be better off looking for and hiring them than some guy who shuns Microsoft because all the cool kids are on Macs programming Ruby.

I care that you’re not some know-it-all *** who thinks that you’re the smartest programmer on the planet even if you are (software is a team sport, you can bring individual performers together all you want, until they learn how to work as a team, you’re not going to win a championship). And I definitely care that you take the time to actually research your assumptions before you make them, or that when you realize you’re wrong you’re man (or woman) enough to accept it. These things are more important to a startup than what platform you’re using.

That and having someone at the helm that actually has a clue of what he’s talking about.

Published Saturday, May 21, 2011 10:22 AM by Mike Brown

Comments

# re: Bigotry and Software

Thanks for discussing the aforementioned article. I agreed with some of the points in it but also share much of your sentiment.

Part of me would like to break out from the .NET world, and some of the newer frameworks like MVC potentially make this easier.

@long2know

Saturday, May 28, 2011 5:54 PM by Stephen

# re: Bigotry and Software

I have a post lined up talking about my decisions with .NET stay tuned :)

Saturday, May 28, 2011 7:17 PM by Mike Brown

# re: Bigotry and Software

The Amiga OS 4.1 is better than Windows 7 in every conceivable way.  Amiga OS has 100% market penetration amongst people who are running Amiga OS.  Amiga is much better than Windows, OS X, or Linux.  All twelve of the people who run the Amiga OS are smarter and better looking than those who run those other operating systems.

Thursday, June 02, 2011 9:29 AM by MrAmiga

Leave a Comment

(required) 
(required) 
(optional)
(required)