Yesterday, we launched a new major release of CodeZoo, O’Reilly’s directory of reusable, open source components for programmers. Over the next few days, I’m going to pull out some of the interesting data we’ve collected by running CodeZoo since our April launch, and talk a bit about how that data led to the features we selected for the new launch. I think a lot of this is widely applicable, and not just for those of us running component directories.
Why is that? Who should care about interest in “reusable components” in programming languages? Components are small pieces that help programmers get started on their development projects — they are the Lego blocks that Lego builders can compose into amazing creations. In the Lego world, strong demand for wheel pieces probably shows that builders are building lots of cars and trucks; in the programming world, lots of demand for Web services components would probably mean that Web services are taking off. (But our numbers would suggest that conclusion isn’t right.) The CodeZoo numbers, then, can say a lot about the computer industry at large — they show the beginnings of work programmers are undertaking right now.
Let’s start out by looking at the programming languages we support on CodeZoo. When we launched in April, we supported only Java, and Java remains the largest language on CodeZoo, counting by the number of components we list. (The open source Java community produces a very large number of similar components — for instance, we list 10 separate components in our Java > XML > Parsers category, all of which do pretty similar things. We launched the site in part to help people sort out the good implementations of an idea from the bad ones, using developer ratings, visible download counts, and other features to let the best code bubble to the top.) At the time of the initial launch, I put out a call for language requests, asking developers to let us know what other languages they’d like to see supported.
Yesterday we added two new languages to CodeZoo: Python and Ruby. You can see from the language requests graph, above, the languages for which we got more than a few requests (I’ve left off Cobol and the others that only were requested a couple of times). From this, the choice of Python is completely obvious — it was the winner in the request race, beating out C++ and many other languages that might be considered “larger” by other metrics. In addition to the clear demand for it, Python is a natural fit for O’Reilly, since we publish a great deal of treeware and online material about Python, and cover Python extensively at our conferences (especially at the Open Source Convention taking place this week).
Ruby, however, is tied for fifth on the list, and in raw component counts on our site, it is the smallest of the languages we support. As we’ve discussed on Radar over the past few months, we see Ruby as an emerging force in the open source world, driven by interest in Ruby on Rails, and by the excellent books on Ruby written by the Pragmatic Programmers. The language is also well-served by RubyForge and the RubyGems project (the latter of which functions like, and as well as, apt-get on Debian — resolving dependencies and downloading needed files from the net). In short, both the supply of components and the demand for a CodeZoo tab for Ruby were both lower than for other languages, but we decided to include Ruby in order to give support to a growing and important language, and to bring together the documentation and other resources O’Reilly is starting to produce around the language.
We’ve had a strong response to both of these language launches, and I think we chose the right targets. A welcome side effect of these choices, too, is that the CodeZoo activity on the Python and Ruby tabs will help us learn more about the uses of these languages — another “faint signal” to guide our overall business and interests.