Why favor PostgreSQL over MariaDB/MySQL?
This is really about database semantics. If you think database semantics matter, you&#x27;ll almost certainly prefer postgres.<p>A lot of people simply don&#x27;t care about database semantics though. Possible reasons:<p>* They are more interested in a particular application (e.g. wordpress), and use whatever default database it seems to prefer.<p>* They are more interested in a particular framework&#x2F;library (e.g. django), and use whatever database it seems to prefer.<p>* They don&#x27;t see any reason a database should have interesting semantics, because it&#x27;s just a place to stash data until you need it again.<p>* They really care about programming languages, but see SQL as a second-class citizen that looks archaic and is really just an obstacle to work around using cool language features.<p>I believe database semantics do matter. It&#x27;s hard to make a single argument that will convince everyone, but here are a couple things to consider:<p>* SQL catches errors that may be impractical to catch even with haskell. For instance: you could have had a bug in the application three versions ago that lead to an inconsistent database state (e.g. a duplicated item ID), and you are just finding the bug now. SQL to the rescue: if the unique constraint exists, then you are fine, and the error would have been raised three versions ago before it ever got in the database.<p>* Few languages have anything that comes close to ROLLBACK. Erlang kind of does, in the sense that it&#x27;s a mostly-functional language and a process crash mostly resets you to a good state. But the guarantees of ROLLBACK are much stronger and clearer. I believe this is actually why erlang never really took off widely -- a PHP script hitting the database is a better version of the same concept: the PHP code can crash, and that will cause a lost connection and a ROLLBACK in the database, getting you back to a known-good state and the other requests just continue working (security and other PHP jokes aside).<p>Rambling a bit, but I believe postgres really is the leader when it comes to database semantics, and I believe that is one of its most important contributions.