What people who switched to Ruby from .NET have to say

In preparation to write my next post to RubySource (here is the post), I’ve asked a couple of people the following questions:

  • What made you look into RoR?
  • Why did you switch over to RoR?
  • What do you like about it? What don’t you?
  • What do you miss from .NET? What don’t you?

Here’s the full, unedited answers I got from them…

Ben Scheirman (ChaiOne)

What made you look into RoR?

I kept hearing buzz around 2005 about Rails.  I looked into it but initially didn’t get it.  I didn’t understand MVC (I was a WebForms guy at the time) and Ruby was totally different than C#.  I couldn’t imagine it taking off like it did.

Fast forward 3 years later, after watching more & more people start using it, I decided to start giving it a serious try.

Why did you switch over to RoR?

I found that I was able to build applications very quickly and host them just as easily (on Heroku).  When projects came up at work that needed similar agility, I recommended Rails.

What do you like about it? What don’t you?

I like command-line driven stuff.  I type pretty fast and it fits in with my workflow.  I literally *love* Ruby.  It’s crazy, flexible, concise, and beautiful.  Gems make application componentization not only possible, but so easy that EVERYONE does it.  Usually when you have a problem there is somebody that has already had that problem, solved it, and packaged it in a gem for you to use.

Sometimes it’s hard to see where something went wrong, because there’s a lot of convention & magic going on.  Especially when living on the edge.  Gems don’t always stay in sync, Rails is changing constantly, so you have to have a lot of patience if you’re going to be working on the latest & greatest.

What do you miss from .NET? What don’t you?

I miss the forward thinking .NET developers, mostly from the ALT.NET crowd.  I still hang out with them on occasion, but unless they are at a Ruby or iOS conference, it’s doubtful I’ll get to interact much with them in the future.  C# is still a pretty cool language, but I don’t miss the .NET framework really at all.

I don’t miss TFS, Architects who think you should pass around datasets, enterprises stuck on old technologies, Microsoft-slavery, developers who can’t be bothered to read a book & get a little outside their comfort zone to learn something new & amazing.

Derick Bailey

What made you look into RoR?

For me, it was a way to learn something new – to explore new communities and technologies – and hopefully learn something that I could bring back to my .net development (which I did).

A coworker first showed me the “build a blog in 15 minutes” video in 2007, and wanted to use rails on a client’s project. I had never heard of ruby or rails at the time, so I said no. Fast forward 2 years – we had Scott Bellware come in to do some training on automated web testing for my team. We decided to go ahead and have Scott teach a little ruby and rails in the process. I was amazed at how easy ruby was, during the training (this is also where the idea for ‘albacore’ was born).

At the time, I was a Webforms guy, still. I had looked at asp.net mvc beta and version 1, but didn’t understand it. But after the ruby training from Scott, I started looking more and more into ruby, including rails. I was immediately impressed with how quickly I could get a rails website up and running with basic CRUD screens, using the scaffolding. It wasn’t until I learned rails, that mvc in a web application made sense.

Why did you switch over to RoR?

The opportunity to do something new and exciting, with a fast paced and well organized community was exactly what I was looking for after 9+ years of .net development. I built several small sites to play with rails and learn, at first. The more I played with it, the more I wanted to play and learn and build something significant. In the 2nd half of 2010, I was given an opportunity to not only jump into rails work, full-time, but also go out on my own as an independent contractor/consultant.

What do you like about it? What don’t you?

Rails is generally wonderful to work with. It’s easy to get a site up and running and build real value into the site, quickly. More importantly, though, it gets out of my way. I don’t have time or patience to deal with tools and technology that continuously get in my way. Tools should not dictate how we work, but should be formed to work in a manner that supports us. Rails and the community around it, do exactly that. It’s very easy to change the way rails behaves and how you work with it. This points to the two things that I love the most: the ruby language and the ruby community. It’s the ruby language and the community surrounding it that really give rails it’s power.

It’s not all rainbows and unicorns, though. The rate of change in the ruby and rails communities is staggering, and there’s a very large “shiny new toy” syndrome in the community. People have a tendency to jump onto the latest flavor of the month simply because some celebrity rock star ruby developer said it’s the way to go, today. This has the benefit of constantly moving the technology forward, but often results in days of headache trying to figure out incompatibility issues between different versions of different gems. Even when you are keeping a project stable in terms of gems used, patches and fixes are released on such a frequent basis that the issue of incompatibility is still a problem. Tools like Bundler are meant to help address this issue, and largely do. However, the are often part of the problem, as well.

What do you miss from .NET? What don’t you?

I really miss the sense of architecture and best practices that abound in the forward thinking .net communities. There’s a fountain of knowledge – books, blog posts, videos, speakers at events, and more – all centered around good architectural practices and scaling from the “toy” apps out to the enterprise scale. While this information and knowledge exists in ruby and rails, it seems to be immature and closely guarded (contrary to the open nature of the community). Sites like Github and other large scale systems are the prime examples of how to do things right, but I don’t see the Github people out there talking about the architecture and scalability as much as in the .net world.

I don’t miss the boilerplate of everything that you have to know to even be considered an “intermedidate” developer in .net, these days. If you don’t know IoC, TDD, SOLID, and a dozen other principles and patterns, you’re not staying up to date with what it takes to create good architecture in .net. Many of these patterns and practices are still necessary in ruby and rails, but the language and the frameworks tend to bake this knowledge in as first class citizens instead of requiring you to bolt it on, as an after thought.

I don’t miss is the “Microsoft said …” mentality of most .net developers. I can’t stand it and I don’t understand it. It’s as if people are afraid to learn or question anything, which flies in the face of everything that I’ve ever been taught. People need to look outside of what they are currently doing to understand what else is out there, if for no other reason than to understand why they are doing what they are doing.

And lastly, I don’t miss the all-in-one tooling that Microsoft technologies and teams tend to gravitate towards. Tools like TFS and Visual Studio may have great business appeal because of the tight integration between them all, but the reality of day to day work is a different story. These tools lead to very rigid processes, where the tools are dictating how people work and interact. They solve larger business issues to an extent, but create significantly more issues than they solve by preventing change and hampering a team’s ability to handle special cases and needs that don’t fall within the standard guidelines of these tightly integrated tools.

Jak Charlton

What made you look into RoR?

As you start to push a statically typed language like C#, you start finding yourself writing more and more code that really has no purpose other than to support the type system.

To say this is frustrating is putting it mildly. Huge amounts of ‘redundant’ code like interfaces, casting, perverse dependency injection purely for testing

Ruby (and Rails) offered a chance to avoid writing all that code, and focus on real functionality.

Why did you switch over to RoR?

See above … although I haven’t switched – I just took a new position with a digital agency who are a strong .NET shop. I use Rails for my own stuff, and it is a welcome relief.

What do you like about it? What don’t you?

I love the simplicity. I love that convention over configuration is deeply ingrained into everything. I love that things ‘just work’. I love that it keeps out of my way, and lets me write code that has business value.

I love that testing is just what you do – not an optional afterthought.

I dislike, very little. The ‘worst’ part of Rails and Ruby generally is that without Intellisense you need good documentation or to know the conventions. Sometimes this documentation is weak or fragmented. Things like RelishApp make this a whole bunch simpler, and the community helps massively.

What do you miss from .NET? What don’t you?

Pretty much LINQis all I could miss really.

Jonathan Birkholz (JB) (CodeMav)

What made you look into RoR?

Beyond the buzz, it was the migration of people whose opinions I respect telling me I needed to take a look. Having spent most of my career creating smart client applications I knew very little about web frameworks. The only web experience I had to speak of was WebForms and really that doesn’t count. So when I had a small volunteer web project for a local charity I decided to take a look at rails.

Why did you switch over to RoR?

My rails moment happened on the first night. I sat down to learn rails and in a few hours I created an application and had it hosted on Heroku for free. My mind was blown away. I didn’t need to spend time figuring out data migrations, test frameworks, hosting plans, etc. I immediately could focus on what I wanted to focus on… what I wanted my application to do.

What do you like about it? What don’t you?

Gems. I’ve saved hours of my time by searching for gems that can help deliver a feature before I just sat down and coded it myself. Why reinvent the wheel?

Another important part of the gems is they normally come with great documentation and cheat sheets. So I can gem install and in a short period of time get the gem performing the work I need. And if the documentation is lacking, I can just open the gem up and dive through the code myself.

What can be frustrating to others is the speed of upgrades with rails. Rails can move fast and if you have a Rails 2.0 application, finding help on the basics and tutorials can be difficult because the Internet has already moved on to Rails 3 or 3.1.

Although the speed is fast, the changes are great. When working with rails I often think, man why do I need to do X, shouldn’t rails do this for me? Then a few months later I see that the next version of rails will include those features.

This is a pleasant surprise from my .Net experience where often the upgrades would solve problems I wasn’t having. To quote Ricky Gervais, ‘the best non-solution to a problem that doesn’t exist’

What do you miss from .NET? What don’t you?

I loved C# so I miss that. I guess I should look into RubyMine more, but I do miss Resharper. I just need my refactoring goodness mixed into vim.

I don’t miss the culture. The never ending fights against architects and managers when trying to bring in tests, open-source tools, and agile practices. I lived with a crippling despair born from frustration. This lead to me being a complete ass. I didn’t like who I was and what I was doing.

Rails isn’t all rainbows and unicorns. I think the difference is the matching on culture and direction. Every new announcement from Microsoft always had me scratching my head going.. WTF?! I have more in common with the rails and ruby community. I understand the direction they are heading and feel the questions they are asking are the same questions I am asking myself. When is it right to test? When isn’t it? Where do we need opinions in our framework, and where don’t we?

And on that point, when I have a problem, I see people not only having the same problem but creating solutions! I can read their blogs, install gems, and find solutions. There is a contagious empowering culture of getting things done and continual self-improvement.

To me, the alt-net community always felt like a clique of people who didn’t feel at home in the normal Microsoft community. I don’t feel like I need to be in an alt-ruby community because I feel like I am part of the ruby community.

Michael Koby (Just for Bands)

What made you look into RoR?

I had heard about both Ruby and Rails for a while before I decided to look into it more thoroughly.  I had gone through the “Learn Ruby in 20 Minutes” that’s on the Ruby language’s homepage, and liked it.  The conciseness of the language is what really got me excited.  Still it took while (about a year or so) before I did anything in Ruby/Rails seriously.

Why did you switch over to RoR?

I switched over to Ruby on Rails because I had been doing .NET development in some form for close to a decade and I decided it was time to learn something new.  The final leap was when my friend and I came up with the plan for Just for Bands.  I didn’t really wanna do it in .NET (even using .NET MVC) mainly because I did .NET all day at work and really wanted to learn something new.  The Just for Bands project gave me an excuse to build something from the ground up in a different language and framework, and let me bring my friend along for the ride.

What sold me on RoR was the community, gems, and the Ruby language itself.

What do you like about it? What don’t you?

I like the conciseness of Ruby.  I like the “convention of configuration” aspect of Rails. It gives me less to think about when building applications.  I also like how testing is so woven in to both the Ruby and Rails communities.  Also, being a guy who likes Linux, Ruby and Rails work great in that environment.  Using Linux tools to do my development, without having to install things like Cywin was huge.  Using free and open source tools to me was just icing on the cake.

What I don’t like is the speed at which the community moves.  As good a developer as I like to think I am, some things still take me a while to grasp and sometimes I feel that once I have a grasp on something it’s changed in the latest version. I also tend to dislike the egocentric stuff, more specifically the idea that if you’re not using a certain gem/tool/whatever that you’re doing it wrong (I saw a lot of this when interviewing for RoR jobs and using my JFB code as a “code resume”).  That being said, it’s probably the tradeoff for being a part of a community that will actually try new things rather than stagnate.

What do you miss from .NET? What don’t you?

I don’t really miss anything, as I still do bits of .NET development at home and on my Mac using Mono.  In fact, I’m giving a talk on cross platform development using Mono at Houston Techfest.  While I do primarily Ruby, Objective-C (current employer wants an iPhone app), and non-.NET things I still like .NET.

Something that would be nice is a good IDE for doing Ruby/Rails development as that seems to be the biggest hurdle for .NET folks coming over to Ruby/Rails. The lack of a Visual Studio like IDE seems to case pain for some people, and as a dev tool Visual Studio is pretty good.

Tim Tyrrell

What made you look into RoR?

Working in a soul crushing corporate IT department really got me looking in a “less enterprisey” direction. Since I was enamored with the unit testing culture of software, Ruby and Rails seemed like the obvious direction to take.

Why did you switch over to RoR?

After attending my first Austin On Rails meeting I thought to myself, “These are my people; I have come home.” I mentally switched a year and a half ago when I thought about my future and realized that I could not think of a single .NET job that would have any appeal to me. I literally was able to switch because the job market is ridiculously good right now in Austin so the opportunities were available for developers with little or no Rails experience.

What do you like about it? What don’t you?

Switching from a GUI-centric development environment of Visual Studio tools to an extremely lightweight and mostly command-line focused environment has just been a breath of fresh air. Rails is truly is a framework that gets out of your way and allows you to get work done in a very low ceremony fashion. One difficult part is since getting a project going usually relies on a multitude of other “gems”, getting them all to work together is not always going to happen easily.  I would also say that the culture of backwards comparability is definitely not as strong, which makes staying on an older version for too long a frightening prospect.

What do you miss from .NET? What don’t you?

I am a recent full-time convert so I am having great difficultly thinking of things that I miss. I obviously miss friends that I won’t be interacting with much anymore. I miss being able to show off techniques or .NET open source libraries to a crowd and see their minds get blown. I would also like to say that I really don’t miss intellisense and ReSharper as much as I anticipated. I don’t miss going to four user group meetings about Silverlight every year. I don’t miss being fed Microsoft’s new round of tools that look almost like the last round and are equally as unexciting. I don’t miss working with a technology where a majority of developers don’t think outside a tiny little box. I definitely do not missing working in Visual Studio or Windows on a daily basis.

Corey Haines

What made you look into RoR?

From 2004, I started seeing a lot more Ruby showing up as the language of choice at the annual Agile conference, along with other smaller conferences. I would spend time pairing with people in it and really enjoyed it.

Why did you switch over to RoR?

In 2007, I was really getting fed up with the development experience in C#. I would spend time writing Ruby, then come back to C#, and it was like night and day with the flexibility. I had been doing pretty heavy test-driven development since 2004, and it felt like I was constantly fighting C#. I got tired of the compiler and the language screaming at me about things I would be getting to, such as unimplemented methods. Whenever I had a chance to work in Ruby, the experience was much more smooth. So, I decided to get out of that world. I was learning Ruby, so I took a few months and built a couple application in RoR. I then got approached to take a job at a startup doing RoR.

What do you like about it? What don’t you?

Among other things, I particularly like the innovation in the testing and tdd realms in the Ruby and Rails communities. There is a lot of discussion around different practices and techniques. I don’t really see the same level of discussion in other communities. I don’t agree with all the design idioms that are present in Ruby on Rails. However, I have recently started talking about alternate design approaches that are still compatible with using Rails and add more
maintainability options.

What do you miss from .NET? What don’t you?

To be honest, there isn’t really anything I miss from .Net.

Scott Bellware

Feel free to quote me on the move of .NET’ers to Ruby: Too little too
late – yet again!

What about you, dear reader? Care to share your experiences as a comment either here or on RubySource? :)

About these ads

, ,

  1. #1 by Pavel Penkov on August 24, 2011 - 5:15 am

    Kinda strange that no one mentioned how much easier it is to edit code written by someone else in .NET. Too much metaprogramming magic in Rails and related gems. In .NET sometimes you know what do you want to change, but have to deal with all that information hiding (rendering ASP.NET MVC template to string comes to mind). In Rails you can alter anything but just understanding what is going is really hard.

    • #2 by claudiolassala on August 24, 2011 - 9:22 am

      Hi Pavel,

      I agree that sometimes it’s hard to understand some of the magic going on in Rails. And that’s certainly no different than a lot of stuff hidden away by code generators or blackbox components in the .NET space. I guess there’s always some learning one has to go through in other to be productive with whatever stack, and it’s up to the developer to decide which approach fits his or her workflow best.

      Thanks for dropping in comments with your experiences!

    • #3 by George Mauer (@togakangaroo) on August 24, 2011 - 12:26 pm

      I find that more often than not I want to change something that is compiled and sealed/internal in .Net. Kinda nice that in Ruby that is not even a possibility.

  2. #4 by George Mauer (@togakangaroo) on August 24, 2011 - 8:45 am

    Awesome, glad someone finally put something like this together. It’s been a long time in coming. You should encourage people who have made the switch to leave their answers in the comments.

    As always, I have no idea what Belware is talking about and really wish I did.

    • #5 by claudiolassala on August 24, 2011 - 9:18 am

      Good tip. I’ll update the post.
      I believe Scott’s point is that yet again .NET developers have taken too long into checking out other things, going outside of their “bubble”, as he says in his NDC talk: http://vimeo.com/12803005

  3. #6 by cgault on March 15, 2012 - 8:08 pm

    A couple years ago, and Alt.Net architect got ahold of me and I have not looked back to the old .net ways. during the last two years I have been ever frustrated by the majority .net view points and their closed mindedness. I am now starting out on a new venture with a startup and will be full time RoR. I am looking forward to it, I am a bit intimidated because I am still learning RoR. I am tempted to revert to my ASP.NET MVC C# and .NET Open Source Stack because I know I can be productive, but I also know I can be productive in RoR, I simply have not “cut my teeth” on it yet and I am a little bit scared.

    • #7 by claudiolassala on March 15, 2012 - 9:09 pm

      I’ve made the full switch to RoR almost a year ago. Like you, I thought I should stick with ASP.NET MVC and C#, thinking I’d be more productive there. But ended up sticking with RoR, and I’m so glad I did. I was able to get productive with it real fast, even though I knew zero Ruby and zero Rails, and had been out of web development for several years. I’m enjoying RoR and whole mindset a lot! Don’t really miss anything from the .net days.

  4. #8 by Arjun on June 9, 2013 - 10:40 pm

    Hi Every one, i am just beginner in IT so i would like to start my career in development, please suggested me which is the good-> .Net or Ruby?

    • #9 by claudiolassala on June 10, 2013 - 9:13 am

      Hi Arjun, we can’t say which one is better; it really depends on what you need to do, and it is also a matter of personal preference in some cases.

  5. #10 by RoRvsDotNet on June 25, 2013 - 6:44 pm

    I’m a .NET webform developer learning MVC 4.0. I’m thinking of jumping into RoR. How is the salary compensation paid to RoR developer compared to .NET developer nowadays in 2013?

    • #11 by claudiolassala on June 25, 2013 - 7:06 pm

      Hmm, I don’t really know as I haven’t been following such comparison. I’ve heard that there’s a high demand for RoR developers, but I don’t know how salary compensation compares. In my case, I decided to stick with RoR in the last two years because of the “fun” compensation (I’ve just had more fun with RoR than with .NET), as well as the “delivering what my client really needs” compensation. :)

  1. Why should a .NET developer look into Ruby or Ruby on Rails? » RubySource
  2. RubySource: Why should a .NET developer look into Ruby or Ruby on Rails? - Rubin Shrestha | www.rubin.com.np
  3. Introducing Slotted – The Ultimate Signup Tool « Tim Scott's Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: