I have enjoyed platforms, but I have loved ecosystems. As I was thinking about becoming a renoogler I was thinking about the Web and what made it special, and that lead to this tweet:
There are features I like (e.g. URLs) and parts of the developer experience that I enjoy (as well as parts that I do not!) but it is the core emergent properties that I love.
There is something special, albeit messy, about the Web ecosystem. One definition is:
“An ecosystem is a community of living organisms in conjunction with the nonliving components of their environment (things like air, water and mineral soil), interacting as a system.”
The Web is much more distributed in its power than many other platforms. We often think in hierarchies and assume that top down approaches make the most sense, but that isn’t what we see in our most successful systems: nature, or our bodies / brain.
Most people still think of our brain as the CPU of the body. It’s the CEO! It calls all of the shots! In actuality we keep learning that the brain is only a piece of the overall system. Our gut and nervous systems act as “brains” in some regards, and in general systems take care of a lot autonomously. Inside the brain itself it also gets murky. We create an ego, a notion of self, to make sure that we keep ourselves safe, alive, and ready to procreate, but what is that self? We have seen fascinating situations. For example, in patients that have had a corpus callosum severed we can see that both “sides of the brain” can actually act quite differently. Seeing someone answer verbally one way and write a different answer is quite… freaky.
In a natural ecosystem there isn’t a CEO tree in the middle of the forest calling the shots. “Ok lads, it feels like winter is coming so time to get rid of these leaves!”
Embracing these systems isn’t easy. I find myself thinking about the global financial system, quickly realize that there isn’t some guru out there who groks the entire system, and I freak out. The Fed doesn’t have all of the answers. It’s just too complex of a beast, but maybe that is OK.
There are still players who have a strong pull on the Web ecosystem of course. Google, Apple, Microsoft, Mozilla, Opera, W3C, etc are key to the evolution of the system. The developers that build on top of the core platform also add a ton of value and often enable the developer experience that we have today (that the core Web doesn’t give you out of the box). I know that it can be painful, not having someone come down from the ivory tower to tell you how to do something. I would sometimes envy the .NET folks when I was in the Java world. There was a new Web framework every five minutes, but with Microsoft you could just eat your ASP.NET. However, I was never tempted to .NET, even though I thought C# was superior to Java at the time. The Java ecosystem was so different.
What about the platform?
“A computing platform is, in the most general sense, whatever pre-existing environment a piece of computer software or code object is designed to run within, obeying its constraints, and making use of its facilities.”
You run within, or on top of, the platform. It gives you the constraints. You don’t have other, different and maybe competing platforms where you can easily run on top of (unless you go for cross platform tools, but even then you need to grok the different platforms).
The Web platform is shared. It is standardized, and although the implementations are never the same, they are getting more closely aligned rather than further apart.
It turns out that the threat of the app platforms are bringing together the protectors (and benefactors for sure) of the Web.
One of the reasons I was so excited to head back to Google was the fact that ecosystems are built into its DNA. I can’t wait to be part of the great ecosystems that are out there, and to give developers the partnership they need.