tecosystems

Free Code != No Barriers to Entry

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

One of the things I’m increasingly coming to understand concerning the “Barriers to Entry” meme that we continue to propagate around here is that it’s an intrinsically multi-layered issue, and one that depends heavily on context. I’ve been keenly aware of this at the last few conferences I’ve attended; the IBM event this week, OSBC two weeks ago, and the MIT forum the week before that.

For example, with the rumors surrounding Oracle these days, I’m being asked about the fortunes and outlook for JBoss and MySQL pretty continually. Part of my explanation as to why they are as relevant as they are, of course, is the volume that both represent – MySQL in particular. As I told a couple of the IBMers this week, I’m in the process of reading Hansson and Thomas’ “Agile Web Development with Rails : A Pragmatic Guide,” [1] and of course the examples in the book all are based on MySQL as the default datastore. The database is simply ubiquitous, and JBoss is similarly common in Java shops, if not on the same scale as MySQL.

The question many reporters, vendors, and enterprises have is why? Why are these programs so popular with developers? Well, in my original piece discussing “Barriers to Entry,” I explained their success – in part – with the following:

I’m often asked what I believe to be the most critical success factor in projects such as JBoss or MySQL, and while the technical merits are important I believe that neither one of those projects would be where they are today without being freely downloadable. In competing with their commercial counterparts, JBoss and MySQL can differentiate simply by being easily obtained. When beginning a project, the choice is often download and get coding or head to procurement, and unsurprisingly the former is generally the preferred option. While this is certainly not a prerequisite for success, it’s a very effective means of encouraging participation in your particular community, because there’s no barrier to entry.

The basic premise there is clear, it’s a reframing of one of the commonly understood advantages of open source – distribution. Having freely downloadable code makes it easier for developers to build on your project – hardly revelatory, I know.

But what is less clear to many is that there many levels of having freely available code. You might make your free code available, for example, only to those willing to provide you with detailed registration information. Or maybe just to those that provide you with a valid email address. Or those that click through a EULA. All of those represent a potential barrier to entry; some may be necessary, some may be acceptable to the majority of your audience, but all act as a potential throttle on adoption of your product.

In the absence of competition without barriers to entry, all of the above would likely be acceptable. But the fact of the matter is that if you’re in the relational database market or the application server market, you’re competing with vendors that do not have these barriers. Nowhere is this more apparent than in the case of the application management systems for the various Linux distributions. Taking Gentoo as an example, which maintains over 11K applications at last count, let’s look first at the database market. Here’s a query to determine whether or not I can install MySQL using Gentoo’s package management facilities – which means I never have to visit a website, register anything, or even trigger a download:

sog@sogjr ~/dev/depot $ su -c "emerge -s mysql"
Password:
Searching...
[ Results for search key : mysql ]
[ Applications found : 28 ]

* dev-db/mysql
Latest version available: 4.1.14
Latest version installed: 4.0.25-r2
Size of downloaded files: 50,172 kB
Homepage: http://www.mysql.com/
Description: A fast, multi-threaded, multi-user SQL database server
License: GPL-2

So far so good, if I’m a dev. I can install MySQL and its dependencies – along with 27 other related packages – all without visiting a single website. How about MySQL’s open source competitor, Postgres?

sog@sogjr ~/dev/depot $ su -c "emerge -s postgres"
Password:
Searching...
[ Results for search key : postgres ]
[ Applications found : 8 ]

* dev-db/postgresql
Latest version available: 8.0.4
Latest version installed: [ Not Installed ]
Size of downloaded files: 25,261 kB
Homepage: http://www.postgresql.org/
Description: sophisticated Object-Relational DBMS.
License: POSTGRESQL

Yup, it’s in there. No barriers here. Now how about some of the competitors from the vendors? Let’s try DB2:

sog@sogjr ~/dev/depot $ su -c "emerge -s db2"
Password:
Searching...
[ Results for search key : db2 ]
[ Applications found : 1 ]

* dev-php/PEAR-MDB2 [ Masked ]
Latest version available: 2.0.0
Latest version installed: [ Not Installed ]
Size of downloaded files: 260 kB
Homepage: http://pear.php.net/MDB2
Description: Database Abstraction Layer
License: BSD

Not much available there, but it’s probably not too surprising. There hasn’t been a free version of that product available for all that long. But what about Cloudscape?

sog@sogjr ~/dev/depot $ su -c "emerge -s cloudscape"
Password:
Searching...
[ Results for search key : cloudscape ]
[ Applications found : 0 ]

Maybe under it’s Apache moniker, Derby?

sog@sogjr ~/dev/depot $ su -c "emerge -s derby"
Password:
Searching...
[ Results for search key : derby ]
[ Applications found : 0 ]

Doesn’t look like it. But it’s not just IBM; Oracle doesn’t fare much better:

sog@sogjr ~/dev/depot $ su -c "emerge -s oracle"
Password:
Searching...
[ Results for search key : oracle ]
[ Applications found : 5 ]

* dev-db/oracle-instantclient-basic
Latest version available: 10.1.0.4
Latest version installed: [ Not Installed ]
Size of downloaded files: 29,467 kB
Homepage: http://otn.oracle.com/software/tech/oci/instantclient/htdocs/linuxsoft.html
Description: Oracle 10g client installation for Linux with SDK
License: OTN

I may be wrong (and Oracle folks, please correct me if I am), but I’m not under the impression that that’s the full Oracle database client, and the only other relevant returned items were some JDBC drivers. Now, what about the application server market? Here’s the return for JBoss:

sog@sogjr ~/dev/depot $ su -c "emerge -s jboss"
Password:
Searching...
[ Results for search key : jboss ]
[ Applications found : 1 ]

* www-servers/jboss
Latest version available: 3.2.5
Latest version installed: [ Not Installed ]
Size of downloaded files: 32,433 kB
Homepage: http://www.jboss.org
Description: An open source, standards-compliant, J2EE-based application server implemented in 100% Pure Java.
License: LGPL-2

JBoss, like MySQL, is freely downloadable and installable from within the Gentoo package management system. How about its competitors? Well, it’s pretty safe to say that WebLogic and WebSphere are not likely to be freely downloadable and installable. How about Gluecode?

sog@sogjr ~/dev/depot $ su -c "emerge -s gluecode"
Password:
Searching...
[ Results for search key : gluecode ]
[ Applications found : 0 ]

No joy. To be sure we’re covering the bases, let’s check Geronimo:

sog@sogjr ~/dev/depot $ su -c "emerge -s geronimo"
Password:
Searching...
[ Results for search key : geronimo ]
[ Applications found : 0 ]

Wait, are any of the Apache applications in there? Yup, the Apache webserver’s a fixture, and here’s the returns for Tomcat:

sog@sogjr ~/dev/depot $ su -c "emerge -s tomcat"
Password:
Searching...
[ Results for search key : tomcat ]
[ Applications found : 2 ]

* dev-java/jakarta-tomcat-jasper [ Masked ]
Latest version available: 2
Latest version installed: [ Not Installed ]
Size of downloaded files: 3,482 kB
Homepage: http://jakarta.apache.org/tomcat
Description: Jasper 2 is the Tomcat JSP Engine
License: Apache-2.0

* www-servers/tomcat
Latest version available: 5.0.27-r6
Latest version installed: [ Not Installed ]
Size of downloaded files: 10,057 kB
Homepage: http://tomcat.apache.org/
Description: Apache Servlet-2.4/JSP-2.0 Container
License: Apache-2.0

Because some of you might be asking about whether or not JOnAS is in there, here’s the return for that:

sog@sogjr ~/dev/depot $ su -c "emerge -s jonas"
Password:
Searching...
[ Results for search key : jonas ]
[ Applications found : 0 ]

The net net? Of some of the more popular open source (and non-open source) relational data stores and application servers out there, only MySQL, Postgres, JBoss, and Tomcat have managed to get themselves into the Gentoo application library. There are doubtless many contributing factors to these facts, but do I think it’s coincidence that these four are amongst the most popular open source packages in their respective areas? No.

The obvious counter to this argument is that the inclusion of these applications into the package management library is a consequence of, rather than contributing factor to, their popularity. But I’d dispute that, noting that the Gentoo devs maintain thousands of applications less popular than those four – some with an audience that numbers in the tens or hundreds, I’d guess. But once they’re in the library, they’re much easier to install and use.

What do I draw from this little lesson? Well, if I’m releasing an open source application and am harboring ambitions of even moderate popularity, I’m going to do everything in my power to get my application into the libraries of distros like Debian/Ubuntu (think this has relevance for DB2?), Fedora, and Gentoo, because I want precisely zero barriers to entry between my product and those very sizable communities. How you go about doing that is a question for another time.

[1] More on this later, and for the eagle eyed out there, yes, the /dev/depot directory is from the sample app in the book.