Visual Studio is one of the greatest IDE’s on the planet. It is your development environment in a box, and takes care of a lot of things for you. I really like that, but I have noticed when I try to break away and do .NET dev without Visual Studio I am pretty much in trouble. The tools are all available as command line tools, but I find I don’t have the patience to learn them because there are so many to learn. One of the things that I am liking about doing RoR and messing with ruby is they embrace individual tools and they don’t worry too much about an environment in a box, which I really do like.
The Blessing and The Curse
I have always looked at command line as this “thing” that is there which I know how to use decently well, but something I really hate. I still don’t like it a lot, but I have learned to deal with it because of power it offers. The learning curve to figuring out all the command line “stuff” is a bit steep at first, but easy after you use it for a while. I think that knowing and using the command-line adds to a lot of know-how and ability to fix problems.
One of the annoyances with doing any type of programming is keeping up with all your dependencies. If you have done desktop development, pre-.NET, work on windows, which I haven’t, you my have heard the term DLL Hell. Fortunately, ruby gems really helps to keep all your dependencies up-to-date, and their dependencies. One of the dependencies that Ruby on Rails 3 included was bundler. This is really cool because you can issue a command “bundle install” and it reads your gem file and makes sure all your dependencies are installed. This is just really cool and until the last year or so there wasn’t anything like this for .NET world. I was setting up a friends environment so he could test something and bundler made it about a 5 minute process.
One of the great things about Visual Studio is all the fun text editing stuff it does. I really like some of the intellisense, if for nothing else I can hit tab a lot. Working with RoR I haven’t really found an IDE I like. I tried RubyMine, but wasn’t, personally, a fan of it. The good thing is there are still some really good alternatives which are more pure text editors like textmate, vim, and Emacs.
Personally I seem to have made the cliche choices and started with TextMate and found it useful and good, but am finding it doesn’t fit well with how I work. So like many other rubyists I have made a move to Vim which seems to fit me a bit better, but only time will tell. The one thing I have learned though is you really need to work with something you can use well. I haven’t been able to be as productive, typing wise, doing RoR as I have been in visual studio, but that should hopefully change soon. I read about a guy who has been using Vim for almost 20 years, yeah its 19 years old, I can tell you if I could use an editor that long I better be able to rock it.
One of the greatest strengths of working with ruby is all the options available for development with ruby gems. There are multiples of everything you want to do. This is a bit unusual in the .NET universe. For example with Authentication and Authorization there aren’t really many, if any, plugins which are freely available and pluggable with asp.net. You kind of either roll your own, follow a tutorial, or use the built in one. With Ruby just do a search and you will see a lot of results. There are even a ton of gems for stuff I would never think about needing to think about. This makes it a lot of fun because of the productivity increase it gives you.
There is so much more than can go in this post, but I think this hits on some of the biggest benefits of the platform over others. It definitely kicks the crap out of PHP. The best thing that can be done when you start with Ruby on Rails is to explore what is around. The sooner you do the sooner you will find things to help you be more productive. Just pay attention to what you, and others, are doing and think it through, and you will have a lot of fun.