Peter Seale's weblog

I write about programming and don't take myself too seriously. Read my standard disclaimer. Follow me on Twitter at @pseale and be inspired.
Wednesday, July 06, 2011 5:01:48 AM UTC #

Microsoft MVPs, all aboard!

It’s like we were all reinventing wheels and barrels in .NET land in the past 5 years, when just on the other side of the island, people were beginning to wonder what is the best material to pave a highway with? … It’s like the Ruby community lives 3x faster than the .NET community, and has been for the past 5 years.


Why is it a pattern that, … people try out Rails, and they just never come back?


I’m very happy with the tooling I have at hand at this point. I can’t really say, right now, that I’m missing anything from my .NET development environment. Quite the contrary, actually; not having to cope with the lockups of VS, the non-sense behavior of TFS, the testing-hostile tools and frameworks, has been a blessing.


ASP.NET MVC is a fine framework. I just don’t feel like it is as productive as it could be.


…the above list hastily compiled off the top of my head.

There are no .NET developers

Other than that, I'd rather not spend time on [learning .NET at home]. It's not that i don't like .NET, but i just don't find it a very interesting space to be in anymore. There's very little innovation going on and the new things that the community and Microsoft are working on most often seem like either new libraries or frameworks to keep doing the same things we've been doing for years, or building things that other development communities already have for a while now. It also doesn't help that a lot of the people who used to be in the ALT.NET community seem to be spending a lot of their spare time learning new languages and platforms instead of pushing for improvement in the .NET community like they used to do.”


What if .NET developers stopped identifying themselves as .NET developers? What if they just considered themselves to be developers? I think we’d see a lot less, “how do we get Microsoft X to catch up with Y?” and a lot more “Let’s just use Y because it already does what we want.”

Seriously, the amount of energy being poured into playing catch up is saddening. Imagine if all of that effort was poured into the tool that’s already better at this.

There are no .NET Developers. There are only developers who have been brainwashed into thinking they can only write code in .NET.

Takeaways

  1. Ruby (Rails) and other non-.NET frameworks are crossing the chasm into the mainstream.
  2. Rails is a better platform. Every former .NET developer who has first tried, then written, about Ruby on Rails has reported it’s both more enjoyable and more productive. Every, single, one. EDIT 2011-07-11: ok, maybe I exaggerated. Ken has something to say as a .NET/Ruby guy who still likes .NET as much as/more than Ruby
  3. I’m sensing (and feeling) Microsoft’s .NET platform is stagnating, especially recently. Aside from multiple positive reports [1, 2] on the NHibernate rewrite, I have nothing to look forward to in .NET. And while I’m here, let me be the first to say: providing a new platform for Windows development excites me in the same way that iPhone-platform development excites me—that is to say, not at all.
  4. You don’t have to self-identify as a .NET developer. Instead, self-identify as a developer whose skillset is in .NET. Learn another platform (which is surprisingly easy) instead of investing extra effort in .NET. I happen to like the WPF project I work on, and my next project will probably be .NET (given my skillset), but there’s no reason I have to assume it will be .NET.

EDIT 2011-07-14: New Takeaways

There have been many, many comments over what I’ve written. My average blog post gets 0 comments. The median for blog comments here is also 0. The 75% quartile for blog comments: also 0. The 90 percentile mark for blog comments—you guessed it—also 0! So it was something of a shock to see people are actually reading this post, and commenting or blogging responses.

And very few of them seem all that happy with my post.

Many of them assume that I am a Ruby zealot, or that this post was about “Ruby vs. .NET”, so I must have written something poorly above. I don’t know. My new takeaways (which supersede the old list) will hopefully give you a better idea of what I meant to say originally.

It’s important to note the context as well. My blog is mostly targeted at people like me, that is to say, .NET developers, and the people who forgot to unsubscribe when I stopped posting about SharePoint. The post should not categorically offend everybody, no matter what background, but from all the feedback I’m getting: it is.

On with the takeaways:

  1. .NET developers (i.e., YOU) should check out Rails. If you are a .NET developer, and you haven’t checked out other frameworks like Ruby on Rails, you should do so. Instead of learning about Silverlight, for example, or whatever v1 Microsoft product that comes out of BUILD, or waste your time studying for MS certifications (seriously?), check out Rails. Rails is a viable way do develop web applications and is worth the time investment. Somewhere down the line, you may even be able to get paid to do Rails work, even in a city like Houston, even outside of the startup scene. And, it is surprisingly easy to learn other platforms.
    PS—these are not strawmen alternative learning investments I’m setting up. There are real people, real .NET developers, who spend their time struggling through WCF books to take the exam, or go “all in” and study up on the newest MS framework, and never quite get caught up.
  2. Drop the “.NET developer” mindset. There is a kind of assumption among .NET developers that we are .NET developers, and will use whatever the .NET framework provides to solve our problems. If we need to develop a web application, for example, we’ll consider ASP.NET WebForms or MVC, or maybe one of the alternate .NET web frameworks. Or SharePoint. We don’t look outside the walls. So, look outside the walls. .NET isn’t as fresh and shiny as it used to appear, and the alternatives are getting quite good (some would say: better, believe it or not). Again, it is surprisingly easy to learn other platforms.
Wednesday, July 06, 2011 5:01:48 AM UTC  #     |  Comments [17]
Wednesday, July 06, 2011 11:21:27 AM UTC
Great Blog - but Betamax was better than VHS.....

Just cos it's better it doesn't necessarily mean Rails is going to be adopted in meaningful numbers.
SinisterPenguin
Wednesday, July 06, 2011 12:22:13 PM UTC
You cant argue Ruby is at LEAST a year and some change ahead of the MVC stack at this point, maybe further considering the dynamic runtime.

I made a few ruby apps 2 years back and I found that setting up apache and configuring a mongrel cluster to be a pain in the @ss. If you want an internally hosted app, is it any easier to configure ruby now?
A lot of times I leverage active directory and AzMan for windows-integrated authentication, has ruby improved interfacing with LDAP authentication?
peter weissbrod
Friday, July 08, 2011 5:22:05 AM UTC
Nothing personal.
Started commenting here but it got too long, so I moved it to my blog:
http://kenegozi.com/blog/2011/07/08/the-ruby-train-goes-blah-blah-blah
Sunday, July 10, 2011 8:54:51 PM UTC
Ultimately, even if .NET is an inferior platform, I'd rather just an inferior platform with a great community than a superior one with a horrible community. So I'll be continuing to steer clear of Ruby for the time being.
Dave
Sunday, July 10, 2011 9:51:48 PM UTC
Interesting take.. as someone who spent 10 years involved w/the .NET community, I find Ruby and Rails' community much more vibrant, collaborative, and productive. In fact, this seems to hold true for most OSS frameworks/languages I come across.

Do me a favor, spend 30 minutes poking around the Ruby projects on Github and let me know if you feel the same way.
Sunday, July 10, 2011 10:08:49 PM UTC
@Dave: Anything that is "hip" is going to attract hipsters. I've spent plenty of time on IRC bouncing ideas off of Ruby gurus, and they've been nothing but kind and generous.

I will agree that .NET is rather safe and comfortable, if that's your thing. You'll never have to bother with snooty remarks when you're surrounded by dispassionate people that chose their platform merely because it's a safe bet for a pay check; It's hard to be snooty when one is completely devoid of any unique, passion driven opinion.

Not that everyone in .NET is a simple-minded, corporate drone... But, I think it's pretty clear that such people are much more common in .NET than in Ruby.

I've found fewer bad eggs in .NET, but many more good eggs in the Ruby community.
Sunday, July 10, 2011 10:34:04 PM UTC
This is not the kind of post that either community needs. It's ignorant in several senses in that it compares Rails to .NET (a framework to a platform). Rails is NOT a platform. Statements like "Every, single, one." make you look ignorant and dogmatic.

Both platforms have their strengths. Stop trying to sell one thing or the other as the silver bullet. Rails is an ActiveRecord implementation for crying out loud. Let me know how well that fits the more complex business domains being implemented by the DDD/CQRS/SOA crowds.
Jon Wingfield
Monday, July 11, 2011 8:20:57 PM UTC
Jon, I want to make it clear (now, unfortunately not sooner) that I am comparing Rails and .NET as technologies upon which you build projects. I see myself as comfortable switching between WPF and ASP.NET MVC (both vanilla and Azure-flavored), so I don't bother making the distinction "WPF developer and ASP.NET MVC developer and maybe soon Windows Phone developer" . The essence of my comparison is in career planning and what I choose to learn.

For the record I get that Rails is the apple to the .NET framework's orange, at least from the way I wrote the blog post above, I get it.

@Everyone,

And I kept it a little too brief and probably went a little overboard on how good Rails is. The point I should have been emphasizing is that we (.NET developers, and yes I self-identify as a .NET developer) should stop telling ourselves we're on the .NET team.

Stop choosing a team.

You don't have to join the Rails team to leave the .NET team. Just be a developer. Not a .NET developer, not a Rails developer, just a developer. Hey, just be a cog. You don't even have to call yourself a developer.

And I messed this point up because I wanted to emphasize that yes, Rails is actually really, really good, and if you're a .NET developer, you should look into it, and this made it sound like I'm joining the Rails "team".

At this point I'm just rehashing my takeaways from above, but hopefully I've explained it a little better this go-round.
Peter
Wednesday, July 13, 2011 11:42:24 PM UTC
.NET and Ruby on Rails are both great and you have to be able to choose the best tool for the job, in other words, be pragmatic. If you have any reservations about talking to the Ruby community please try again. There are many people like myself who would gladly help. I'm actually working on improving the Windows experience for people deploying Ruby apps on Engine Yard AppCloud. It's true that in the past, Ruby has not been easy when using Windows. People like me and Wayne Seguin (main author of RailsInstaller) realize that there has been a disconnect with Windows developers and we want that to change. If you wanna check out Ruby, please find me and let me know how I can help.
Friday, July 15, 2011 3:07:33 PM UTC
Hi Peter,

I answered your comment on my blog: http://www.gilzilberfeld.com/2011/07/ruby-train-wreck.html
Cheers
Gil
Friday, July 15, 2011 3:36:59 PM UTC
“Why is it a pattern that, … people try out Rails, and they just never come back?”

Same as why it is a pattern that delpines always save people. Those they did not save but drowned do not talk:)
Oleg
Friday, July 15, 2011 5:27:12 PM UTC
This ".Net devs are heading for Ruby On Rails in droves" meme is getting way too much time in the echo chamber people...

And besides, any web framework is just a gateway drug to jQuery...








Remco
Wednesday, July 20, 2011 5:05:23 PM UTC
I got to love it, you sit and bash .NET in your article, but your blog is running on .NET

Was Ruby just so amazing you couldn't build it using it ???
Bradley
Wednesday, July 20, 2011 5:19:15 PM UTC
Bradley, evidently I still have something in my article that's making people mad. :) I'm more surprised that no one's called me out on my 50 SharePoint blog posts than the fact that I'm running this blog on dasBlog.

And everyone knows WordPress is the best blog platform/plugin ecosystem nowadays anyway.
Peter
Wednesday, July 20, 2011 10:00:33 PM UTC
@Peter! This is one of the most ignorant post I've read lately. Are you sure you are comparing .NET with Rails but not WebForms with Rails? You could have said that web development is more fun with Rails than WebForms provided by .NET, but it seems you're an ignorant developer who claims to know about .NET platform but actually can't differentiate between a platform & a web framework.
Khurram
Wednesday, July 20, 2011 10:44:44 PM UTC
@Khurram! You sound angry!

I was a little sloppy in my first list of takeaways, but the shortened list should cover your complaints. And I did mention in the comments above what I meant by "Ruby" and ".NET"

Out of curiosity, what are you spending your time studying presently? I'm curious what someone who doesn't like my article would say they study.
Peter
Tuesday, September 27, 2011 11:10:53 PM UTC
I worked with ruby and rails before, never with .NET, today I earn my living writing the same things in python and django. I wish more developers would be polyglots, at the end it is all the same -- the languages might differ, the techniques might differ, but at the end ... it does not matter!.
.
There is innovation happening with techniques, not languages, languages are just syntax and it does not matter the extra comma or the extra semicolor or the extra indentation you have to put in there. Most languages people are using for work today (completely unfounded speculation) are somehow object oriented. So when talking about object oriented languages a programmers needs to know concepts like Class, Instance, Method, and the such ... and then various technologies (in web dev for example) like Caching, writing APIs, using ORMs, and whatnot.
.
If there is someone who really cares about using .NET, or Ruby, or Python, or Javascript, or Perl, or whatever ... cares about that more than the innovation that happens in the concepts and the techniques -- then I agree with this post completely, he should not call himself a programmer. Maybe a more fitting name would be a ".NET gimp" or some such, and I for one would not want to work with one of those in any team on any task.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: b, blockquote@cite, strong) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

[Captcha]Enter the code shown (prevents robots):

Live Comment Preview

© Copyright 2014, Peter Seale

Archives