Fuchsia programming language policy: the front with Dart, Go To exit

Google announced the next-generation open-source operating system Fuchsia developer site a Fuchsia editing language policy , the document describes the C, C ++, Dart, Rust Go with advantages and disadvantages, and clearly specify which of those languages will Fuchsia ecology in developed how to get the level of support.

This strategy document describes the use and support when in Fuchsia Platform Source Tree (Fuchsia platform source tree) and a terminal for developers to build Fuchsia target device software development in this project outside Fuchsia programming language.

Fuchsia Platform Source Tree is hosted on fuchsia.googlesource.com Fuchsia source terminal developer is the person writing software for the Fuchsia outside Fuchsia Platform Source Tree. Compared with the terminal developer, Fuchsia Platform Source Tree can converge Fuchsia larger changes to the system and its underlying technology, it can be executed only affect Fuchsia Platform Source Tree changes, without the need for coordination with other staff. Instead, the changes affect terminal developers of the need for more coordination and requires a longer execution time.

Google introduced support for terminal developers need means Fuchsia SDK contains tools and libraries to help them develop software Fuchsia, including FIDL (Fuchsia Interface definition language, Fuchsia Interface Definition Language) language-specific back-end and support libraries. Strong support for asynchronous programming means that you can use linear code, for example using async Rust / Dart and other languages ​​/ await an asynchronous write programs.

After the documents were listed next several programming languages, analyze their strengths and weaknesses, the following conclusions:

C

  • C is support for terminal developers.
  • In Fuchsia Platform Source Tree, a new use is discouraged in C, and is only approved for use in the following areas:
    • For the underlying programming system, including the kernel
    • It is used to define the shared library and the other system components ABI stable interfaces 

C++

  • C ++ is supported for terminal developers.
  • Approved the use of C ++ in the whole Fuchsia Platform Source Tree.

Dart

  • Dart developer is supported for the terminal for non-driver.
  • Dart is approved for the user interface and runs indefinitely in Fuchsia Platform Source Tree in.

Rust 

  • Terminal developers do not support the use of Rust.
  • In addition Zircon kernel, Rust is approved for use in the entire Fuchsia Platform Source Tree.

Go

  • Go is approved only for use in web technology stack, because the migration of the network stack requires a lot of cost. Time permitted, it should migrate to the network stack approved language.
  • Must migrate all other codes Fuchsia Go for the production of software on the target device to the approval of the language.

To summarize, Go may be some loss in Fuchsia ecology, it is worth noting that in the introduction to document their drawbacks:

  • Garbage collection to manage memory, which take up more resources than other memory management technology for
  • Huge runtime environment
  • Fuchsia Platform Source Tree has negative aspects of implementation experience in the use of Go. Compared to the use of similar components Fuchsia project built in Go system components consume memory and kernel resources to build C ++ or Rust More
  • Tool chain produces large binary files

Concern is that the document did not address Fuchsia has confirmed that support for Python . However, details about the support of Python, did not support the language page details, only a Hurdle  TODO , it should be not ready.

On the other hand, had about support JavaScript rumors, it seems that can not be proved.

Guess you like

Origin www.oschina.net/news/113639/fuchsia-programming-language-policy