I have been playing with Ruby and Rails for a good number of months already and fond it quite interesting.
It’s fairly easy to start new projects and get going, although it’s also very easy to make
mistakes if you don’t know what’s going on behind the scenes. For instance, it’s very easy
to have the N+1 SQL problem, or dependency mismatches between machines.
What I like:
- Migrations
- Different environments (dev, test, production), and predefined configurations for each, like log level
- Real time development, change a file and see the changes immediately.
- AJAX support, very easy to create partial updates and requests
What I don’t like:
- Dependency management, if you don’t define versions it will take whatever is installed in the system
(but probably I’m just spoiled by using Maven for so long) - Debugging, it ends being puts statements, although there’s probably something helpful out there
- The plugin ecosystem, it’s a big mess with plugins and forks of plugins, and forks of forks,… It’s too easy to fork, which makes users less likely to contribute the changes and just work on their version.
- Scripting, mistakes like typos are very easy to do, and refactoring becomes a big PITA
Re: debugging… you can fire up a server in debug mode and set breakpoints as usual on the Aptana IDE.
I had lots of problems in the past (using Windows) and I know that some co-workers spent some time until it worked on Ubuntu, but with OSX it “just works” (for me).
Dependency mangagement has improved with the new templating in Rails 2.3. The plugin ecosystem, I completely agree. I guess at some point one needs to decide, is it SVN or git.
I loved Rails but sadly I have said good bye for now. On Windows it is a complete freakin nightmare, so until I am on a Mac, I am going to get stuck into Python.
Check out ‘ruby-debug’ for debugging. I’ve found it very useful. I also tend to have a rails console open while I’m developing to run quick tests and sanity checks.
You’re absolutely right about the plugin ecosystem. It’s a mess.
As for scripting/typos, having a good set of tests helps a lot. You should eventually check out rspec and cucumber.
Good luck!