There isn't much information about the capabilities of workstation. Is it a GUI OS? Can one run Flutter apps on it?
There isn't much information about the capabilities of workstation. Is it a GUI OS? Can one run Flutter apps on it?
IMO this is more or less an experiment which if successful, will end up merging/replacing Android and Chrome OS into a single OS. Android and Chrome runtimes can be ported to Fuschia and the underlying OS can be swapped on many devices. New devices can ship with Fuschia + an android compatibility layer. Developers would be able to ship native Fuschia or android apps. Would work on phones, IoT, Chromebooks and could be install-able on desktops.
This is all just speculation though and a lot of things need to go right for this to happen but I'd imagine this would be the ideal/desired outcome for its creators.
Android is already being ported to Fuchsia for quite some time now.
You can start with this one,
https://android-review.googlesource.com/c/platform/manifest/...
It would just be a slower, less secure option with years of cruft and a huge dependency base they don’t control.
They are only upstreaming to decrease the development efforts in Linux kernel itself, tomorrow that kernel can be Zirkon instead.
But yes, I agree, I think getting the Linux kernel out of Android is an obvious next step.
Does Android just become another Fuschia “product” at that point the same way the workstation and a stripped down IoT one are?
I’d argue it goes further than that but my reasoning kind of gets pretty deep into how Fuschia for example handles things like app delivery etc…
I think Android will continue to exist as a supported interop style solution for years but ultimately you will end up seeing a total transition to 100% Fuschia across all Google platforms (server, IoT, Workstations, mobile devices etc).
https://source.android.com/devices/architecture/hal-types
> "HALs expressed in HAL interface definition language (HIDL) or Android interface definition language (AIDL). These HALs replace both conventional and legacy HALs used in earlier versions of Android. In a Binderized HAL, the Android framework and HALs communicate with each other using binder inter-process communication (IPC) calls. All devices launching with Android 8.0 or later must support binderized HALs only."
While Linux folks are still arguing if Rust makes sense to be adopted in the kernel and what features still need to be stabilized,
https://source.android.com/setup/build/rust/building-rust-mo...
And as I pointed out in another comment, here are the ART commits supporting Fuchsia,
https://android-review.googlesource.com/q/fuchsia
I should also note that while people pat themselves on the back, because Android uses the Linux kernel, from Google's point of view that is an implementation detail, not supported as public API for NDK code.
https://developer.android.com/ndk/guides/stable_apis
From NDK point of view for app developers, the underlying OS is a generic OS, with ISO C, ISO C++ standard libraries plus a couple of additional stuff. Something that Termux guys have a hard time to swallow.
I don't really understand the excitement around flutter.
On the flip side there's the odd programming language, the bundle size, the game-engine like rendering (seemingly wasteful, but may improve as hardware evolves).
I have no idea what, if anything, Flutter’s canvas-based approach has to do with localization.
Also Flutter exposes a hidden DOM with accessibility information for the canvas. This might someday be superseded by a system like AOM: Accessibility Object Model, which is an API for directly constructing an accessibility tree for non-DOM content like a canvas.
Flutter demos have a localization dropdown for selecting different locales, of which the gallery demo at least supports many, well beyond FIGS: https://gallery.flutter.dev/#/
Note those demos have other problems that make me crazy, like the copious overuse of non-selectable text. Why the default "Text" widget is non-selectable is a total mystery to me: https://api.flutter.dev/flutter/widgets/Text-class.html You have to instead use the "SelectableText" widget: https://api.flutter.dev/flutter/material/SelectableText-clas...
I have plenty of complaints about Flutter, but accessibility and localization aren't among them.
See SkParagraph: https://skia.googlesource.com/skia/+/refs/heads/main/modules...
And the experimental SkText API: https://skia.googlesource.com/skia/+/refs/heads/main/experim...
That flutter even got this far strongly suggests the people making it are monocultural. That they are thinking "maybe someday there will be a solution" is not the right way to approach building an inclusive GUI framework in this day and age.
I see what you mean about Flutter having to download the 16+ MB CJK fonts and lack of visibility for extensions trying to read DOM text. It's possible there's fixes for some of these: the browser local font API could make your local system's fonts available to the Flutter runtime, which would be significantly faster, and the accessibility object model could make content visible to extensions (but only if they were rewritten to read AOM data!).
Also TIL about "reconversion" in CJK IMEs. Pretty neat!
I'm working with some of these same issues right now with a web-based PDF viewer app that runs PDFium in WebAssembly. Trying to make PDF content visible to extensions, IMEs, etc. the same way DOM content is turns out to be quite difficult.
Still, all of this works out of the box with DOM content. It's frustrating how many of these things have given up on "render to DOM".
Just look at Apple's rollout of Swift. Early on it was slow and painful to use for a long time. In the last year or so it's really matured a lot, but it's been a long road and we're still not there yet for a lot of use cases.
Since Fuchsia was started, Google has committed to maintaining a stable kernel ABI for AOSP, what they call the GKI. This is a huge amount of work for kernel developers at Google but it will allow (in theory) updates to newer kernels without the need to update these old drivers. I believe ChromeOS is also going to use the GKI (not 100% sure about this though).
I think the big question for Fuchsia is how successful the GKI initiative is, since it takes a lot of wind out of the sails of Fuchsia. Linux already works, has a lot more features than Fuchsia, and has much better performance.