Ruby (no Rails) + FastCGI

One of the projects I’m working on is recreating the Surplus Property website at UVA. We are doing this in Ruby+FastCGI, which I’m using for that first time. It took me a few days to get used to programming in Ruby because it is unlike other languages. Proponents can argue that it is easier and more intuitive,
but it isn’t to people like me who are used to other languages.

Ruby itself was ok, but using FastCGI takes some getting used to especially if you are used to the conveniences of PHP. There are no easy to find session handling libraries – so you have to do it yourself. In fact there is a lot you have to do yourself including parsing for GET and POST variables and some basic code to handle FCGI requests. There is also a serious lack of documentation about using Ruby+FCGI. Thankfully I have some help from our server admin.

Debugging Ruby+FCGI applications is also not easy. When an application dies because of an error, it writes to the Apache log and all you get in the browser is a nice ‘Internal Server Error’ (you can use begin – rescue blocks but they won’t help with syntax errors). Once you use something like this, you will really appreciate the conveniences of the PHP world – easy to debug, lots of documentation and lots of users out there.

On the +ve side, FCGI apps once written are blindingly fast because the application is always running, needs no recompilation, database connections need only be made once when the app starts and that can reduce a lot of overhead. As such FCGI is nice, but has a long way to go as far as documentation and libraries go.