IronRuby On Rails VS. Ruby On Rails (Getting Started)
I am a C#/ASP.NET/MVC/Silverlight developer with a few years experience. I'm trying to kickstart my Ruby On Rails learning. I'm currently trying to get a real feel for ROR.
I Want To Know Standards
As a .Net developer, you tend to use a standard IDE (Visual Studio), a few standard databases (SQL Server, Oracle etc.), and a particular way in which to style your web 2.0 application (XHTML/CSS, Silverlight etc.)
'So what are the standard equivalents to these in RUBY ON RAILS!? (IDE, DB's, Presentation Layer Markups)'
What route do I take? I've heard about IronRuby and from what i've read thats nearly complete in terms of converting it for use with Rails (IronRuby on Rails). OR Do I just go straight into using Ruby On Rails!?
How will I be benefited from using IronRuby on Rails over using Ruby On Rails?
Help greatly appreciated thanks.
Most RoR developers use a simple text editor (Textmate on MacOS, Scite on Windows) - mostly because most features (Refactoring, Code Completion) of IDEs designed for languages like Java/C# can't be applied that easily on a dynmic language like Ruby. However Netbeans does well so far (on the other hand there is Aptana Studio - based on Eclipse).
Since RoR does a lot of abstraction it doesn't really matter what RDBMS you use. MySQL and Postgres might be the best choices since they are the most used ones (so you can hope for continuous support). I wouldn't start to chose based on the flamewar about performance, rather on the services/support that come with them.
The standard would be ERB (similar to ASP inline scripts) combined with (X)HTML. However there are other markups like HAML which might be enough for some projects.
Using IronRuby you get access to the .NET framework and interop with other .NET libraries. You might also write some parts of your application in static C#. According to some benchmarks it might be "faster" than native Ruby, not a real advantage though IMHO.
At the moment I would recommend you to get started with regular RubyOnRails - you might be able to switch later on (once IronRoR is stable enough) - if you should still desire to switch.
On Macs the standard IDE is Textmate.
On Windows, there isn't a standard in quite the same way, but I like Netbeans.
MySQL is probably the RDBMS most used with Rails, and hence the most supported, but I use Postgres, which is also very well supported, and have had no issues with using it.
The built in erb works perfectly well, and as it is built in I guess that makes it a standard. You can always use others if you want to.
IronRuby vs Ruby
IronRuby may be almost feature-complete, but I bet there is a good chance that some functionality will go awry, and you may have difficulty tracking down whether it is your code, or IronRuby. I'd be tempted to develop in vanilla ruby, and then port to IronRuby later, if that is an appropriate way to deploy your apps.
See also this question for information about commonly used plugins: Rails Plugins
I would strongly recommend using regular Ruby On Rails - you don't want to have to worry about whether your errors are caused by problems in your code or incompatibilities in the platform you're working with.
The rest of my advice may be hopelessly out of date- it's a couple of years since I did much with RoR, but I'm sure others will mention it if I'm entirely incorrect.
There probably are IDEs with plug-ins for Ruby now ( I'd be looking for some Eclipse plug-ins maybe ) but it's not as regimented as the Microsoft ecosystem. You're working with open-source tools which means that different developers who like different things find solutions that work for them, so there may not be a "standard" as such. I got very accustomed to using Emacs with the ruby-mode plugin which is pretty awesome but there is a learning curve. I took the Pragmatic Programmer's advice to get good at using a text editor pretty seriously on that front and I'm glad that I did.
In terms of databases you may as well use MySQL as that seems pretty standard but I believe you can find an ActiveRecord back-end for a lot of different DB solutions. If you know how to use basic SQL and you get on alright with SQL Server and Oracle you'll be able to get on fine with MySQL though, no question.
With regard to the presentation layer, that's really created through Rails views. The aim is usually to build standards-compliant html and use CSS to style it. I learned a lot from the Agile Web Development With Rails book as a guide to how the platform works as a whole. I know everyone wants to learn everything from the web for free these days, but that book fitted things together in a way I found very practical and represented excellent value for money.
Regarding Ruby or IronRuby - the benefit you will get from using IronRuby is only by its seamless interoperability with .Net objects.
If you're planning on using your .Net code from your RoR app, use IronRuby. Otherwise, go for Ruby.
By the way, if you're planning on using IIS, IronRuby on Rails will run more naturally on top of it as well.
IronRuby is a Open Source implementation of the Ruby programming language for .NET, heavily relying on Microsoft's Dynamic Language Runtime. The project's #1 goal is to be a true Ruby implementation, meaning it runs existing Ruby code. Check out this summary of using the Ruby standard library and 3rd party libraries in IronRuby. IronRuby has tight integration with .NET, so any .NET types can be used from IronRuby and the IronRuby runtime can be embedded into any .NET application.
later in this article:
Step 2 – Install an IronRuby friendly editor
You will need to Install an editor to work with IronRuby as there is no designer support for IronRuby inside Visual Studio. There are many editors to choose from but I would recommend you either went with:
SciTE (Download the MSI): This is a lightweight text editor which is simple to get up and running. SciTE understands Ruby syntax and allows you to easily run IronRuby code within the editor with a small change to the config file.
SharpDevelop 3.2 (Download the MSI): This is an open source development environment for C#, VB, Boo and now IronRuby. IronRuby support is new but it does include integrated debugging. You might also want to check out the main site for SharpDevelop.
Note: as of version 1.1.1 (released: Oct 21, 2010), Visual Studio 2010 has the first-class support for IronRuby (native, rails f/w and much more).