Is it Postgres' time to shine?
Postgres for years has lived in the shadow of MySQL's media attention: the "boring" database that quietly goes about its work while its sexy Web 2.0 cousin wins the popularity contest.
Recent data from the Eclipse Foundation, however, suggest that Postgres may be ready to make significant waves in the enterprise, even if it doesn't make headlines.
In a recent letter to European Union's commissioner of competition, former MySQL CEO Marten Mickos stressed that MySQL's target market is the emerging Web database market and that the enterprise IT market was never really a source of strength (or focus).
Postgres is the opposite.
Postgres is an enterprise Java database, more suitable for carrying corporate data than the Web's consumer data. According to a 2009 survey by the Eclipse Foundation, MySQL (27.7 percent) and Oracle (27.3 percent) were the top-two databases used by those surveyed, with Postgres registering a respectable but still distant 9.9 percent.
Given that Oracle database users are far more likely to use Java as their programming language to develop server-centric applications, while MySQL users are three times more likely to use PHP as their primary language (17.4 percent of those surveyed use it, versus 5.4 percent for all users) to builde RIA/Web applications, Postgres is clearly more Oracle than MySQL.
Granted, the Eclipse community is traditionally Java-centric, so it's not surprising that Java would be prominent among its developers. But it's also the case that enterprise IT remains a Java/.Net market, and in such a market Postgres could be poised to boom if it can muster sufficient marketing to make its message heard.
This is where EnterpriseDB comes in.
The MySQL community would not be as well-developed as it is without MySQL, the company. MySQL AB has funded the overwhelming majority of MySQL database development, but it has also provided the marketing muscle to make a name for the Web database.
Postgres has traditionally been a standalone, organic open-source project with little concerted corporate involvement. EnterpriseDB has started to change that, but for too long wrongly fixated on competing with MySQL, a database that serves a different market and different developers. The company also spent too much time talking about Oracle migration technology, rather than focusing on why Postgres is a great database.
That may be changing.
Postgres just released version 8.4 of the venerable database. In EnterpriseDB's discussion of the release, there's no mention of Oracle, MySQL, or any other competitor. Instead, EnterpriseDB seems to be focusing more on its commitment to Postgres development, adding significant enterprise hardening through its open-source Postgres Plus distribution.
It's a welcome change, and one that could position Postgres to take a bigger share of the enterprise Java database market--not because it's cheaper than Oracle or more open than MySQL but because it's a great database in its own right.
That's the right messaging for EnterpriseDB...and Postgres.
Matt Asay brings a decade of in-the-trenches open-source business and legal experience to The Open Road, with an emphasis on emerging open-source business strategies and opportunities. Matt is vice president of business development at Alfresco, a company that develops open-source software for content management. He is a member of the CNET Blog Network and is not an employee of CNET. Disclosure. You can follow Matt on Twitter @mjasay. 






PostgreSQL is written in C.
Although PostgreSQL has language binding s for most of the popular web languages we use Java and Python for web and back-end office work and C/C++ for embedded development.
For us PostgreSQL has proven to be an excellent choice for many reasons not the least of which is that it scales very well. I am glad to see it get more attention.
Postgres is a 'Java database'? This makes it sound like Postgres is written in Java or something... (only if you want stunningly slow, piggish performance...)
Uh, no. Postgres has been around a *lot* longer than Java.
You are correct in that Postgres is finding a lot of traction in enterprises which tend to use Java, but the database itself can be used from many languages and, in fact, is kind of unique in that stored procs and triggers can be written in a variety of languages. It also has a whole host of unique features that make 'object persistence' much easier to achieve than in traditional SQL-92 databases.
I agree that its nice to see Postgres getting its due in the marketplace after being overshadowed so long by MySQL. Postgres is used in many more places than folks would imagine.
Cheers,
- Bill
If you only knew what Java can do.
Oh, I know well what it can do. Been using it since 0.9 release in 1995. Trained people on using it in 1997-1998. Finally swore off of it a couple of years back.
I also know well what it cannot do - like trying to write performant servers. You might attribute that to my lack of skills - but I've been on projects where folks a *lot* smarter than me were trying to write performant servers - didn't happen.
Came to the conclusion, after many many years of trying to get Java to do all sorts of various things, that it wasn't really good at any of it, so I chucked it aside. Went back to C/C++ for performant servers, and Python/Ruby for the app stuff.
Cheers,
- Bill
Interesting comments re: java. If I can inject, i'd like to add what you said.
I too have been writing Java code almost exclusively since the mid-late 90's. It's been the core-foundation of 3 ventures that i have been a part of. It's a tool, but one that has been ultra-reliable and tho cumbersome, predictable and reasonably easy to manage. Java coupled with Postgresql has enabled to create truley create-deploy and forget systems. I've got various systems that have been 'just working' for years, which we are still using internally.
But with all that said, in the last 2 years, we've shelved our Java tools and have moved onto the Ruby on Rails train. Our lead engineer is a long-time java programmer, but one of the authors of Orielly's Ruby on Rails books. We've had a LOT of success in rolling out, quite rapidly solutions for our internal and external solutions.
Now, with all the joy of having rapid development, it's come at a bloody cost. The RoR applications are much more brittle. Various changes to various gems, changes to ruby itself and rails is still under massive internal change. In the end, the restful nights of deployed java apps are now replaced with semi-regular outages due to various scalability problems, (I'm sure part of the problem turned out to be poor design decisions on our part, but not always).
The lack of a decent and highly scalable enterprise-capable deployment stack, (and apache w/passenger doesn't count as one) has made things a lot more of a challenge.
How we've dealt with the issue is throwing a LOT more hardware at our solutions that the equivalent java stack would require, and much more difficult upgrade/deployment cycles.
We've paid a huge price for leaving Java, in hindsight I'm still not convinced it was the right decision. But for now we'll live with the fact that we can roll out buggier software faster. :) I'm still secretly hoping that JRuby will become an acceptable reality to where deploying into Glassfish/Resin/Tomcat is actually stable and not fringe.
You should look into using Grails (www.grails.org). You can write your code in Groovy or Java and get all the benefits of RoR. It's built on top of Spring and Hibernate . It provides a powerful solution that is deployable in any Java application server (Tomcat, JBoss, Glassfish, Jetty, etc.)
Did your company investigate Django before deciding on ROR? Django is to Python like Rails is to Ruby (or Grails is to Java). There are quite a few blog postings demonstrating the capability of Django scaling; here are a few:
http://stackoverflow.com/questions/886221/does-django-scale
http://www.davidcramer.net/other/43/rapid-development-serving-500000-pageshour.html
As an added bonus, Python + Django is far less fragile than RoR.
Best,
-JK
I am a huge fan of RoR, but it doesn't scale easily, is a pain to deploy and Ruby is 100-300 times slower than Java is(Python, PHP, and Perl are about as slow as Ruby,though Python is pretty decent usually). Mongrel is extremely fast but would be faster written in java, though it would be a lot more source code. Of course lines of code do not imply anything about performance.
Postgres really has no association with Java that i know of.
Ivan
PHP is a beginners language,full of security, consistency and perform issues. You can write web back-end in PHP and that is about it. Java and ruby can be used for literally everything. Web, desktop, systems, servers, embedded(java to a lesser extent than Ruby), multiprocessing, etc, etc.
Java is solid, if not a little clunky,and Ruby is arguably the most elegant language in existence.
Java and Ruby as so far above what PHP can do. Java rules the enterprise roost for a reason, although I tend to use Python and Ruby over Java when I can. But I generally don't do API monkey programming(which what most of EE programming is), if I did I would probably spend 100% of my time in Java.
Now, run-on sentences asides, I've mostly been seeing this in CMSs from my own point of view (like Joomla and Drupal) but it doesn't surprise me that it's been gaining ground elsewhere.
Of course, it's BSD license does allow it to be closed off by proprietary companies which I can't help but see as a downside considering all who have contributed and will see nothing of such a company's profits but hopefully the core project will stay strong.
I don't exactly who owns Postgres today but the history shows that it started from Berkley and that Bruce Momjian is the co-founder. One hopes that what has happened to MySQL will not happen to Postgres, and that Postgres will not be sold off once it gains momentum.
Looking closely at Postgres we can see that one of the creators spawned Illustra and sold that company for a nice big sum. So we can say that one core difference is that MySQL was sold off, whereas with Postgres, the developer started a new company and sold the new entity, not Postgres itself.
- by wickenby October 14, 2009 2:34 AM PDT
- Please forgive the dumb questions:
- Like this Reply to this comment
-
(20 Comments)What's the link between Postgres / Enterprise DB & Ingres.
How do the two (3 ?) compare ?