Facebook открыл код среды разработки Nuclide
🕛 25.06.2015, 06:51
Facebook объявил об открытии исходных текстов интегрированной среды разработки Nuclide, оптимизированной для разработки мобильных и web-приложений на языке JavaScript с использованием React или React Native, а также для разработки на языке Hack (вариант PHP со статической типизацией). Код Nuclide опубликован под лицензией BSD и представляет собой набор компонентов для развиваемой компанией GitHub свободной платформы Atom, которая построена с использованием браузерного ядра Chromium. Установка среды производится путем загрузки штатной версии Atom и установки в неё связанных с Nuclide пакетов.
Основные особенности Nuclide: Средства удалённой разработки, дающие возможность работы с кодом, размещённым на удалённом сервере. На сервере размещается специальный серверный демон (nuclide/server), обращение к которому производится клиентской частью Nuclide через SSH. При помощи функций удалённой разработки возможно не только редактирование кода и навигация по файлам на сервере, но и выполнение задач проверки типов и синтаксиса исходных текстов, размещённых на удалённом сервере. Поддержка языка программирования Hack, который обратно совместим с PHP и расширяет синтаксис PHP поддержкой статической типизации и ряда расширенных возможностей, заимствованных из других языков программирования, таких как обобщения (generics по образу C# и Java), null-значения, коллекции, Lambda-выражения, механизмы асинхронного программирования, составные shape-структуры и средства для переопределения имён типов. Код на языке Hack выполняется с использованием виртуальной машины HHVM (HipHop Virtual Machine). Для языка Hack в Nuclide предоставляются средства подсветки синтаксиса, проверки типов, автодополнения кода и навигации по коду. Поддержка статического анализатора типов для языка JavaScript Flow и созданных при помощи данного инструментария файлов-анотаций с информацией о типах переменных. Flow позволяет выявлять ошибки в коде на языке JavaScript без дополнительных трудозатрат на его аудит. В качестве метода выявления ошибок применяется автоматическое определение типов переменных на основании контекста, с дальнейшим отслеживанием их корректного использования. Flow также обеспечивает продвинутый механизм выявления проблем со значениями null и массивами. Поддержка распределённой системы управления версиями Mercurial, которая в настоящее время является основной платформой для управления кодом в Facebook. Предоставляются такие операции как подсветка изменений в дереве исходных текстов, установка меток, наглядный просмотр отличий. Интеграция системы поиска Omni-search, предоставляющей эффективные средства поиска кода, файлов, функций и переменных в больших коллекциях исходных текстов.