.NET Default Syndrome

Yesterday Rob Sullivan (@DataChomp); the local data magistrate in town announced he was leaving SQL Server for Postgres and Ruby. I applaud him for this move as it does take a non trivial amount of effort to leave something you have been working with in excess of 10 years for something you have only been looking at for about a year. I know he will do well in whatever environment he choses; because it’s about skill and determination; not about what product or platform you work with. But this isn’t about him and I’m sure he is disappointed about that.

Demis Bellot (@DemisBellot) made a long comment about Rob Sullivan leaving SQL Server and one that I feel bears repeating (but not by me) and must be seriously pointed out. So I’ll just wait here a minute while you go and read his comment. Go ahead I can wait just spinning bits here. But this is not about Demis either.

Done? If your are a .NET developer how did that hit you? It should have because I’m sure everyone is or has done just what he said; gone with the ‘Microsoft prescribed default framework’.

Before I go further with this post understand that I do enjoy working in .NET and I have been in .NET (C#/VB) for 10+ years myself desktop and web (mobile soon). I’ve worked in a small/medium business using .NET and PL/B (I know you never heard of PL/B no surprise there). I now work for a medium/large enterprise with .NET. I have nothing against other languages/platforms such as Ruby or Python and would like to really dig into them, but this isn’t about me.

This is about us; it is about .NET. It is about our work, play, and culture as a community of developers. This is NOT about Microsoft. I repeat this is NOT about Microsoft. They just may end up on the wrong side of the table.

We the developer community of .NET must pause and look at what we accept as tools to do our work and play. We must hold each other and those that provide framework tooling to a standard of use that currently does not exist on a wide enough scale to properly advance our platform.

The default framework tooling provided by Microsoft is great to get initially started; to learn a language; to get involved in a community and culture; to get an idea of what a solution should look like. But as time goes on we must grow into different tooling. Advancing our skills our applications and our solutions. To handle the increased features and decreased time frames.

It is the responsibility of the developer community to put the various .NET framework toolings in their appropriate place. To not allow the default framework to rule over most enterprises and small businesses long term. Should it exist absolutley, but should it be as widespread as it is now? No! We must thank Microsoft for this default framework that has allowed so many to get started so quickly and easily (yes this may be debated). But we must also assume our own responsibility of moving to other framework tooling once we have grown out of the initial solution.

We must seriously consider the frameworks that have been born out of frustration with the status quo. FubuMVC, ServiceStack, NancyFx, Dapper, Simple.Data, PetaPoco are only a few examples.

It is up to us; the community of .NET developers to discuss with our colleagues about a serious change in framework toolings. Not to another platform, but just to another framework. Fear need not be involved as your current knowledge would work well in the new frameworks. Excitment, challenges, easier testing, faster delivery, and easier maintenance await us in these other frameworks. Why? Because someone else was in your place and became frustrated; thinking ‘Why is this difficult?’ and did something about it.

Platforms such as Ruby and Python don’t have the Master Control Program to provide a default framework. It had to come about by the community. And the community is tenacious about doing it well.

It will be difficult, and the timing may have to be right, but we must do this. We must discuss and be willing to try and to learn to communicate and to grow and to advance. Lest we continue down the path of the .NET default syndrome.

–Sometimes I surprise myself with what comes out of this grey matter. Sometimes I wonder if I have any at all.