Fuchsia Friday: FIDL — Розеттский камень Fuchsia

Учитывая огромный интерес разработчиков, проявленный на прошедшей неделе на Google I/O, мы продолжаем тему разработчиков в рамках Fuchsia Friday.

Современный программист обычно владеет не одним языком программирования, причем каждый из них привносит свои уникальные сильные стороны в решение поставленной задачи. Так бывает не всегда: некоторые разработчики берут один знакомый язык (обычно Javascript) и пытаются решить им все известные проблемы. Или, что еще хуже, иногда сама платформа или ОС ограничивает выбор языков, которые можно использовать.

Независимо от вашего уровня знаний в программировании, Fuchsia стремится подстроиться под вас, а не диктовать, как вы должны выполнять работу. Для этого команда Fuchsia создала FIDL. FIDL работает в двух направлениях: сам Fuchsia Interface Definition Language (язык определения интерфейсов Fuchsia) и нижележащая система, соединяющая различные языки.

На данный момент FIDL поддерживает 5 языков, и в будущем их, вероятно, станет больше.

Реклама — прокрутите дальше, чтобы увидеть контент

  • Dart – язык, созданный Google, который должен быть знаком разработчикам Java и Javascript. Также является основным языком для Flutter.
  • Go – еще один язык от Google, в основном используемый на веб-серверах.
  • C++ / C – два надежных языка, особенно полезных для низкоуровневого программирования.
  • Rust – относительно успешная попытка Mozilla заменить C++.

Предположим, вы пишете библиотеку на Go, но хотите использовать ее в приложении на Dart (или Flutter). Вы можете использовать язык FIDL для создания «интерфейса» и связать его с вашим кодом на Go в качестве «реализации». Затем система FIDL сгенерирует «привязки» для всех поддерживаемых языков, чтобы вы могли использовать ваш код на Go в Dart.

Теперь, возможно, прошло некоторое время, вы поняли, что Go на самом деле не был лучшим инструментом для работы, и решили переписать библиотеку на Rust. С помощью FIDL вы сможете указать свой код на Rust в качестве новой реализации. Вот и все. Вы закончили. Ваш код на Dart не должен измениться, потому что интерфейс FIDL не изменился. По крайней мере, это упрощенная версия.

Интересно, что система FIDL настолько широко используется в разработке Fuchsia, что команда Fuchsia даже разработала расширение для VS Code, чтобы помочь в написании лучшего кода на FIDL.

Если вы хотите узнать больше о FIDL и о том, как им пользоваться, ознакомьтесь с официальным учебником в документации Fuchsia. На этой странице вы найдете простые примеры вызова кода C++ из Dart и наоборот.

Читайте больше в нашей серии Fuchsia Friday:


Подпишитесь на 9to5Google на YouTube, чтобы узнавать больше новостей: