Google Talks Web Platform, OS Integration, WebGPU and More
After Google I/O earlier this month, I sat down (virtually) with two of Google’s web platform leaders, Dion Almaer and Ben Galbraith. Our conversation focused on how the web has continued to evolve into a full-fledged platform — even, in some cases, starting to challenge native mobile applications in capability. “The web has become a high-performance, general-purpose computing platform,” is how Galbraith put it during the pair’s I/O keynote.
Developers have tried to make the web an application platform since the Netscape days, and even going back to CGI scripts in 1993. Since that time, web capabilities have advanced seemingly as fast as Moore’s Law. As practicing web developers since the mid-1990s, Almaer and Galbraith have lived through that evolution. So I began by asking what they think of the web application landscape now, compared to the old days?
Galbraith replied that what we’re seeing now is the fulfillment of a vision many people had twenty years ago, of the web being a “meta operating system.”
“It’s been a fun journey for me,” he said, “because the Ajax revolution was all about finally enabling some dynamism in the web, in a meaningful way.”
As examples of meaningful dynamism today, Almaer pointed to products from startups like Figma (browser-based design tools) and Replicache (real-time sync for web apps). In both cases, those companies are bringing functionality to the web that we’re more used to seeing in desktop apps. Almaer is also excited by WebAssembly because it will enable developers “to bring libraries and functionality [to the web] using different programming environments.”
OS Integration (and the Trouble with iOS)
One of the web announcements at Google I/O that stood out to me was increased integration with Operating Systems, via relatively new APIs like the File System Access API. “Now web apps can finally read and write to the user’s local file system,” said Almaer during the I/O keynote. OS integration, however, requires companies like Apple and Microsoft to allow this level of access. This can be contentious, especially when it comes to Apple’s iOS — as shown in a recent exchange on Twitter between a Google and Apple engineer. So I asked Almaer and Galbraith how extensive is the integration with the various operating systems?
“Most of the APIs we ship are available on all of the surfaces where Chrome is,” replied Galbraith, “and so that’ll be Windows, macOS, Chrome OS, Linux. On mobile, as you know, it’s a little bit different, because the full Chromium runtime doesn’t run on iOS, and so there it’s really just a question of what Apple has made available through WebKit.”
At times, a web app has different capabilities depending on the OS upon which it runs. While it’s nowhere near as bad as the incompatibilities between Netscape and Internet Explorer browsers back in the 1990s, there has been a kind of tug of war over web app functionality between Google and Apple on iOS. It’s been most noticeable recently with Progressive Web Apps (PWAs), which are browser-based apps that have rich functionality akin to native apps. For example, one feature of PWAs is that you can install them onto your phone (just like native apps). However, Apple doesn’t allow the PWA install functionality for web apps. So there is a big difference between iOS and Android in how PWAs perform.
“We want to have a compatible app that works across everything, to make developers’ lives as easy as possible,” said Almaer, about OS integration. “[However] I don’t want a lowest common denominator all the time. So if you can progressively enhance something to get it where, on that particular OS, it works even better — in a way that still holds with compatibility — I think that’s fair game and good, because a lot of developers will want to be able to reach to that.”
What about Android?
Of course, Google has its own native mobile OS to cater to, in the form of the open source Android. I asked Almaer and Galbraith if there are any tensions between Google’s desire to support and further enhance web application development, and its need to support the Android developer ecosystem?
“We really think our role here is to give developers choices,” said Galbraith. “The Android developer ecosystem is super strong, and it has quite a distinct flavor to it.”
He cited Kotlin (a programming language used to develop Android apps) and Jetpack (a suite of libraries) as examples of the strength of the Android development ecosystem.
With that said, there are advantages to choosing a web app over a native app — for instance, web apps are able to share data much easier and there are SEO benefits to being on the web. For these reasons, Almaer said that Google is seeing “a lot of growth in particular verticals” when it comes to PWA adoption. While he didn’t name those verticals, he did mention a couple of examples from news publishing and education.
In their keynote, Almaer and Galbraith talked about several innovations in graphical rendering on the web.
I asked what kind of web apps WebGPU will enable, that perhaps we haven’t yet seen on the web?
“Obviously the big one is games,” replied Galbraith, “and like, next-generation 3D immersive games. But the stuff that I’m most excited about is just to see accelerated rendering [become] pervasive in [web] experiences, as things get rolled out. Like future versions of Google Slides, future versions of apps like Figma, and other things — just seeing what they do as accelerated rendering becomes a part of the fabric of the web and [that] you can get super high performance out of it.”
CSS is another web standard having what Almaer described in the keynote as “an exciting renaissance.” Among other improvements, he mentioned CSS Flexbox and Grid being “embraced by developers as major improvements for creating page layouts.”
In our discussion, Almaer said that Google has watched all of these CSS innovations and community uptake and come at it from the perspective of “what can we underground, what can we bake into the platform itself.”
Responsiveness — ensuring that your web page or app can adapt to different devices — is one example of something Google thinks it can make easier in CSS. “By having that [responsiveness] join the platform,” said Almaer, “it’s just gonna make it so much easier for people to build really adaptable UIs.”
It’s undeniably an exciting time for web developers, with increasing OS integration for web apps and big leaps forward in graphical rendering just the start of what we can expect over the 2020s. Google is very well placed to take advantage of new capabilities on the web (which of course they are helping to invent), because of their Chrome and Android platforms.
However, if there’s one thing web developers have learned to live with over the years, it’s that there will always be tensions between the different platforms. Apple purposefully doesn’t allow Chromium on its iOS platform, Microsoft is busy building “collaborative apps” on top of its cloud and office platforms (not to mention Windows), and Facebook and Amazon are always innovating on their platforms. But at least we know the web platform continues to evolve and is getting ever closer to native apps in capability.