Madness on Rails

  • 31 December 2010

Ruby on Rails is all the fashion. It is quick, fast, efficient, trendy, new, slick, cool and most of all extremely annoying. I am trying to upgrade an Apache+Phusion Passenger+Rails installation. Everything runs on Debian 5.0. The Apache and the Phusion Passenger is compiled from source (including the MySQL database). Ruby and Rails come from the Debian packages (with backports (and with Ruby special backports)). Everything’s a total mess.

  • You need a ton of Ruby Gems for everything to work.
  • You have a ton of versions for all the Gems. Of course you can install them in parallel.
  • Debian’s Ruby Gems won’t work.
  • You need a Ruby Gem Manager from backports or wherever from.
  • You get NULL pointer given error messages – this is exactly why I want to use a high-level language. By the way, this error message hits right in the middle of a Redmine database schema upgrade, and the upgrade script just remarks that some updates won’t get executed. Hello? Database consistency, anyone?
  • You can’t figure out easily why something fails, what requirements it has and which combination of version you need to get it working.
  • You get lots of 500 and 404 HTTP status codes.
  • Something got updated, lost MySQL support, so MySQL support now is a Gem which can’t find the includes and libs in /usr/local/ – and there’s no help in discovering the options to direct the RubyGems manager.
  • You can choose between Ruby 1.8 and 1.9. Debian won’t probably switch to 1.9 because of stability issues. Yes, and by the way, 1.8 and 1.9 share Gems with the same version which are completely different.
  • If you finally discover the Ruby Gem backports and update your Gems, your Ruby Gem Manager will get updated and all Gems will be lost and have to be installed again.
  • RubyGems 1.4.0 proudly tells you that rubygems is switching to a 4-6 week release schedule, so that things break more often.
  • RubyGems take ages to run and to do anything (while maxing out one CPU core and leaving the others with 0% load).
  • The Phusion Passenger install script for the Apache module has multi-coloured output, but you cannot do much if something isn’t found.

The list is probably endless. I know why I use PHP instead. PHP is crap, but at least it’s honest about it and you can get it to run eventually. Hell, even web apps in C/C++ or Java are easier to maintain.

Sorry, the comment form is now closed.

Top