This blog post has been a long time coming. I initially started doing web development using ASP.NET and C#. I was honored to be given MVP distinction by Microsoft for the years of 2010 and 2011. I wanted to wait until that had expired before commenting on my departure from the world of .NET development.
I started my career within the .NET community, and my posts of late have been devoid of Microsoft references. I can only imagine that folks that enjoyed my "Web Forms to MVC" other C# posts are wondering where the love was lost. There is no love lost, I will be forever grateful to the .NET community for how they helped me get where I am today. There are several reasons that I no longer do .NET development professionally. I will try to explain them in this blog post.
First things first.
I have to get out the wonderful things about .NET development that I experienced on the way. The .NET community is extremely warm, and welcoming. .NET development has the highest female : male ratio in development I have seen. The reason for this is obvious: the people. They welcomed me when I was new, they helped me learn many things. I can't thank them enough.
The barrier for entry was low, there were few "well actually..." and more "welcome!" I was actively encouraged by my peers to contribute. I still call many people "friends" that I met back there. I hope to emulate some of the mentorship that I found back there with others in the future.
The Angry Rant
I have seen many people "quit" the world of Microsoft development. It usually draws out into a long thing with a Twitter battle, and angry comments, and a throw down to the teams that don't care enough about supporting their developers within Microsoft. The tools are bad, the direction of the languages are crazy, their support isn't fast, someone is a jerk, etc. It always calls me back to a time of message boards and people quitting the internet.
There is a primary disconnect with people that blame individuals, or direction, or other such surface issues, there is a failure to understand the business of Microsoft as a company. Microsoft makes money working with Enterprises. Microsoft answers to shareholders. Therefore, C#, F#, ASP.NET, and all other Microsoft frameworks/languages are a for profit operation. Yes, I am aware that the majority of their income does not come from these tools, and not even from $10,000 MS SQL Server licenses. However, the responsibility for all their employees, all the departments, and ultimately all the initiatives is to answer to their board.
Developers can not rationally expect this to lead to more perfect tools and a better community. Money buys you a lot of resources as a company, but, ultimately, your driving force is apparent on what you create.
What this has to do with me
Ok, well, Microsoft supports me as a developer. Pays for me to come visit them, eat on their dime, and I even get these really sweet jackets. Why disrupt something so choice? For me, it comes down to my fundamentals as a person.
I believe in the internet. I believe in people. I believe that people have created something beautiful, and it's up to us as developers to build and grow it.
Being a software developer in this age is a privilege, something the world has given me, and a responsibility.
I believe in open, I believe in being motivated by what is best for the web, and not what is best for my company. Making that decision over and over again has cost me a lot of money, and many perceived "opportunities" but my soul remains intact and I believe I am contributing to an amazing time in history with my fellow (wo)man in mind.
JavaScript is free. JavaScript is open. JavaScript is built by people that love the same things I do, and only answer to this community, their consciences, and what drives them.
For me it was undebatable that this is where I wanted to be.
The People
I know many people that are not only .NET developers, but work to build the related languages and frameworks from within Microsoft. I don't consider them sellouts. I think they are making their difference where they can, and want to. I am doing the same. I respect them not only as developers, but as people, and friends. I am eternally grateful to them for giving me the introduction to community and web development they did. I look forward to continue down the same path, building web one link at a time.
With MS betting a lot on HTML 5, JavaScript and JQuery you just might be able to get best of both worlds :)
ReplyDelete(But I get your point)
Wow you are really right. Open Source or Open is the future for all of us who have open minds. I really liked your idea and even i always thinking like this.
ReplyDeleteMay be with experience i also should think about JS and other open stuffs :)
Good luck on your move.
Agreed!!!
ReplyDeleteWell played, Ms. Chipps. I think the good folks at Xamarin are helping us get a lot of "best of both worlds", but you're right. The pure fact is you can do the same things with open source tooling that you can with Visual Studio. MonoDevelop is coming along alarmingly well (the latest build is quite nice) and mono itself is production ready today (we have been using it for quite a while).
ReplyDeleteI could not agree more with you about appealing to a board. To their defense, they've built this gigantic machine that has so much momentum built up it would be impossible to stop it. I like the direction they are going with a lot of community related outreach (actually open sourcing is huge in my eyes).
Maybe one of these days we won't even need these kind of posts. Utopian tooling in the open source world, I hope, will be here sooner rather than later. One can only hope...
Good read.
KG
JavaScript is a hoot. I've been back and drowning in it for the last six month, both in the browser and in Node.
ReplyDeleteI would like to hear you elaborate on the soul damage though. I assume you mean that you were presented with profitable opportunities that you found morally wrong. Can you talk about those situations and the forces at play in them?
@Chris - Mostly what bothered me is the decisions that didn't make sense, and the pandering to corporations. Visual Studio is such a beast, full of all these fancy acronyms, when really all we need is something that allows me to edit and loads under 5 minutes. The tools are created as an abstraction from the lowest level of development, purportedly to make things "easy" but they encourage poor practices. IMO, Microsoft is not the only offender here. I'm doing some Cocoa development for a personal project currently, and while much faster XCode is also a beast.
ReplyDeleteNicely said.
ReplyDeleteI read this a bit as "server side development keeps pushing me towards enterprise development, and client-side development is much more enjoyable." True?
I think there's a range of technology "heaviness" on any major platform, be it .NET / Java / client web dev / etc. Two developers working on any of those stacks might have very different experiences depending on their individual projects, the companies they work for, and I'm guessing the region. It sounds like you've kept running areas where you felt pressure to use heavy enterprise systems, and many people (myself included) would generally prefer being disolved in boiling acid. I wonder if it's an NYC thing?
@Jon kind of, you are hinting at where my next post is going. :)
ReplyDeleteI agree about the heaviness and enterpriseyness in many serverside languages, however, Ruby, Python, and a few others still have my trust that they intend to produce what's best for the web.
WinRT has a large heart for JavaScript (and you can leverage your .NET know-how), why abandon ship at a time like this?
ReplyDeleteI'm having a hard time understanding where the mutual exclusivity is between .NET and JavaScript. Whether you use ASP.NET, Rails, or Node as your backend, the more JavaScript-centric your apps are, the less that server-side framework has any impact on what kind of client-side JavaScript you can write.
ReplyDeleteOnce you begin writing your UI code primarily in JavaScript, it's actually quite nice to have a very fast backend acting as an API for your client-side code to consume. I find that this emerging state of affairs marginalizes a lot of the benefits that come with platforms based on dynamic languages and accentuates the strengths of languages that are faster at runtime, like C#.
Interesting post. So, In what technologies have you decided to specialize?
ReplyDeleteI will follow you. You are writing attracting.
ReplyDeleteThanks.
Sara,
ReplyDeleteYou sound like someone who works at Google. Do you? Google claims to advocate for open source, and does so until it doesn't fit their business model.
Also, I'm wondering if you were unhappy with the way MS was proprietizing JavaScript with WinJS in Metro.
Good post, and I admire you sticking to your guns.
D
.Net development has provided me great profitability as a developer. With the demand of .Net solutions, a lot of people are now looking to hire the services of a competent .Net programmer.
ReplyDelete