From .NET to Rails
Right now I am basically testig my thought processes (maybe getting a headache) and seeing how I can apply what I have learned over the years programming in ASP.NET (C#) to Ruby On Rails. One major thing that sticks out when started a RoR project is that the structure is already there and set in stone. Sure if you are feeling frisky you could change how things work, but why bother, its already been tested and its ready to go.
Here are a few items that RoR gives you that makes life a bit more simple:
1. Generators - Generate the stubs for models, controllers and other various items. ASP.NET you get use to “adding new item” to create user controls, pages and other items required for your application.
2. If you are a Prototype fan, integration for AJAX calls. I prefer JQuery, and yes there is a plug-in for JQuery which will overwrite the Prototype calls. But I prefer to use just the JQuery library without the rails plug-in. Yes, ASP.NET has the lovely AJAX libraries but they are a bit bloated and the server side controls are not that great, too much talk over the HTTP protocal for my blood. My current .NET projects all use JQuery and have tossed aside the ASP.NET AJAX libraries.
3. ActiveRecord is baked in. No need to stored procedures, modelling and other various task that most .NET developers cried about. But a plus for .NET is libraries such as NHibernate (I use this), SubSonic and LINQ. These libraries make your DB cook with happiness.
4. Structure - where things go, how things work and how things should be done is there for you already. This is great, since it really takes away the having to thing and plan out part of your project. But on the flip side, it might get a little redundant after 10 or so projects in Rails. ASP.NET MVC is trying to follow this method but you still have a lot of flexibility to make your project work the way you want it to.
5. Filters - filters are great because they intercept the request, before_filter, after_filter - these are great for items such as authentication, or even setting various parts of the page when needed. ASP.NET and ASP.NET MVC have ways of doing this with overriding base class methods and MVC has filters cooked in (stolen from RoR I would suppose).
Now, the only real questions I have about Ruby on Rails is, how well does it scale. I know the guys over at Rails Envy joke about this a lot, but seriously, you hear the horror stories about Twitter crashing, and 37singals heavily driving into C code to do task fast for their flagship applications. I will have to research this more and find an answer for myself, I will be googling this topic more and posting my findings.
I enjoy the simplicity of rails, and it does make web development fun again. The current version of ASP.NET MVC did breath some life into .NET development but it still has a way to go.
One thing I hate about .NET development is the “drag and drop” features. You interview a canidate and all they know how to do is drag and drop code snippets onto the work space. Come on now, learn to code!!! I blame Microsoft for this, they always discuss the basic kiddy features and never bother to dive into the good stuff, are we just that dumb when it comes to development and software design? That we need a GUI to do any type of work?!?
Rails notes:
400 restarts a day! - this post is basically a response for Zed Shaw’s bashing and most hilarious opinion of of rails.
Presentation on Scaling Rails - have read this on, some great ideas that you can apply to any enviornment, not ust rails!