This is not a new goal, in some ways. Improving installation, one of our previous 5 goals, was really about improving the experience for new users. But the new user experience goes beyond installation now, and competition has "raised the bar". That is, we matched MySQL, but now that's not good enough; we need to match the new databases. It should be as easy to get started on a dev database with PostgreSQL as it is with, for example, Redis. Let me give you a summary of the steps to get up, running, and developing an application in the two platforms:
Redis:
- install Redis, either from packages or multiplatform binaries. No root access is required for the binaries.
- read a 1-page tutorial
- run redis-server
- run redis-cli or install drivers for your programming language
- start developing
- when your app works, deploy to production
- in production, tune how much RAM Redis gets.
- install PostgreSQL from packages or the one-click installer. Root/Admin access is usually required.
- search the documentation to figure out how to get started.
- figure out whether or not your packages automatically start Postgres. If not, figure out how to start it. This may require root access.
- Install drivers for your programming language.
- Figure out how to connect to PostgreSQL. This may require making changes to configuration files.
- Read more pages of documentation to learn the basics of PostgreSQL's variety of SQL, or how to program an ORM which works with PostgreSQL.
- Start developing.
- Deploy to production.
- Read 20 pages of documentation, plus numerous blogs, wiki pages and online presentations in order to figure out how to tune PostgreSQL.
- Tune PostgreSQL for production workload. Be unsure if you've done it right.
So, what can we do about it? Well, a few things:
- better new user tutorials, such as the ones on postgresguide.org
- better autotuning, made a lot easier to implement as of version 9.3.
- a "developer mode PostgreSQL"
Those are the five things I can see which would greatly expand the market for PostgreSQL and keep us competitive against the new databases. Yes, I'm talking really big features, but any two out of the five would still make a big difference for us. There may be others; now that you've seen the kind of big feature I'm talking about, put your suggestions below.