Google has published a brand-new programming language policy for Fuchsia, its under-development OS that some speculate can be its non-Linux successor to Android.
Instead of a Linux kernel, the core of Google’s Fuchsia OS may be a Zircon microkernel to dealing with hardware and boot a system that runs Fuchsia. Google describes Fuchsia as specifically “not Linux” and a “modular, capability-based OS”.
While Google hasn’t nonetheless elaborated its intentions for Fuchsia, there has been lots of speculation that it plans to interchange Android and Chrome OS with it within the close to future. The new OS has additionally piqued the interest of security researchers at the National Security Agency.
A new policy document that engineers are discussing on Y Combinator’s Hacker News evaluates well-liked programming languages C, C++, Dart, Rust, and Go that the Fuchsia project “uses and supports for production software package on the target device” – basically the key languages that Fuchsia is written in.
The document outlines Google’s thoughts regarding the execs and cons of every language within the context of Fuchsia. It additionally lists that of every language is supported and to what extent it’s supported.
C, for example, is supported for “end-developers” who write code for Fuchsia outside the Fuchsia Platform Source Tree, referring to the centrally managed Fuchsia source code.
Being supported for end-developers implies that the Fuchsia software package development kit has tools and libraries developers will use to create a software package for Fuchsia, still as documentation, tutorials, and developer relations support.
C’s benefits embody its wide use and well-understood properties with several developer tools. Its disadvantages embody weak support for asynchronous programming, lack of memory safety, and weak sort safety.
For these reasons, C is supported for end-developers, however, new uses of C area unit discouraged inside Fuchsia code, wherever it’s restricted to low-level systems programming and also the kernel.
C++ is supported each for end-developers and also the Fuchsia Platform supply tree because of its in-depth use across each team. Weaknesses embrace asynchronous programming and memory safety.
The Google-built Dart language is supported for end-developers targeting non-drivers and therefore the supply tree for user interfaces and programs that do not run indefinitely. Dart has become a well-liked language and is employed together with Flutter to make mobile apps.
The Mozilla-sponsored Rust programming language has attracted Microsoft engineers partially owing to its memory safety capabilities’ area unit helpful in avoiding memory-related bugs common in Microsoft’s inheritance code written in C and C#.
Google notes, “The Fuchsia Platform supply Tree has had positive implementation expertise victimization Rust” however it’s opted to not support it for end-developers as a result of none of its current end-developers uses it and it is not a widely used language.
Google has blessed Rust to be used throughout the Fuchsia operating system supply Tree however has barred it from Zircon kernel.
“The Zircon is created by using a bounded set of technologies that have accepted industry track records of being applied in creation in OS,” Google states.
Go, another Google-hatched language for big systems that are widely used inside Google is generally not approved. The one exception is Fuchsia’s net stack as a result of it’d cost an excessive amount of to migrate to a different language.
“All different uses of Go in Fuchsia for creation software package on the pointing gadget should be migrated to a confirmed the language,” Google notes.