Why doesn't xTuple use the latest version of _____?

People frequently ask us why xTuple does not use the latest version of PostgreSQL, or the latest version of Qt, or run on the latest version of ... well ... whatever.

There are several answers to this:

  • The latest version is not always the greatest. For example: we recently had a problem where plv8, the JavaScript engine embedded in our database server, automatically updated itself on some Linux systems and stopped working. The plv8 maintainer quickly fixed the bug but it takes time for a change like that to propagate.
  • The latest version may introduce changes that our software is not expecting. For example: Recent versions of PostgreSQL, our database server, started enforcing the rule that the number of placeholders in error messages must be matched by the exact number of replacements. This revealed a few bugs in our stored procedures that we had never notice because they would only appear when errors occurred.
  • *If it ain't broke, don't fix it.* It is possible to write more efficient code using some of the new features in our software development toolbox. However, doing so would require changing code that we know works. We have to weigh the potential efficiency gains against the risk of breaking parts of the product that we know are stable.

As a corollary to this last point, we have a responsibility to our customers to remain as stable as possible. Their businesses, their livelihoods, depend on xTuple software.