Neko — это истинный источник всей функциональности, тогда как haXe является всего лишь синтаксической оболочкой для него. Если вы изучаете haXe и он вам нравится, то в скором времени вы почувствуете истинную мощь Neko и поймете, что хотя haXe и является уникальным скриптовым языком, но именно Neko — величайшее создание Николаса Каннассье.
В отличие от haXe, стандартный Neko является языком с динамической типизацией. Также в отличие от haXe, язык спроектирован исходя из удобства автоматического генерирования его кода, а не удобства написания кода программистом. Поэтому не подразумевается использование компилятора Neko самого по себе, а только как мощный инструмент и виртуальную машину для других языков. Поэтому haXe и Neko рассматриваются вместе, как единый набор интрументов.
Возможности Neko обеспечиваются тремя "китами":
Стандартный язык Neko, это процедурный язык, который вы можете использовать для разработки прототипов собственных модулей. Neko обеспечивает простое и быстрое тестирование новых модулей, поскольку не нужно применять объектно-ориентированные структуры и методы.
Два других языка — это XML-подобный язык NXML и функциональный язык NekoML. NXML, как и процедурный язык Neko, спроектирован для автоматической генерации компиляторами. Причина такого решения в том, что хотя людям проще читать стандартные языки, структуры XML проще для автоматического разбора и навигации. NXML также обеспечивает более простой способ включать информацию об именах файлов и номерах строк кода в скомпилированных hx-файлах, что необходимо для предоставления отладочной информации разработчику.
А вот NekoML, это совсем другая история. Он следует стилю функциональных языков семейства ML и схож с языком Objective Caml. ML языки обеспечивают очень естественные средства обработки данных с помощью вложенных функций и рекурсий, что минимизирует используемые ресурсы и очень хорошо сочетается с технологиями компиляторов - symbolic processing и pattern matching (не владею терминологией чтобы адектватно перевести). Благодаря этому, язык NekoML идеален для создания компиляторов.
Хотя компилятор Neko изначално был написан на Objective Caml, сейчас он переписан на NekoML и скомпилирован компилятором Neko. Такая круговая техника известна как bootstrapping.
Через какое-то время могут быть созданы новые языки, компилируемые для виртуальной машины Neko. Пока идет работа над этой книгой, небольшая группа энтузиастов работает над компилятором, позволяющим компилировать код Ruby для Neko. Если после прочтения данной книги у вас возникнет желание написать компилятор для своего любимого языка, компилирующий его для виртуальной машины Neko, напишите письмо Николасу Каннассье в список рассылки haXe, он направит вас в нужное русло.