На состоявшемся на днях съезде GNOME Developer Experience Hackfest команда разработчиков GNOME рассмотрела вопрос выработки рекомендаций по выбору языка программирования для разработки GNOME-приложений. Мотивом определения рекомендованного по умолчанию языка стали участившиеся вопросы начинающих разработчиков о том, какой инструментарий надо использовать при написании приложений для GNOME. До настоящего момента однозначного ответа на этот вопрос не было, но теперь команда разработчиков GNOME решила стандартизировать JavaScript как язык для написания пользовательских приложений GNOME, одновременно рекомендуя язык Си для написания системных библиотек. Съезд разработчиков GNOME состоялся в дни перед открытием конференции FOSDEM 2013 в Брюсселе. По вопросу выбора единого языка для разработки приложений GNOME было достигнуто обоюдное согласие участников обсуждения, поскольку единый язык упрощает разработчикам подготовку документации и обмен знаниями с новичками, а также облегчает задачу по интеграции приложений, написанных для десктопа с использованием предоставляемой проектом инфраструктуры. Выбор JavaScript обусловлен несколькими факторами:
  • JavaScript уже хорошо поддерживается в GNOME 3, так как GNOME Shell использует его для реализации пользовательского интерфейса и дополнений;
  • Наблюдается большая работа по оптимизации производительности JavaScript, его развития как встраиваемого и не зависимого от фреймворков языка;
  • Имеется успешный опыт применения JavaScript для аналогичных целей в таких системах, как Windows 8, Firefox OS, webOS, Tizen и KDE, что, как надеется команда разработчиков, упростит работу новых членов команды GNOME;
  • JavaScript прекрасно отвечает потребностям GNOME в динамическом и высокоуровневом языке;
  • JavaScript является самодостаточным решением, легко интегрируемым в платформу и не связанным с собственным набором базовых библиотек.
Несмотря на выбор JavaScript, разработчики GNOME отмечают, что это вовсе не означает отказ от поддержки других языков. Разработка других биндингов и обеспечение совместимости с различными языками программирования будет производиться как и раньше. «Очень важно понять, что данное решение направлено на выдвижение JavaScript, а также связанных с ним биндингов, инструментария и документации на первый план с целью достижения нового уровня качества, но это решение ни в коем случае не означает забвения биндингов для других языков.», подчеркнул Рейттер.