not-so-kind things said about .NET culture.
Indeed, Ball, 36, who lives and codes in Kansas City, Kansas, is one of the people who says those not-so-kind things. He’s even been known to post them on his blog, Caffeinated Coder.
Okay, Russ, out with it: what do you really think of .NET programmers?
“The .NET developers are the American tourists of the software industry,” he tells me. That is, they’re unaware of the larger world, even intellectually incurious. All around them thrives an exotic and rich world of programming languages, but .NET programmers are often content to lounge at the tech equivalent of the Holiday Inn, snacking on delicious Velveeta cheese spread.
Wait, you’re not saying that .NET aren’t as smart as other programmers, are you?
Actually, no, not exactly. “People in the outside world know Americans who are perfectly intelligent and perfectly civilized, but the ones who are loud and obnoxious are easily noticed,” Ball says. “It’s the same thing with the .Net world. It’s a fairly small group who’s considered really under-qualified, but I think they’re more visible and more publicized.”
Contributing to this problem is .NET’s low barrier to entry. Visual Basic – from which many programmers come to .NET – is considered very easy to learn. Consequently, many business power users, who aren’t actually programmers, can code in it.
In other words, enter the clowns.
The real hard-core programmers – the C+ boys, for instance – glance over at these semi-techies with a distinct disgust. In their eyes, a .NET developer is like a bike rider who won’t take off his training wheels.
“So that’s the origins of maybe why there’s a little bit of animosity between Microsoft and non-Microsoft,” Ball notes.
And this perception, he admits, has a certain reality to it.
“It [the world of .Net developers] tends to be a very insular community. If you go into the Java or Linux world, it tends to be very multi-cultural. If you’re not a Microsoft shop, then you have a whole lot of language options open to you. You’re probably in a corporate environment where, if you want to use a particular language, everything’s a lot more accepted. You have a lot more freedom of choice.”
Ball notes that in a Microsoft shop (which he’s worked in for the last 8 years), the prevalence of Microsoft servers – and the comfort factor that the Microsoft corporate identity inspires with executives – locks developers into Microsoft-centric choices. Hence the insular nature of some .NET developers.
So does that mean that .NET developers don’t have the skill level of other developers?
Smart IT Columns
“I think if you took the top 20 percent versus the non-Microsoft programmers, they would probably be about the same exact skill level,” he says. “But because Microsoft has traditionally had easier barriers to entry for people in the business world, I think there’s probably a difference in the lower 20 percent, in their skill levels. People who are kind of dabblers in it, versus people who came from a computer science background.”
“To some extent, because of the low barriers to entry, there does exist kind of a small underclass of a hybrid between a power user and a programmer. Sort of a programmer-lite.”
Oh wow, that hurts – “programmer-lite.” Ouch.
Change Begins with One’s Self
Ball, though he remains a dedicated .NET developer, is working to broaden himself, to travel far afield from the walled world of .NET to the more diverse cosmos of many languages.
“There’s not a whole lot I can do to affect the stereotype,” he says. “But one thing I can do is to try to be a little bit more multicultural in the sense of learning more [programming] languages, doing a better job of preparing.”
Every language in every environment has certain strengths and weaknesses, he explains.
“In healthy programming ecosystems, new languages and supporting frameworks develop not only through innovation, but also by adopting what works well in other programming languages. Microsoft has long been criticized for ignoring well established approaches and tools to developing software. For example, Microsoft has only recently begun to incorporate basic support for unit testing, continuous integration, and Object Relational Mapping (ORM) – even though these feature have been available for years in the Java world (JUnit, Ant, Hibernate).”
“I think the new Microsoft MVC framework (model viewer controller) is a positive example of Microsoft trying to change this historic trend.”
Microsoft not only went out of its way to incorporate what worked well in other MVC frameworks, such as Ruby on Rails, Django, MonoRail, and Struts, but is also making it pluggable so that it can more easily be used with any external tools and frameworks, Ball says.
“In my view this is an acknowledgement that they have finally recognized the desire of .NET developers to have more freedom and to take a more vendor agnostic approach in how they build software.”
Better still, MVC, which is in beta, has been envisioned in a very open way, Ball says. It was unveiled at a small conference called the ALT.NET conference. (Another ALT.NET conference is coming up on April 18th in Seattle.)
“The conference was primarily put together by kind of fringe community within the .NET community who were…thought leaders, people who were critical of the choices that Microsoft makes in terms of not paying attention to what’s best in the industry.”
Smart IT Columns
These are individuals who desire a more pragmatic approach than the traditional .NET cloister.
“Instead of saying ‘I’m a programmer with a certain language,’ [they desire] to be more agnostic. They say, ‘I’m a developer. I want to use the best tools available, and in order to do that, I’ve got to be able to try all sorts of things, and be more of an international citizen.’”
International citizen. The phrase has a real ring to it. Who knows? Maybe the .NET community is about to become a very hip and worldly group.
Top .NET Blogs
The following is Ball’s list of favorite .NET blogs. (He freely admits he has left out some major thought leaders.)
This popular blogger is a .NET developer, but he usually writes about the human/social aspects of programming, and so he appeals to a wide cross section of audiences.
Also does a podcast (“Hanselminutes”) and has very popular tool list. Recently went to work for Microsoft.
One of the more popular and active bloggers on Codebetter.com, which hosts a dozen prominent bloggers and has over 20,000 subscribers. He seems to be the most active, and often writes about architecture and software best practices.
A prominent .NET open source advocate who recently went to work for Microsoft.
Creator of “the Regulator” Regular Expression tool. He writes extensively about Agile and Test-Driven Development.
Creator of Rhino.Mocks. Prolific blogger who writes about a variety of topics, including Domain Specific Languages, NHibernate (.NET version of the Hibernate ORM framework), and IoC containers. He is considered a thought leader when it comes challenging standard Microsoft approaches and tools without actually abandoning the programming environment.
A Codebetter blogger who’s writing book on the new MVC framework.
An organizer of alt.net conferences, Laribee coined the phrase Alt.Net.
A developer and prominent trainer who writes and teaches about a variety of best practices in .NET.
Creator of subsonic framework and also a vocal open source advocate. Recently went to work for Microsoft.