Humanity is fundamentally Tribal . At earlier points in human history it was easier to maintain (and defend) tribal borders because they were often geographic; those that weren’t generally had physical barriers to delineate one Tribe from another (like a large concrete wall through the center of a large German city). In the age of an Industrialized Internet, Social Media has fanned the flames of globalization and tribal democratization. As a result, the old ruling Tribes see shrinking boundaries and now-indefensible borders. Marginalized Tribes—those who previously had to subsist in the metaphorical scrub of the Steppes —see an opportunity for conquest amid the chaos and are mounting raids to plunder and pillage and carry off the women and silver.
Naturally I’m referring to the software development community and the ecosystem built up around OpenSource Software.
There’s a very interesting discussion going on in academia around Tribalism and how the hyper-industrialized nations of the West are reverting to a more tribal culture as a result of the Industrial Revolution 2.0—the Industrialization of the Internet and the Social Media Revolution. The software development community is not an abstract monster with a life of its own. It’s a monster made up of all of us. If Peoples of the West are laboring through a process of reverting to Tribalism in our everyday lives, it’s only natural to assume that the developers creating the very things speeding the transition along would be subject to the same currents and maelstroms sweeping through the Tribes with which they identify. If we recognize that this is happening and face it, not only can we make ourselves better developers (and people), we might be able to take advantage of this trend toward Tribalism and leave the OSS world a little better place than we found it.
Some companies promote their software in a very Imperial way. They try to acquire capital and resources through pillaging and conquest and are very Darwinian in their approach to Tribal Foreign Policy; they say: “capital is out there for the taking by the strongest,” and they’ll happily pillage a neighboring Tribe to acquire the resources they need to survive. Their conquest is generally disguised by the argument: “our software products are better than that other OSS framework.” This Tribe has dominated the software industry for many years and is simply doubling-down on this strategy in an attempt to reinforce an eroding border that’s slowly contracting around its Capital City.
It would be naively Pollyannaish to suggest that software developers are somehow immune to Inner Viking Disease and won’t return to sack the village they were formerly run out of on account of bad behavior. Tribalism is a fact of life in a post-post-Industrial Revolution world. That being said, it’s encouraging to see the concerted effort being made in the newly-formed Reactive Streams Tribe to trade in that common currency that can bring prosperity to all our Tribes without resorting to rape and pillage.
The gist is simple: provide a common set of abstractions (the Currency) over which libraries written in different languages and founded on different Imprimis can exchange data (the Trade) with different libraries (the Tribes). So long as the different Tribes trade in the common currency, then the best aspects of one Tribe can be used when that’s required, while not ostracizing members of another Tribe due to their use of a different currency. Admittedly, it does seem rather Pollyannaish when written out in real words—but maybe that’s only because no Tribes have yet matured to the point of trading openly with one another in a common currency lest they be forced to stop defending their already-indefensible borders against incursion by foreign ideas.
The Reactive Streams Tribe is not a club requiring membership. One doesn’t have to swear an oath of allegiance to join as one might have to with other Tribes. One simply assents to trading with other Tribes in the common currency of the Reactive Streams API and SPI. Your Tribe’s exports—imbued with benefits unique to your Tribe—can be leveraged in an application that also trades with other Tribes to acquire their exports that have benefits complementary to yours.
Initial pre-alpha sketches of the API and SPI are available on GitHub for your Tribe to inspect, criticize, encourage, or otherwise provide input on. You can create issues to discuss your concerns and use-cases, and you’re welcome to send PRs or provide links back to work your Tribe is doing that would be beneficial to the larger Reactive ecosystem.
Tribalism can be a great refiner’s fire if it encourages trade in the strengths of the various Tribes using the common currency. It can also continue to be a regressive anthropological curiosity that lessens cooperation, innovation, and affluence for all Tribes if we’re not aware of what it’s doing to us.
Reactive Streams GitHub repo:
Reactor GitHub repo: