Facebook объявил (https://code.facebook.com/posts/397706937084869/) об открытии исходных текстов интегрированной среды разработки Nuclide (http://nuclide.io/), оптимизированной для разработки мобильных и web-приложений на языке JavaScript с использованием React или React Native (http://www.opennet.ru/opennews/art.shtml?num=41918), а также для разработки на языке Hack (http://www.opennet.ru/opennews/art.shtml?num=39368) (вариант PHP со статической типизацией).
Код Nuclide опубликован (https://github.com/facebook/nuclide) под лицензией BSD и представляет собой набор компонентов для развиваемой компанией GitHub свободной платформы Atom (http://www.opennet.ru/opennews/art.shtml?num=39711), которая построена с использованием браузерного ядра Chromium. Установка среды производится путем загрузки штатной версии Atom и установки в неё связанных с Nuclide пакетов.
<center><img src="http://www.opennet.ru/opennews/pics_base/0_1427449898.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border="0"></center>
Основные особенности Nuclide:
- Средства удалённой разработки, дающие возможность работы с кодом, размещённым на удалённом сервере. На сервере размещается специальный серверный демон (nuclide/server (https://github.com/facebook/nuclide/tree/master/pkg/nuclide/...)), обращение к которому производится клиентской частью Nuclide через SSH. При помощи функций удалённой разработки возможно не только редактирование кода, но и выполнение задач проверки типов и синтаксиса файлов на удалённом сервере.
- Поддержка языка программирования Hack (http://hacklang.org), который обратно совместим с PHP и расширяет (http://www.opennet.ru/opennews/art.shtml?num=39368) синтаксис PHP поддержкой статической типизации и ряда расширенных возможностей, заимствованных из других языков программирования, таких как обобщения (generics по образу C# и Java), null-значения, коллекции, Lambda-выражения, механизмы асинхронного программирования, составные shape-структуры и средства для переопределения имён типов. Код на языке Hack выполняется с использованием виртуальной машины HHVM (http://hhvm.com/) (HipHop Virtual Machine). Для языка Hack в Nuclide предоставляются средства подсветки синтаксиса, проверки типов, автодополнения кода и навигации по коду.
- Поддержка статического анализатора типов для языка JavaScript Flow (http://flowtype.org/) и созданных при помощи данного инструментария файлов-анотаций с информацией о типах переменных. Flow позволяет выявлять ошибки в коде на языке JavaScript без дополнительных трудозатрат на его аудит. В качестве метода выявления ошибок применяется автоматическое определение типов переменных на основании контекста, с дальнейшим отслеживанием их корректного использования. Flow также обеспечивает продвинутый механизм выявления проблем со значениями null и массивами.
- Поддержка распределённой системы управления версиями Mercurial, которая в настоящее время является основной платформой для управления кодом в Facebook. Предоставляются такие операции как подсветка изменений в дереве исходных текстов, установка меток, наглядный просмотр отличий.
- Интеграция системы поиска Omni-search, предоставляющая эффективные средства поиска кода, файлов, функций и переменных в больших коллекциях исходных текстов.
URL: https://code.facebook.com/posts/397706937084869/
Новость: http://www.opennet.ru/opennews/art.shtml?num=42486