¿Qué lenguajes de programación permite utilizar el Sistema Operativo Fuchsia?

Este documento describe qué lenguajes de programación admite y usa el proyecto Fuchsia para el software de producción sobre el dispositivo de destino, y habla sobre sus pros / beneficios y contras / perjuicios que puede conllevar programar con un cierto lenguaje u otro sobre Fuchsia.

Estas políticas no se aplican a las herramientas de los desarrolladores, siempre que estás, se ejecuten desde dispositivos de destino o host, u otros casos similares.

Por ejemplo, esta política no se aplica a ZXDB (un depurador) porque ZXDB es una herramienta de desarrollador; en cambio, la política si que se aplicaría sobre PKGFS porque PKGFS (es un sistema de archivos) que se ejecuta en la operación normal del dispositivo por parte del usuario final.

Definiciones

El árbol fuente de la plataforma Fuchsia es el código fuente alojado en fuchsia.googlesource.com.

Fuchsia Platform Source Tree puede absorber cambios más grandes en el sistema Fuchsia y sus tecnologías subyacentes que los desarrolladores finales porque los cambios que afectan solo al Fuchsia Platform Source Tree pueden ejecutarse sin coordinación con otros grupos de personas.

Los desarrolladores finales son personas que escriben software para Fuchsia desde fuera de la plataforma de Fuchsia. Los cambios que afectan a los desarrolladores finales, requieren más coordinación y tardan más en ejecutarse que los cambios que afectan solamente al “código fuente de origen del árbol” de la propia plataforma Fuchsia.

El soporte para desarrolladores finales significa que el SDK de Fuchsia contiene bibliotecas y herramientas que ayudan a las personas a usar el lenguaje para desarrollar software para Fuchsia, incluido un backend específico del idioma (y bibliotecas de soporte) para FIDL. El soporte también implica cierto nivel de documentación, incluidos tutoriales y ejemplos, así como también la inversión de las relaciones con los desarrolladores.

Un fuerte soporte para la programación asincrónica significa que los programas asincrónicos pueden escribirse usando código de línea recta (por ejemplo, usando async / wait en lenguajes como Rust y Dart).

Lenguajes de Programación

C

Análisis

  • Pros: C es un lenguaje ampliamente utilizado. El lenguaje tiene propiedades que son bien entendidas, han sido estables durante un largo período de tiempo y se han usado para construir sistemas similares en el pasado. El lenguaje tiene una cadena de herramientas madura y herramientas de desarrollo asociadas.
  • Pros: C tiene un ABI estable, que permite que el SDK de Fuchsia contenga archivos binarios preconstruidos que los desarrolladores finales pueden reutilizar.
  • Pros: Muchos lenguajes pueden interoperar con C usando una interfaz de función externa. La compatibilidad con C facilita a los desarrolladores finales la integración de estos lenguajes con Fuchsia.
  • Pros: Nuestros desarrolladores finales actuales ya usan el lenguaje.
  • Contra: El soporte para la programación asincrónica es débil.
  • Contra: Los programas escritos en el idioma a menudo tienen errores de seguridad derivados de la falta de seguridad de la memoria del idioma.
  • Contra: Los programas escritos en el idioma a menudo contienen pérdidas de recursos porque el idioma no proporciona una instalación para liberar recursos automáticamente.
  • Contra: La seguridad de tipo es débil en comparación con C ++. Simplemente recompilando parte de nuestro código C ya que C ++ a menudo resulta en errores de compilación que muestran errores latentes en el código.

Decisión Final

  • C es compatible con desarrolladores finales. (Consulte la lista de versiones compatibles de C ).
  • Dentro del árbol de origen de la plataforma fucsia, se desaconsejan los nuevos usos de C. Solicite orientación a los PROPIETARIOS relevantes sobre si utilizar C para un nuevo código.
  • C está aprobado para su uso en el Árbol de origen de la plataforma de Fuchsia:
    • para la programación de sistemas de bajo nivel, incluso dentro del núcleo, y
    • para definir interfaces estables ABI a bibliotecas compartidas y otros componentes del sistema.

C ++

Análisis

  • Pros: Muchos de nuestros desarrolladores finales actuales usan C ++ ampliamente.
  • Pros: El árbol de origen de la plataforma Fuchsia usa C ++ ampliamente.
  • Pros: C ++ es un lenguaje ampliamente utilizado. El lenguaje tiene propiedades que son bien entendidas, han sido estables durante un largo período de tiempo y se han usado para construir sistemas similares en el pasado. El lenguaje tiene una cadena de herramientas madura y herramientas de desarrollo asociadas.
  • Contra: El soporte para la programación asincrónica es débil.
  • Contra: Los programas escritos en el idioma a menudo tienen errores de seguridad derivados de la falta de seguridad de la memoria del idioma.

Decisión Final

Dart

Análisis

  • Pros: Nuestros desarrolladores finales actuales ya usan el lenguaje.
  • Pros: La mayoría de la interfaz de usuario de Fuchsia está construida con Flutter, que usa Dart.
  • Pros: Los programas asincrónicos se pueden escribir utilizando código de línea recta.
  • Pros: Las personas que usan el lenguaje son altamente productivas.
  • Pros: El proyecto Fuchsia tiene la oportunidad de influir en la evolución del lenguaje.
  • Pros: El lenguaje proporciona garantías de seguridad de memoria, lo que reduce el riesgo de que el software desarrollado en el lenguaje tenga errores de seguridad.
  • Contra: El lenguaje utiliza la recolección de basura para administrar la memoria, que requiere más recursos que otras técnicas para administrar la memoria.
  • Contra: El lenguaje tiene un entorno de tiempo de ejecución sustancial.
  • Contra: La cadena de herramientas obliga a un equilibrio entre el tamaño binario, el rendimiento y la latencia de inicio que es peor que la compensación proporcionada por las cadenas de herramientas para otros idiomas.

Decisión Final

  • Dart es compatible con los desarrolladores finales que se dirigen a los no conductores.
  • Dart está aprobado para su uso en Fuchsia Platform Source Tree para interfaces de usuario y para programas que no se ejecutan indefinidamente.

Rust

Análisis

  • Pros: El árbol de origen de la plataforma Fuchsia ha tenido una experiencia de implementación positiva con Rust.
  • Pros: el lenguaje proporciona garantías de seguridad de memoria, lo que reduce el riesgo de que el software desarrollado en el lenguaje tenga errores de seguridad.
  • Pros: los programas asincrónicos se pueden escribir utilizando código de línea recta.
  • Pros: El proyecto Fuchsia tiene la oportunidad de influir en la evolución del lenguaje.
  • Contra: el óxido no es un lenguaje ampliamente utilizado. Las propiedades del lenguaje aún no se comprenden bien, después de haber seleccionado un punto de diseño de lenguaje inusual (por ejemplo, corrector de préstamos) y haber existido solo por un período de tiempo relativamente corto.
  • Contra: Ninguno de nuestros desarrolladores finales actuales usa Rust.

Decisión Final

  • Rust no es compatible con los desarrolladores finales.
  • Rust está aprobado para su uso en todo el árbol de origen de la plataforma Fuchsia, con las siguientes excepciones:
    • kernel . El núcleo Zircon se construye utilizando un conjunto restringido de tecnologías que han establecido un historial en la industria de su uso en sistemas operativos de producción.

Go

Análisis

  • Pros: Go es un lenguaje muy utilizado en Google.
  • Pros: gVisor ha implementado una pila de red utilizando el lenguaje y esa pila de red se ha integrado con Fuchsia.
  • Pros: Las personas que usan el lenguaje son altamente productivas.
  • Pros: El proyecto Fuchsia tiene la oportunidad de influir en la evolución del lenguaje.
  • Pros: el lenguaje proporciona garantías de seguridad de memoria, lo que reduce el riesgo de que el software desarrollado en el lenguaje tenga errores de seguridad.
  • Pros: El lenguaje tiene un extenso ecosistema de bibliotecas que probablemente sean útiles en Fuchsia.
  • Contra: El lenguaje utiliza la recolección de basura para administrar la memoria, que requiere más recursos que otras técnicas para administrar la memoria.
  • Contra: El lenguaje tiene un entorno de tiempo de ejecución sustancial.
  • Contra: El árbol fuente de la plataforma Fuchsia ha tenido una experiencia de implementación negativa al usar Go. Los componentes del sistema que el proyecto Fuchsia ha construido en Go han usado más recursos de memoria y kernel que sus contrapartes (o reemplazos) que el proyecto Fuchsia ha construido usando C ++ o Rust.
  • Contra: La cadena de herramientas produce grandes binarios.

Decisión Final

  • Go no está aprobado, con las siguientes excepciones:
    • netstack . Migrar netstack a otro idioma requeriría una inversión significativa. En la totalidad del tiempo, debemos migrar netstack a un idioma aprobado.
  • Todos los demás usos de Go in Fuchsia para software de producción en el dispositivo de destino deben migrarse a un idioma aprobado.

Fuente

: Código de Fuchsia


Licencia

Este contenido se encuentra bajo licencia Apache 2.0.

Relacionado

Tutoriales RIP: Más de 300 Guías de Programación y Tecnología basadas en Contenidos de Stack Overflow

Las guías de RIP TUTORIAL (+300) son un proyecto de ZZZ Proyects (‎una empresa dedicada a añadir valor a la comunidad .NET) que consta en la creación de libros con contenidos extraídos de Stack Overflow. Por lo que he observado, los contenidos son de 2016/17, pese a eso. Lo considero un contenido útil. Muchas guías son una simple instalación o inicio a un contenido; pero las ¡SEGUIR LEYENDO!

The best Udemy courses in August, only for 9.99 $

Los mejores cursos en inglés y en oferta, hasta el día 27. Los cursos incluidos aquí son todos en inglés. Revisa por aquí, entre los mejores cursos en oferta de Udemy de Agosto en español, si lo que deseas son cursos en español. Si por desgracia, no tienes la oportunidad de acceder a comprar alguno de los excelentes cursos que te mostraré a continuación. Siempre puedes ¡SEGUIR LEYENDO!

Si los Lenguajes de Programación fueran Superhéroes de Marvel serían..

Existen más de 750 lenguajes de programación en el universo de la programación y cada lenguaje de programación tiene un tono y un conjunto de características únicos. https://ciberninjas.com/mejores-lenguajes-programacion-2023/ No debería sorprender que este conjunto específico de características atraiga a los excéntricos, quienes ocasionalmente se reúnen para discutir entre sus diferencias, ventajas y desventajas. Consideremos un escenario fantástico donde MCU signifique "My Universo del Código" y cada ¡SEGUIR LEYENDO!

Sentando las bases para el futuro de Rust

El proyecto Rust se concibió originalmente en 2010 (dependiendo de cómo se cuente, ¡Incluso podría decirse que hacía 2006!) como un proyecto de investigación de Mozilla, pero el objetivo a largo plazo siempre ha sido establecer Rust como un proyecto autosuficiente. En 2015, con el lanzamiento de Rust 1.0, Rust estableció su propia dirección y un gobierno propio para su proyecto de forma independiente de la ¡SEGUIR LEYENDO!

Se lanza Dart 2.12: Seguridad nula e interoperabilidad C

Junto al lanzamiento de Flutter 2.0, Google también está lanzando una nueva versión del lenguaje de programación Dart: Dart 2.12. En caso de que aún no lo supieras, Dart es el lenguaje que usa Flutter. Es un lenguaje basado en TypeScript, pero que viene con algunas funciones adicionales del lenguaje, incluidas las que se intentará repasar a continuación. Seguridad Nula La seguridad nula es una característica ¡SEGUIR LEYENDO!

Salir de la versión móvil