The last couple of months I read a couple of blog posts from notable .NET engineers that they’re leaving the .NET ecospace for various reasons. Even people I know and respect very much are heading out for new technologies.

While I perfectly understand some arguments of the abovementioned, I do have a slightly different view on this whole topic of technology switching. I personally believe that success is not a matter of technology but a matter of people. Whatever shiny Ruby, Node.js, Scala, C, Linux, OSX, iOS, Python, Android, PHP, WinRT, NaCl technology you’re using. It doesn’t matter. You can do crap and bullshit as well as shiny cheesy nifty things with any Technology.

Having this in mind, I want you to know that I’m pretty much a technology-agnostic person. I get my stuff done. With Linux, with Windows, with .NET, with Ruby – and even with things like paper and pencil.

I think many people leaving the .NET ecospace made very valid points. I respect them for their decision and I’m pretty sure they will do great stuff with other new technologies as well as they did with technologies they were using before. Yet, I lately got the impression that the topic was burdened a little with a “negative karma”. There might well have been destructive arguments or at least a notion of disrespectful, angry, harsh way of saying things.

This blog post is to add another, yet surely incomplete perspective on the .NET technology and the community surrounding it. It’s just about to signal a simple message: “Let’s think positive and look at eachother with respect”. That’s it.

Having said so much in front of a simple listing, I think it’s time to finally introduce you the list I’m talking about all the time. I made my mind about what I personally think is cool about the .NET technology. Surprisingly, I got many things I pretty much like about the .NET ecospace. I sorted them by “level of importance” (to me), picked the top five and just wrote a couple of words for my reasoning. So, here it is.

Top 5 reasons to stick with .NET

Here are my top 5 reasons why using and working with .NET is fairly cool.

Nr. 5: Microsoft

Yes, you read correctly. Microsoft has made it into my top five why I like using .NET. The reason is dead simple. Microsoft “invented” it. Apart from Microsoft being bad at many other things, Microsoft did plenty of things right as well. One thing, obviously, is the .NET Framework itsef. The complete CLI, CLR, CTS and CIL make up an awesome managed execution environment with great capabilities.

However, it’s not only the simple credit to creator here. Microsoft continued to develop and support the ecosystem with the DLR, with research, new languages and supplementary products. In the last years, Microsoft even opened itself a little more towards the OSS community and got more open minded.

Yes, there’s a lot of things what Microsoft may have done far better. Yes, there’s some things what Microsoft should not have done at all. But, there’s as well a few things Microsoft did get right. And there’s a couple of things where Microsoft did an awesome job.

Nr. 4: Diversity & Variety

Again, this might not be a very obvious argument at first place. Nonetheless, I find the .NET ecosystem to be surprisingly diverse. You meet a lot of different people with different mindsets, different skills and different areas of interest. From enterprise developers doing BI-SQL-Server stuff, web developers going crazy with ASP.NET MVC, desktop application developers up to game devs using XNA. A broad set of usages makes .NET attractive to me as well.

Second, it’s not only the variety of usage, but the variety of people and cultures working with the technology. The fact, that in .NET Community a web nerd regularly meets up with the enterprise guy alongside with the powershell sysop is quite nice actually. Especially when you consider that the community sticks together and manages to handle and leverage this diversity.

Nr. 3: C# (CSharp)

This one is obvious. From my top three ranking, the CSharp language is on bronze. C# is big step. As a language itself, as well as when it comes to .NET development. C# makes OO-design and OO-development much more comforatable than with many other languages. C# is a leading edge multi-paradigm programming language.

One honorable, very high value of C# is the progress and development of the language itself. From version to version, C# got features which most of the time not only made sense, but were evolutionary as well. Generics, Linq, Lambda, Extension Methods, Dynamic and soon Async/Await. Comparing with other languages in the field, the C# lifeline reads pretty cool. And guess what: It’s even pretty cool to use all those features.

Nr. 2: F# (FSharp)

Ranking on second is FSharp. Yes, FSharp. FSharp is an awesome language. I’m very thankful that Microsoft Research did such a cool job and managed to develop a language favoring the functional programming paradigm. Combined with the big and diverse .NET Framework, FSharp not only is the new kid of the block here. FSharp is a shift in how functional languages will be used in everyday computing.

I’m quite new to the FSharp game. Yet, I’m fascinated and thrilled of it. It makes me rethink on how to solve problems as well as see, how cool it can be to embed a functional language into the .NET ecosystem. FSharp will most likely change every aspect of the framework for the better. Although I haven’t learned the language to its full extent yet, I’m quite sure that C# and F# will be equal partners when it comes to develop great software.

It might well be, that once I learned F#, I’ll want to learn other functional languages or styles as well. I might well be, that I might stick with C# or other imperative languages as well. It might well be, that I use both and enjoy both. Let’s see.

Nr. 1: Mono

The winner and the number one reason why working with .NET is cool, is: Mono.

I can’t express in a few sentences what great gift Mono is for the .NET community, the .NET development and the .NET future. Mono made many things possible we all wouldn’t thought could be possible. Mono contributed solutions and products we all are using on a daily basis. Even more, Mono is even ahead of Microsoft in particular areas, such as CAAS or device targeting. Mono made Cecil, MonoTouch, MonoDroid and many other cool things like Unity possible.

I’m working with Mono since around two years now. At the beginning of the last year, I decided to completely switch my personal .NET development to Mono. I even had a commercial project with Mono. During this time, I learned a lot about the .NET Framework, the class libraries, the Mono compiler and the “Monoid” way of software development. I’m very thankful for all what I have learned so far and I’m looking forward to learn more and contribute to the Mono and OSS comunity.

Please, .NET developers, contribute to Mono.

Please, .NET community, use and enhance Mono.

Please, Mono, continue to be so awesome.


(c) 2000-2012 ilker.de - Creative Computing.

For any case of inquiry regarding this document, you can always contact the website owner.