I happen to like the idea of using cross database compatible SQL in my application code.
While this can produce somewhat horrific code (thank you Sybase for passing on to Microsoft the notion that only one query per database handle can be active at a time), most of the time i am happy with the extra planning trade off that allows customers to use a database that they are familiar with.
However, while testing a number of database backed packages of alternative products, it became horribly apparent how vital at least support for an embedded database is.
Because all i wanted to do is experiment with each application and see how it worked and if it matched with my needs.
rpm -i $PACKAGE
Point browser at url.
Database error. unable to determine username / password to create database
Oh goody. Thank you for making me find and read the sys. admin. notes on how to reconfigure the application to use my pre-installed and locked down database.
This takes time. It's annoying b/c i have to evaluate a pile of these packages. By the time i am actually looking at the working product, i already hate it for wasting my time. B/c my job is not dealing with this package. The package just helps???? me do my job
Alternatively, if the installable package came including a pre-configured and instantly available SQLite database (possibly even with sample data in it) my first experiments with the package would have left me feeling much happier.
To be fair, any embedded product would probably be fine, including Embedded MySQL (which i've never used), it just needs to not depend on the user having a completely unsecured database installation to work.