humbl, LLC is in the business of developing innovative and easy-to-use Web applications for business.
humbl bits is our blog in which we discuss issues related, to various degrees, to our business.
Copyright humbl, LLC.
All rights reserved.
Let's quickly make sure that the record is straight. I am a database snob. Furthermore, I am unrepentantly and unapologetically this way. I will be dating myself, perhaps badly, but I remember when Microsoft had a product called File (for the early Macintosh) and I cut my (baby) teeth building business applications in a long-forgotten product called DBMaster. There was nothing at all wrong with either of those products. Indeed, I built solutions out of each that were critical to the small business I built them for over the course of many years.
Several years after building with those systems, though, I started working with Oracle, v5 to be precise, and used Oracle almost exclusively for almost a decade. It was during this time that the snobbery set in as I came to truly appreciate the value of not only the SQL language, but of a system that could be used to built robust systems in which data integrity and quality could be designed and enforced right inside the database rather than simply being dependent upon the competence and care of an application developer. I appreciated the "tightness" of enterprise-quality databases and it was from that reverence for quality over expediency that the snobbery set in.
Of course, Oracle is but one of a handful of technology companies that, while possessing great technology, mainly exists to extract every penny from your pocket as they possibly can. So, in the late 1990s, when I began work on a Web application called IEPlanner for a non-profit private school for students with disabilities who lacked the budget for an Oracle license, I went looking for a "free" database system that could appease my snobbishness while also costing, well, nothing.
Research led me to PostgreSQL, which had started as an academic project for teaching how to develop a relational database management system, that had been adopted by volunteers with the intention of enhancing it so that it was usable in production environments. I figured IEPlanner could be developed on this platform and then, when the school saw how valuable it was, the cost of an Oracle license would be an easy sell and I would simply port from one SQL dialect to another for the final release.
I think my use of PostgreSQL started with v6.3, but v6.4 was the "current" version as I neared completion of IEPlanner. My plan was still to port the final release to Oracle as PostgreSQL v6.4 had some "issues", shall we say. While I don't recall it ever losing data, I do recall some features not working quite "right", some crashes, and it also was missing some of the functionality of Oracle upon which I had become dependent for professional-level development. All that said, as I worked with it, I found that there were some things about PostgreSQL that I liked even better than Oracle, not the least of which was its ability to run nicely and easily on my "junky" development system (a retired Compaq 486 desktop running Linux).
Anyway, around this time I had planned a trip to the Javits Center in New York City for a Linux conference of some type. The PostgreSQL group were to have a booth and I was excited to meet some of them to provide feedback based on my work with their database. I had done some minor correspondence with the team while I was developing and looked forward to meeting them in person. I first met Bruce Momjian, who was as nice in person as he seemed on their mailing lists. As we talked about some of the issues I saw, he decided that I'd be better off talking with Tom Lane, who was carrying a huge chunk of the burden of fixing the problems in the core code. Tom, in turn, turned out to be as smart as he seemed on the mailing lists.
During our conversation, Tom suggested that I used the prerelease version of v6.5. I don't recall if it was even considered "beta" quality at that point, but Tom spoke about how v6.4 did indeed have all the deficiencies I had identified, but they had no plan to release any modifications to that branch. However, while we agreed that using prerelease software in a production environment was generally a bad idea, he felt that even the development branch of v6.5 was miles better than the production v6.4 and that it might meet my needs. He successfully encouraged me to try it out and to consider using PostgreSQL instead of Oracle as he thought the final v6.5 release would not be far behind my own release schedule for IEPlanner.
Tom was absolutely right about the quality improvements of v6.5. It was a hugely important release that, to my mind, made PostgreSQL a viable alternative to the offerings of the established RDMBS vendors, at least for small and medium-sized projects (today I believe it capable of handling virtually any workload). In the end, IEPlanner was never ported to Oracle and I think, for several months, the school used a prerelease version of PostgreSQL that performed admirably. I know for a fact that it never lost any data as...
...the vast majority of system projects I have developed since have used PostgreSQL as their underlying database and I have never experienced any data loss with the system even once. The quality of the work and the dedication to robustness of the PostgreSQL team is exemplary. I've worked with numerous other database platforms over the years, but PostgreSQL is the one I like most. And, it's not even a close contest.
I like the fact that the project is "staffed" with developers who are not only smart, but very decent human beings. I like that it has relentlessly improved with each release. Many years ago it matured to the point where I was excited by new functionality that I awaited as it was critical to my development. Today I look to see how I can use their latest innovations. PostgreSQL used to get a bad rap for performance, though its quality and (general) adherence to standard always outweighed performance for me, but this has been more than adequately addressed and the system is downright speedy these days. Their work on JSON brought many of the benefits of non-relational systems to PostgreSQL's traditional RDMBS approach, thus bringing the benefits of both worlds to the system. I've used these features extensively and they're fantastic.
So, basically, this is a salute to a really talented team of developers who have achieved a tremendous amount over the past couple of decades. This week they released v13 of the database to the world and it has come further along than I ever could have imagined when I started using v6.3 way back when. Congratulations to the entire team!
As for IEPlanner: It was the first Web-based system that I know of for writing Individual Education Plans for K-12 students and went on to win a CIO Magazine 50/50 award for innovation. Using PostgreSQL was a key component of the innovation and I am thankful for the role this wonderful system has played in my own career.
Written by Will Sofko, founder of humbl, LLC, on September 27, 2020.