Wed

Aug 9
2006

Allison Randal

Allison Randal

Embracing Technodiversity

I occasionally wonder at the rivalry that exists between open source languages (and the web frameworks built on those languages). To a certain extent it makes sense: humans have a basic tribal nature, and one of the most natural expressions of that nature is in "us vs. them" behavior. (Fortunately, in most of the world these days, it's expressed in the form of sporting events more often than deadly raids to steal a neighbor's cattle.)

But on another level, the rivalry really doesn't make sense. In biology and ecology there is a concept of "biodiversity": a diversity of species and the interactions between those species and their environment. A species with genetic diversity is more likely to survive a disaster because some members will be immune to the disease, or better able to handle the climate changes, etc. An ecosystem with biodiversity is stronger and more stable because the basic functions of the ecosystem will be maintained even if one species decreases population or disappears entirely.

Extending the metaphor to technology, technodiversity means having multiple different projects or products available to solve particular problems in our technological lives: things like web browsers, email clients, office productivity tools, web frameworks, programming languages and tools, or operating systems.

Technodiversity means you don't have to live with the limitations of "the only tool for the job". It means a single computer virus or hacking technique can only affect some of the machines on the network because they don't all have the same vulnerabilities. Technodiversity means that if one piece of software is no longer available, for whatever reason, you'll be able continue the same tasks in another functionally-equivalent piece of software. Open data formats are an important part of this last aspect, because the ability to change over to one product from another isn't really complete until you can access all the data from the old product (this is true for hardware and software).

Technodiversity is often mentioned in the context of offering open source alternatives to proprietary products: Linux vs. Windows, Firefox vs. Internet Explorer, OpenOffice.org vs. Microsoft Office. But this misses a fundamental lesson of biodiversity: an ecosystem with a single species filling a necessary function is at risk of failure. The success of open source is not Linux, but Debian, Fedora, FreeBSD, NetBSD, OpenBSD, SuSE, Ubuntu, etc. A single open source language is not a success, the success is Lua, Perl, PHP, Python, Ruby, etc.

I find it interesting that Microsoft supports a host of programming languages. I don't take this as a sign that Microsoft necessarily understands technodiversity, but as a sign that the market demands technodiversity. The ability to continue running old software is as important as the ability to develop new software. Any given syntax provides more elegant solutions to some problems, and less elegant solutions to other problems. Some people will always be more comfortable developing in one language than another, because of their development background, style of problem solving, or philosophical tendencies.

I don't expect the proponents of one programming language to say to all the others "Hey, we're glad you're out there strengthening the open source ecosystem!", any more than I expect the various forms of greenery in my garden to stop trying to take it over. The success of each species depends on that species pushing as hard as it can, and adapting as well as it can to changing circumstances. I have observed, though, that programmers who embrace technodiversity are better able to profit from whatever trend is popular this week. And development shops that embrace technodiversity are better able to adapt to new tasks and create new ideas. Technodiversity isn't about "playing nice", it's about flexibility, innovation, and survival.


tags: open source  | comments: 4   | Sphere It
submit:

 
Previous  |  Next

0 TrackBacks

TrackBack URL for this entry: http://blogs.oreilly.com/cgi-bin/mt/mt-t.cgi/4839

Comments: 4

  hfb [08.09.06 10:18 PM]

Survival isn't necessarily about diversity, though diversity is often held up as a model of how to succeed. Have a look at Iceland, Finland, Norway, even Sweden....these countries have the absolute rock bottom percentages in terms of population diversity and display generally high amounts of xenophobic behaviours yet many consider them to be successful countries due to their homogeneity, their stability and ability to predict how their population will react to various events.

Most users, too, wouldn't mind a lack of diversity in exchange for stability and dependability. This is what humans do. Look at how the landscape of the city has changed since mass travel has made it easy and cheap for most anyone to travel. Suddenly everywhere begins to look like everywhere else with chain restaurants, chain hotels, etc. popping up eveyrwhere to make our experience of someplace unusual, usual. Those who welcome change, diversity, upheaval are far from the norm.

  Karl G [08.10.06 08:08 AM]

The language/framework competition is a bid to get your language/framework to propagate. The more people you attract to your language/framework, the more buzz you get, the more buzz you get, the more people you attract. Once the community critical mass goes, you get the sustaining reaction of getting your language accepted in a significant number of workplaces. This allows you to use the tools you prefer rather than having to use the tools someone else prefers. MS gets around this by advertising and paying for studies that show up in places that will influence management. OSS, lacking such resources, must snipe for market share.

  William [08.10.06 08:43 AM]

The first comment is another example of the Freedom/Security phenomenon:


Freedom x Security = k [constant]

In this specific case it looks like this:

Diversity x Adaptibility x Predictability = k

The central effort in any society is to find a balance between absolute states that is the most confortable for the most people. Software is just a manifestation of society.

  Michael Bernstein [08.10.06 12:24 PM]

Ecosystems never have more than one species occypying the same niche.

There can certainly be overlap, and thus 'coopetition' between species in similar niches.

And, of course, a species risks extinction if it is too specialized for a particular niche, and lacks internal genetic diversity.

The most robust ecosystems are those that are patchworks of overlapping species and niches. Predators with multiple prey species and multiple predator species with overlapping sets of prey. Wastes with multiple scavengers, flowers with multiple polinators, and so on.

In open source, some of this diversity is satisfied by applicability to multiple domains, some by deployment on multiple platforms, and some by catering to multiple communities.

Post A Comment:

 (please be patient, comments may take awhile to post)






Type the characters you see in the picture above.