A Fuchsia Future? Part One: Build One (or Two) to Throw Away
Fuchsia is not just a difficult-to-spell name of a color.
It is also the name of a ���skunkworks��� project inside of Google building a next-generation
operating system for all form factors. This week, I���ll explore various aspects of this and my
expecations of its impact on Android developers and apps.
First up: um, WTF?
You might be forgiven if you think that Google is going a bit overboard with
operating systems nowadays. In addition to Android, they have:
Chrome OS
various specialized Android variants, such as Wear OS
whatever is powering the Chromecast (which reportedly is some Android/Chrome OS mashup)
whatever is powering their other smart devices
possibly other stuff that I���m forgetting
However, what has been getting a lot of attention in the past year is Fuchsia.
Bloomberg reported in July 2018 that
100+ engineers are devoting some time to Fuchsia.
Various outlets, including 9to5Google, reported a couple of weeks ago that
Google hired a long-time Apple engineer ���to help bring [Fuchsia] to market���.
And so on.
On the one hand, this seems bizarre. Google dominates mobile with Android. Chrome OS,
while not nearly as popular, has fans in various market segments, such as the US
education market. Why would Google be looking to replace one or both of these
with something new?
On the other hand��� perhaps we should expect this.
As developers, we like to toss around the term ���tech debt���, referring to the ever-growing
pile of bad decisions that we need to revisit someday. Anything with an API has an
additional tech debt problem: how to address that tech debt while maintaining
reasonable compatibility with things using the API. Platforms, such as operating systems, have it the worst,
in that they are often expected to be able to support a fairly broad history of
stuff. In Android���s case, we are supposed to be able to run Android 1.0 apps
on Android 9.0 devices.
Yet, despite this, operating system developers do need to address the tech debt.
Sometimes, that can be done incrementally. Sometimes, that is done much more
dramatically. For example:
Microsoft had a long transition from 16-bit Windows to 32-bit Windows
environments, where they had parallel OS tracks for a while (Windows NT and Windows 2000
were Win32-centric, with Windows 95 and 98 being more Win16-centric)
Apple switched both operating systems (OS 9 to OS X/macOS) and CPU architectures
(PowerPC to x86), resulting in lots of challenges for keeping existing Mac
software running (e.g., Carbon compatibility layer)
Fred Brooks��� The Mythical Man-Month
is a legendary book about managing software projects. One of his most powerful quotes is:
Where a new system concept or new technology is used, one has to build a system to throw away, for even the best planning is not so omniscient as to get it right the first time. Hence plan to throw one away; you will, anyhow.
To some extent, Microsoft built 16-bit Windows, then threw it away and shipped 32-bit
Windows. Apple built the original Mac OS, then threw it away and shipped OS X/macOS.
It should not be all that surprising, therefore, that Google may elect to address
Android���s tech debt by replacing Android. Most likely, the developers of
the stuff that was ���thrown away��� in these scenarios were not planning on having
their stuff be ���thrown away��� ��� it���s just a matter of course.
Fuchsia appears set to run Android apps,
possibly using a container system akin to how Chrome OS does. If it does a reasonable
job of this, then it is very possible that the Android ecosystem could turn into
a Fuchsia ecosystem over time, just as Win32 replaced Win16 and OS X replaced
the original Mac OS. And, just as developers had to learn Win32 and Cocoa APIs to
develop apps native to the replacement OSes, developers will need to learn Fuchsia���s APIs
to develop apps native for Fuchsia.
It does not appear that Fuchsia is ���ready for prime time��� just yet. By the time
it does, Android might be 15 years old, measured from when Google acquired Android Inc.
in 2005. 15 years is a decent amount
of time for a consumer operating system. We should not be surprised if Google tries
to use Fuchsia as their way to move forward while still offering a transition
from the past.
The key word there is ���tries���.
Tomorrow, I���ll explore a bit more about the transition and how that impacts developers
considering Flutter.


