Компания Red Hat ввела в строй сайт для нового языка программирования Ceylon

Для формирования сообщества разработчиков на языке программирования Ceylon, развиваемом по инициативе компании Red Hat, введён в строй сайт проекта - ceylon-lang.org и открыт доступ к Git-репозиториям с кодом. Язык Ceylon был представлен компанией Red Hat в апреле этого кода, как язык общего назначения, претендующий на роль замены Java. Спецификации Ceylon, код компилятора, runtime-компонентов, библиотек и интегрированной среды разработки на базе Eclipse можно загрузить из GitHub. Реализация компилятора Ceylon написана на языке Java. Код доступен под лицензией GPLv2.

В настоящий момент проект находится на стадии подготовки первого экспериментального выпуска (Milestone 1), который ожидается после устранения нескольких нерешенных проблем. В первом выпуске будет реализована поддержка выражений, базовых возможностей языка, процедурного и объектно-ориентированного кода. Во втором тестовом выпуске появятся средства функционального программирования, поддержка смешивания наследования, вложенных классов, псевдонимов типов и конструкции switch/case. В третьем выпуске, который будет распространяться как Ceylon 1.0, намечена поддержка аннотаций, мета-модели типов, перехвата методов, атрибутов и классов.

Учтя сильные и слабые стороны языка Java, создатели Ceylon поставили перед собой цель избавления от устаревших концепций и подходов, которые мешают дальнейшей эволюции Java и достижения более высокого уровня эффективности. Написанные на языке Ceylon программы могут выполняться в стандартной виртуальной машине Java (JVM). Язык использует статическую типизацию и спроектирован с оглядкой на простоту изучения и лёгкость восприятия кода. Синтаксис Ceylon во многом напоминает Java и C#. Отмечается, что при помощи Ceylon значительно проще создавать фреймворки и библиотеки классов, а также естественно описывать древовидные структуры (в частности, пользовательский интерфейс).

Некоторые особенности Ceylon:

  • Статическая типизация (тип любого значения любого выражения может быть определён без исполнения программы), позволяющая выявлять ошибки на этапе компиляции, а не в процессе исполнения;
  • Отсутствие специальных типов, всё реализовано в виде объектов;
  • Именованные и опциональные параметры;
  • Nullable-типы (кроме значений базового типа, допускается использование состояний NULL);
  • Отсутствие необходимости явного указания геттеров/сеттеров (getter/setters);
  • Определение типов для локальных блоков (через ключевое слово "local");
  • Удобная организация работы с последовательностями (массивами);
  • Реализация функций высшего порядка, аргументом или возвращаемым результатом в которых выступают другие функции;
  • Использование для присвоения значений оператора ":=";
  • Новый синтаксис интерполяции строк;
  • Новые типы: Natural, Numeric и т.п.
  • Классы, методы и атрибуты выглядят одинаково;
  • Использование для определения существующих языковых концепций новых ключевых слов: shared, satisfies, assign, variable, local;
  • Упрощение уровней public, protected, private access, visibility;
  • Определение inline-функций в стиле Smalltalk.

©  OpenNet