Switching to Ruby From .NET

It is with great satisfaction that I introduce the “Switching to Ruby From .NET” series at RubySource. In this post I’ll explain what you should expect from this series.

Hopefully I am here for a while, so I’ll tell you a little bit about who I am and my background.

What’s This Series All About?

This series is about Ruby. This series is about Rails. It’s also about Ruby on Rails. But first and foremost, this series is all about guiding .NET developers ease their way into Ruby, Rails, and related things.

For most people, it’s easier to learn anything new if you can relate it to something you’re comfortable with. Like learning a spoken language: when we learn a second language, it’s natural keep drawing parallels between the secondary and the primary languages.

This series will be filled with comparisons between Ruby and C#, Rails and ASP.NET, Visual Studio and… (well, there isn’t really a single dominant IDE in the Rails world, but that’s another post).

It features real experiences from a former .NET developer who indulged into Rails development very recently. The pain is real, but the medicine tastes like bubblegum!

Who is This Series For?

There is mostly two types of .NET developers: ones that stick with Microsoft all the way (using only MS tools, frameworks, etc.), and ones whose main target are Microsoft users, but they’re more open to use anything that can ultimately get the job done, regardless as to whether it’s Microsoft’s, some third-party, open source, or built in-house. The first group has the vast majority of developers, while the second one has been growing in the last couple of years.

This series focuses on the people in the second group, who aren’t afraid of trying new things.

What about people in that first group? They are usually not willing to void their comfort zone, because that’s just the way their personality is, or other reasons, such as political or economical. Regardless of the case, maybe over time we can get some of them to come taste different waters now and then.

If you’re already an experienced Rails developer, the only thing you may learn here is what kind of difficulties .NET developers typically face coming into Rails. That may be helpful in case you’re a consultant or trainer working with our .NET comrades.

What Are We Going to be Covering Here?

Below is a list of topics that will likely be covered, though not limited to. We’ll be playing it by ear: if there’s something you’d like us to cover, let us know. If there’s something you’d like to have more of, again let us know. In no particular order:

  • Why should a .NET developer look into Ruby or Ruby on Rails?
  • What are the main differences between .NET and Ruby on Rails?
  • Where do I start?
  • Comparing Ruby and C# (this one will certainly be spread across several posts)
  • What things will I miss from my .NET experience? What things will I really like in Ruby on Rails?
  • I used to use Visual Studio, Team System, etc; what should I use now?
  • Windows? Mac? Linux? Which one do I use?
  • Testing
  • View Engines
  • Build tools
  • ORM’s
  • Cloud
  • What else?

Please send us any feedback so we can make sure to work towards providing you with the best content possible.

What’s going to be the frequency and for how long will it run?

We are aiming for an item every two weeks, running for several months.

History Repeats Itself

Several years ago I was a Clipper programmer. I was comfortable and productive with it. Then came an opportunity to work with FoxPro and Visual FoxPro. I took it, and found a great way to learn about my new tool: after going through a short book for beginners, I started asking tons of questions at online forums, and got help from lots of great people. Shortly after I was trying to help people out online. I didn’t know much about it, so I’d see somebody’s question and go out research on the topic. That way, I’d both learn something *and* help somebody else. Eventually I got pretty good at FoxPro, and I was comfortable again…

Then came .NET. What did I do to learn it? I learned some of the very basics, had great people helping me out, and helped others however I could. Eventually, I became competent with .NET, and I was comfortable again…

Then there was Ruby on Rails. What did I do to learn it? I learned some of the very basics, great people helped out me and now… well, now I’m trying to help other people (hopefully you!), while I still have great people helping me (hopefully you!!).

Who am I?

I’m Claudio Lassala. Originally from the overcrowded city of Sao Paulo, Brazil, and I’ve been living in the hot and humid city of Houston, Texas, since late of 2002. I’ve been developing software for over 20 years, and I’ve received the Microsoft Most Valuable Professional (MVP) award for the last 10 years running (initially for Visual ForPro, and then for C#). I have written several articles and delivered several presentations (as mentioned, I have learned tons from helping others learn). I’m also the host for the Virtual Brown Bag.

You can find more information about me on my blog, at www.lassala.net

Win an Annual Membership to Learnable,

SitePoint's Learning Platform

  • Jason

    No thanks, ASP.NET MVC, does everything I need. Going to Rails would be a step-down.

    • http://www.lassala.net Claudio Lassala

      You’re welcome. :)

      It’s great that you’re happy with ASP.NET MVC. I understand it has come long ways from it’s first bits in 2007. The MVC team at Microsoft does seem to try to incorporate community’s feedback somehow.

      Would you care to elaborate how going to Rails would be a step-down for you?

    • max

      how is it step *down*? could you elaborate? i fail to see *learning* something as a step down..

  • Mex

    Yep agree with Jason. Had a look at Ruby but no thanks, .Net remains the way for me.

    But good effort, I am sure some will like it.

    • http://www.lassala.net Claudio Lassala

      Thank you. There seems to be a confusion (which I had at first) about, Ruby, Rails, and how they relate to .NET. To say that you looked at “Ruby”, but “.NET” remains the way for you, means you may not have gotten the whole picture right. And that’s fine. Like I said, I had that confusion myself, and I’ve seen many other people the same way, so one of my goals with this series is to clarify that.

  • http://caioproiete.net Caio Proiete

    Looks promising, Claudio! Can’t wait for the first post of the series!!

  • http://www.watchmemo.com Todor Grudev

    I think it is a great idea and at @Jason and @Mex i would appreciate if they come up with some arguments :)

  • Adam

    Claudio,
    I can’t thank you enough for your willingness and commitment to this series!

    For a person of your stature and MVP status to help those of us wishing to move into Open Web technologies and ROR, it is a great encouragement!

    I’ve been a MSFT stack dev since classic ASP and SQl Server 6.5, and while I owe much of my career to the MSFT stack, it is increasingly more difficult to participate in the kinds of projects using the edge technologies I’m most interested in on the strict diet of .Net/Win.

    I just bought my first MacBook Pro a week ago, and have been loving and suffering the learning curve since! lol it’s truly great!

    Really looking forward to your efforts and knowledge sharing!

    • http://www.lassala.net Claudio Lassala

      Thanks, Adam.

      I’ve got me a MacBook Air a month ago, and I know exactly what you’re saying. :)

      If you look in my personal blog (www.lassala.net), you’ll find one of my recent posts about it. It’s been hard given the number of years I’ve been on a PC, but at the same time it’s been rewarding due to the amount of things I’m now learning.

  • http://www.mattslay.com Matt Slay

    Don’t let those nay-sayers get you down! Ruby is a great dynamic language and Rails has everything you need to build anything you can dream of; from simple apps to complex web solutions. Even if a dev plans to remain in the .Net space, there is still a lot that can be learned from studying other languages and platforms.

  • Ryan Hartzog

    Looking forward to reading your series Claudio.

  • Scott

    Looks like Jason and Mex are in that first group you mentioned. The lovers of the Kool-Aid….

  • Mac

    Not for me thanks.

    I did a shopping website using Ruby on rails and what a horrendous experience it was. I always needed to scratch my head and find a way to overcome the limits and do what I needed. Besides the data layer model was very difficult to deal with.

    That was my first and last medium size project with Ruby.

    • http://www.lassala.net Claudio Lassala

      I wonder what you’re experience was like. I mean, did you work through it all on your own, or did you have somebody coach you along the way? I remember when I first got into .NET, coming from Visual FoxPro, I thought the whole thing was horrendous, because I was trying to do things in .NET in the FoxPro way. It doesn’t work like that. It’s like if I try to speak English while thinking in Portuguese. I may use words that are valid English, but when put together either mean nothing, or doesn’t resemble at all what a native English speaker would say.

      Maybe one of the reasons I’m enjoying Rails is because I’m trying not to think as a .NET developer? And also because I have a couple of friends helping me when I get stuck?

  • Serdar

    .net is not going well, c# & clr was good, but it’s library was a win32 wrapper at start, then it’s begin to be a bloated complex framework like j2ee. Linq2sql is dead, silverlight/wpf dead, vb.net dead, wcf/soap (including wcf/rest) is a dinasour compared to lightweight rest services. asp.net was a joke, asp.net mvc was a good path but it’s unneededly complex. there is no platform independence, you have to use windows for server & client, also mono is far from serious use. I’m getting maximum 4000 reqs/sec (expect wcf worse) on a hello world app on windows in release mode with asp.net mvc 3 razor, but got 9200 reqs/sec on ubuntu (with the same hardware) with play framework & scala. most of core things cost money on ms side, serveros – ide – developmentos – obfuscation app (eg dotfuscator) – control sets (like telerik),… recommending play framework. you don’t need windows services, web services, schedular, service references, and lots of bloated things with play. Also look at the module system of play, you an architect your apps in a lego way……lots can be said but I’ve no time.

    • http://webunusual.com Amr

      Interesting comment. I also think sometimes .NET is bloated but frameworks like rails, play and other “scaffold” generation of frameworks just generates the bloated code for you. WebForms is becoming a pain for me, specially if you work with SharePoint and u’re stuck with it, but again, there is no magic tricks in WebForms, the sort of magic you will find in RoR style frameworks.

      for me now it’s all about throwing as much logic as i can to the client-side. we have now frameworks like jQuery with plenty of plugins and decent API. Towards this direction it will not matter that much what’s running on the server-side, I will go for the thinest !

      • http://willcodeforbeer.net Tim Tyrrell

        Scaffolding in Rails is just “demoware”

    • PhilH

      I pretty much came to a similar conclusion after working with .Net and ASP.Net for a couple of years.

      And ironically some of the comments from .Net users reinforce exactly what the author said about most .Net devs not having any interest in anything outside of MS. Thats one reason I don’t even look at .Net jobs now. When you work in one of these shops you can’t even talk about techniques from other communities because the others don’t know anything about it and don’t want to hear anything about it. When MS finally does bring something in from another community they think its new and the best thing since sliced bread.

      I’m not saying you have to like everything else out there. I don’t care for Rails in particular (not a fan of the opinionated style but certainly understand why others will like it) but they seem to enjoy being ignorant of everything else.

  • Serdar

    Also contrags. to you for switching to Rails.

  • http://dennyferra.tumblr.com Denny Ferrassoli

    I’ve been a .NET dev for many years and I’ve began looking into RoR as well as Scala and NodeJS. I have to say at first Ruby (the language itself) didn’t seem too interesting to me. After playing around with it I’ve grown to like it more and more. I really like the community around RoR and the whole gems ecosystem (something that was missing in .NET – now they have NuGet).

    I decided to learn other languages because over time I heard good things about each one. There’s no harm in trying a new language. It is obviously going to be more difficult learning a new language, framework, and perhaps even an IDE than to just use the one you’re most familiar with. I would suggest building something you’re interested in to get to know the language. Worst case is you realize you don’t like it and move on to something else.

    • http://www.lassala.net Claudio Lassala

      Exactly!! :)

  • Jose Gonzalez

    I’ve been quietly following your blog posts on Ruby for months now. I’ve always wanted to learn something outside the .NET world but didn’t know where to start.

    Like others said before: there’s no harm on trying something out of the comfort zone and no one is forcing you to like Ruby (or anything else for that matter). I guess I’ll use .NET to pay the bills and Ruby for fun :)

    Can’t wait to see the first post!

    • http://www.lassala.net Claudio Lassala

      Great, Jose. You got the idea. :)
      Working on the next post this week.

  • http://madhues.com Sunny R Gupta

    Where do i access these posts? I don’t seem to be able to find the links in here.