Two small quibbles that I thought were just big enough to raise
I think we will stick with our current plan, and usePostgresql. In
general, it makes me uncomfortable when developers refuse to use one
tool or another.
It depends on the developer. Good developers know what they're
talking about, and their preferences can often tell you a lot about a
tool -- and about their development practices -- that you might not
In other words, if a developer has a *good* reason for refusing to use
something, it may be to your advantage to find out what that reason
It shouldn't really matter. It's the architecture
that really counts.
Perhaps, but in practice that's not really true -- details that are
computationally trivial can make a huge difference to developer
productivity. That's why we don't typically develop Web apps in C,
although it can be and has been done.
One thing to consider is that the idea that ActiveRecord just magically
insulates the developer from understanding the underlying database
is wishful thinking, once you get past your basic 'hello world' app.
Yes, you have to *understand* the DB, but that often does not require
changes to well-written code. I have written and maintained complex
applications that were deployed on both mySQL and PostgreSQL, often
simultaneously. ActiveRecord really *does* insulate the developer
from a lot of DB-specific stuff -- if the developer is smart and
writes DB-neutrally. (I just took over maintenance of an app where
the developer didn't do that...)
And part of being "smart" is understanding the underlying DB well
enough to know what's portable and what isn't.
So if someone knows MySQL well, s/he may not want to put the time
into learning the gotchas of another DB. I would charge more just to
cover the aggravation of using Postgres's god-awful command line
I never use the command-line tools, either with PostgreSQL or mySQL.
I don't find either set to be very easy to use...that's what graphical
admin programs are for.
(Maybe if I were a DBA, things would be different. But I just don't
use the command-line tools often enough to remember syntax between