---
title: 2009 Ruby survey results
teaser:
tags: web,ruby
author: Matt Jankowski
published_on: 2009-12-30
---

Thanks to the 1000+ developers who participated in our [ruby community
survey](https://thoughtbot.com/blog/post/276620679/ruby-community-survey) a few
weeks back.

Here are the results as we head into 2010.

There are result reports linked to from within each section, and this post does
not comprehensively list all the results, so click through if you're interested.

## Apologies

![''](http://media.tumblr.com/tumblr_kvhb8lVINN1qz4sb2.jpg)

I'd like to apologize to the dozens of people who felt personally wronged by
this survey.

There are questions that are too narrow or too broad.  There are questions that
are missing options.  There are questions that assume too much about an
"either/or" scenario, when people really behave differently depending on
context.  There are questions which insult people's core beliefs, I guess.
Fortunately for all of us, the results of this survey aren't being used to
decide anything too important.

## Demographics

The [demographics results](https://thoughtbot.wufoo.com/reports/demographics/)
show that <abbr title="PHP HyperText Preprocessor">PHP</abbr> (36%) and Java
(22%) are the dominant "prior languages" of many ruby developers.  Notably, we
left out Python.  Sorry python folks.

We also see that more than half the people who took the survey work on ruby
professionally on a small team.

Textmate (51%) wins the editor battle, with vim (21%) in second place - and
"Distributed VCS" (git, hg, etc) dominates (83%) the version control section.
I'm sure that credit and thanks are due to the [github](http://github.com) team
for building a product which makes using a great VCS tool even better.

## Formatting

The [results](https://thoughtbot.wufoo.com/reports/formatting/) show that in
regard to an 80 character line limit, the "modern displays are wide enough to
not enforce a limit" position wins out, though not with a majority.  The
questions about keyword spacing, and blank lines are fairly evenly split.  A
solid 75% of people always use parentheses on method definition -- maybe enough
to justify criticizing people who don't?

## Style

The results ([part 1](https://thoughtbot.wufoo.com/reports/style-part-1/), [part
2](https://thoughtbot.wufoo.com/reports/style-part-2/)) show a strong preference
for "self.method_name" over "class << self" for class method definitions and for
only using exceptions in exceptional situations.

## Database

![''](http://media.tumblr.com/tumblr_kvhbanu6ju1qz4sb2.jpg)

The [results](https://thoughtbot.wufoo.com/reports/database/) show that a slight
majority prefer to disallow null in boolean columns -- but most are willing to
allow NULL in Integer and String columns.  Results are split on adding indexing
"only when performance issue" vs proactively adding them to foreign key columns
ahead of time.

## Views and Rails

The [results](https://thoughtbot.wufoo.com/reports/views-and-rails/) that many
people use a shared folder for "global partials", and show little consensus on
how/where to send email from.  I think this question got the most "other"
replies -- let us know how else you're sending email in the comments.

## Documentation

The [results](https://thoughtbot.wufoo.com/reports/documentation-and-wrapup/)
show that ruby programmers prefer meaningful variable names, and only like to
document code when it's complex and needs explanation.  Almost 80% have
committed a code change which effects only code formatting and not
functionality.

## Wrapup

Maybe most encouragingly, when asked about whether the types of questions in the
survey mattered or were a huge waste of time, nearly 90% chose the "I think it's
worth caring about your craft, and these questions are professionally relevant"
option.  From our experience at conferences and user group events, that seems
consistent with the commitment to quality and best practices that exists in the
ruby community.
