This week in Fuchsia Friday, we take a look at how Fuchsia will appeal to web developers and an interesting look at Fuchsia possibly being used outside Google.

We’ve long known that Google is trying to bring developers from as many different backgrounds as possible on-board with Fuchsia. Apple developers will find comfort in Swift support. App developers are directed towards Flutter. Server developers should find Go to be more than capable for any task. Systems programmers will be thankful to have a choice of low-level languages with C/C++ and Rust. Scripting and simpler programming is also possible using Dart (the same programming language that Flutter is built around). But where does that leave web developers?

According to Stack Overflow’s 2018 Developer Survey, over 70% of professional developers said they use JavaScript. Google has already recognized the ubiquity of JavaScript by making Node.js available in App Engine’s standard environment. It’s obvious that Fuchsia needs to be accessible to those familiar with the web stack. Their plans are currently two-fold.

JavaScriptCore

The first part is actually very interesting in more ways than one. As spotted by reader Indy, the Fuchsia Team is, as of this week, seeking mainline support for Fuchsia in JavaScriptCore. JavaScriptCore (or JSC) is a way to call JavaScript code in a consistent, cross-platform way, that is typically used for sharing code between your web and native applications. JSC is part of WebKit, which forms the basis of Apple’s Safari browser, and is distinctly an Apple product.

Up to this point, the Fuchsia Team had been using their own internal port of JSC, with no intention of making it publicly available for developers. However, something changed recently, as according to Fuchsia Team member Adam Barth, they’ve “gotten a number of requests from customers who would like to use JavaScriptCore in their Fuchsia applications.”

I find the use of the word “customer” here fascinating. It’s hard to say what exactly this means. The most obvious answer is external companies wanting to make Fuchsia applications, but that may not be the only answer. There’s not many discussions of “customers” in the Fuchsia Gerrit, but there’s one helpful reference where a developer mentions a “customer working on Gauss.” (We believe that Gauss is a smart speaker built by Google for Fuchsia.) This conjures in my mind the idea of it being another team of Googlers working with Fuchsia from the outside.

This all raises another question in my mind though. Why bring JavaScriptCore and not Google’s own V8 JavaScript engine from Chrome? JavaScript developers are likely more familiar with V8’s implementation of JavaScript, as Node.js is also built on V8. And it’s not like V8 isn’t coming to Fuchsia — V8 has had a dependency on the Fuchsia SDK since October. Perhaps whoever the “customers” are have enough sway to advocate for JSC to be separately available. Only time will tell, at this point.

Web Runner

The second part of Fuchsia’s plan is called “Web Runner” and seems targeted at making the web integral to Fuchsia. Currently in Fuchsia all web-related tasks are handled by WebKit’s WebView, but Chrome support is coming. Already, there’s a version of Web Runner in Chromium that confirms it will “run web applications on Fuchsia.” Web Runner will also be able to report some information back to the application that opens it, which means it will be good for times when applications need to open a webpage for whatever reason (usually for authenticating with a third-party service).

Of minor note, all instances of Web Runner are kept independent of each other, which is great from a security and privacy standpoint.

Web Runner is kept next to Fuchsia’s “Flutter Runner” and “Dart Runner,” which speaks to the web’s importance in Fuchsia’s application ecosystem. In particular, Web Runner reminds me greatly of Progressive Web Apps, which allow webpages to be “installed” as apps, with support for native things like push notifications and offline functionality. For a great example of what the Progressive Web App experience can be like, check out how Google Photos does it. It’s very possible that this is the goal for Web Runner, but it’s still too early to tell.

All-in-all, Google is definitely taking the web seriously, and this is an area that is seeing constant development in both the Fuchsia and Chromium repos. Needless to say I’ll be keeping an eye on it going forward, stay tuned for updates.