
Учитывая огромный интерес разработчиков, проявленный на прошедшей неделе на 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:
- Fuchsia Friday: Maxwell и секретные «агенты» Fuchsia
- Fuchsia Friday: Команда мечты, стоящая за новой ОС Google
- Fuchsia Friday: Первые мысли о том, как может появиться совместимость с Android
- Fuchsia Friday: Первые 5 минут Fuchsia, зафиксированные новым инструментом для скриншотов
- Fuchsia Friday: Где Fuchsia на Google I/O 2018?
Подпишитесь на 9to5Google на YouTube, чтобы узнавать больше новостей: