Monday, November 26, 2018

What is Fuchsia?

Fuchsia seems to be Assistant-first

From the ground up, Fuchsia seems designed to accommodate the Google Assistant. Everything on-screen, everything you’ve done and anything you can do is visible to the Google Assistant — or at least that’s how the current Fuchsia documents make it seem.

Assistant in Android can inspect your screen for information for its use if you hold the home button, but it seems Fuchsia will provide even deeper access. In Fuchsia, you can be in your browser looking at reviews for a restaurant, then you open your calendar to check a date, then say “Okay Google, invite Samantha to lunch” and it would have all that context.

Assistant will have access to all “entities” (“an identifiable person, place, thing, event, or concept which is represented within the Fuchsia platform”). And notably, the developers have specifically called out access to entities seen on-screen in the past: Entities will enable “the Assistant to inspect and manipulate entities present in the current context or seen in the past.”

Fuchsia is a cross-device OS

In today’s technological world, most people don’t have just one device, but multiple. Phone, tablet, desktop, laptop, wearables, and more. Based on the current state of the OS, Google seems to be working to make Fuchsia run on all of these seamlessly and in unison.

Traditionally, the problem with doing this is maintaining progress and context. That’s where something called Ledger comes in: once signed in with your Google Account, your applications automatically save their place across devices. Google describes Ledger as “a distributed storage system for Fuchsia.” Everything is stored in the cloud.

The idea is a futuristic but cool one: Close Chrome on your phone, then open it on your laptop and your tabs are right where you left them. The document you forgot to save before you left work? Just open Docs on your phone and save it. Your battery died right in the middle of a research project? Borrow a public computer and pick up where you left off.

Additionally, since there’s no difference between Fuchsia for laptop and desktop and Fuchsia for mobile, for some there may not be a need to carry both. Theoretically, you could just plug your phone into a dock (similar to Samsung’s DeX or Razer’s Project Linda, perhaps), and you can be up and running with a bigger screen and a desktop/laptop-like experience.


Architectural benefits over Android/Chrome OS?

Android and Chrome OS are both based on Linux, which has a solid 25-year foundation. One problem for Android is that before Treble, patching to the latest Linux kernel was reliant on device OEMs putting in the work, which few did (or at least not in a timely manner). Even now, after Treble has been available for a few months, some OEMs are reluctant to include it on their devices. This leaves Android users potentially vulnerable to new exploits that have already been patched upstream.

Fuchsia avoids these pitfalls by using its own custom kernel, Zircon, which is designed to be consistently upgradeable. To help make this possible, applications are isolated from having direct kernel access. This both gives an extra layer of security and prevents apps from being incompatible after a system upgrade, a problem that has plagued Android before.

Fuchsia for developers

Google is reaching out to developers of all backgrounds with this project. Most of the UI is written in Dart (a language that is designed to feel familiar to JavaScript and Java developers), through the Flutter framework. Support for Go, another Google-designed language is also included. Systems developers will find comfort in the availability of Rust. Google is also targeting Apple’s developer base by introducing Swift support.

The icing on the cake, though, is the native interoperability support for most of these languages. Through the FIDL protocol, your Dart UI code can directly interface with your Go backend or any other combination. This gives developers the opportunity to be more expressive and use the best language for the job at hand. We’ll dive a bit more into this later.

No comments:

Post a Comment