min read

Transformational Web APIs

When discussing new features for the web we often distinguish between low-level and high-level features. I'll leave defining what these are for another day. However, we usually think of high-level APIs are being the (hopeful) end-game of years (often decades) long work where low-level primitives are discovered and implemented until we have everything we need to build a pristine high-level API that makes everything super easy.

There's a feeling of deserved accomplishment when a high-level feature makes it onto the web; they are so hard to do. Without negating the accomplishment it's important to also realize even within the high-level category, some APIs are transformational whereas others are simply useful within their narrow use-case.

So with this post let me introduce a new concept I hope we all adopt: the transformational feature. Roughly I distinguish between high-level and transformational features in this way:

Note that a transformational feature is not necessarily also a high-level feature. Although often the case, it's possible and some times even desired that higher-level concepts be built on top. What's key to the transformational feature is, as stated above, that it allows new development paradigms to form.

For illustration, some transformational features in the recent 10 years or so (I would argue) include:

And a few potential transformational features that are on the horizon but not quite here yet:

So why bring this idea up? I think it's important to recognize that while all high-level features are welcome, there is this other category that is extremely important as well.

It's vital that some times the platform does bring about transformational features, because it is these that free developers from constraints and allow them to move their minds to other areas. This is what allows the quantum leaps in web development to occur.

Throughout the history of the web I imagine you'll see peaks and valleys where transformational features come in spurts. Currently I feel we are in somewhat of a valley, particularly among HTML transformational features, which has glaring deficiencies compared to native platforms but little hope for big changes within the near (or even mid) future.