Представлен [4] первый релиз языка программирования Ceylon [5] (Milestone 1), развиваемого компанией Red Hat как языка общего назначения, претендующего на роль замены Java. В состав выпуска входят компилятор, runtime-компоненты и набор стандартных модулей. Через несколько дней планируется выпустить интегрированную среду разработки Ceylon IDE [6], построенную на базе Eclipse. Код связанных с языком компонентов распространяется [7] под лицензией GPLv2, а код среды разработки под лицензией EPL. Бинарные пакеты можно загрузить [8] в форматах deb и rpm.
Первый релиз "Milestone 1" имеет статус экспериментального выпуска, на базе которого, после публикации ещё четырёх Milestone-выпусков, будет подготовлен стабильный релиз Ceylon 1.0. В первом выпуске реализована поддержка выражений, базовых возможностей языка, процедурного и объектно-ориентированного кода. Во следующих экспериментальных выпусках появятся [9] средства функционального программирования, поддержка смешанного наследования, вложенных классов, псевдонимов типов, конструкции switch/case, перечисляемых типов, аннотаций, мета-модели типов, перехвата методов, атрибутов и классов.
Создатели Ceylon поставили перед собой цель избавления от устаревших концепций и подходов, которые мешают дальнейшей эволюции языка Java и достижению более высокого уровня эффективности. Кроме реализации лучших возможностей Java, в Ceylon заимствованы некоторые дополнительные конструкции из языков Smalltalk, Python и ML. Написанные на языке Ceylon программы и модули могут выполняться в стандартной виртуальной машине Java (JVM). Поддерживается бесшовная интеграция с другими языками, базирующимися на JVM, например, модули на языке Ceylon можно использовать в программах на Java и наоборот. Язык использует статическую типизацию и спроектирован с оглядкой на простоту изучения, лёгкость восприятия кода и разработку больших проектов, в которых участвует большое число программистов. Синтаксис Ceylon во многом напоминает Си, Java и C#.
Отмечается, что при помощи Ceylon значительно проще создавать фреймворки и библиотеки классов, а также естественно описывать древовидные структуры (в частности, формировать пользовательский интерфейс). В язык добавлены элементы, упрощающие написание кода, который можно использовать повторно в других проектах. Модули на языке Ceylon упаковываются в архивы .car и помещаются в специальные репозитории. В процессе выполнения приложения нужные модули загружаются сразу из внешнего или локального репозитория, не требуя предварительной установки. Язык поддерживает архитектуру модульной "peer-to-peer" загрузки классов, обладающую такими возможностями как учет требований приложения к версиям модулей и поддержку работы сразу с несколькими репозиториями модулей, как локальными, так и внешними (первый релиз поддерживает только локальные репозитории, поддержка внешнего репозитория modules.ceylon-lang.org появится в следующем выпуске).
Некоторые особенности [10] Ceylon:
Ссылки:
[1] http://htfl.ru/cat-news-red-hat
[2] http://htfl.ru/cat-news-novosti
[3] http://htfl.ru/cat-news-yazyki-programirovaniya
[4] /out.php?link=http://ceylon-lang.org/blog/2011/12/20/ceylon-m1-newton/
[5] /out.php?link=http://ceylon-lang.org/
[6] /out.php?link=http://ceylon-lang.org/documentation/ide/?utm_source=blog&utm_medium=web&utm_content=ide&utm_campaign=1_0_M1release
[7] /out.php?link=https://github.com/ceylon
[8] /out.php?link=http://ceylon-lang.org/download/
[9] /out.php?link=http://ceylon-lang.org/documentation/roadmap/
[10] /out.php?link=http://ceylon-lang.org/documentation/introduction/
[11] /out.php?link=http://en.wikipedia.org/wiki/Nullable_type