Выпуск языка программирования Ceylon 1.0.0, развиваемого Red Hat в качестве альтернативы Java

13 ноября 2013 года

Увидел свет язык программирования Ceylon 1.0.0, первый стабильный релиз, пригодный для промышленного применения. Ceylon развивается компанией Red Hat как язык общего назначения, претендующий на роль замены Java. Лидером разработки является Гэвин Кинг (Gavin King), основатель проектов Hibernate и Seam. Код связанных с языком компонентов распространяется под лицензией GPLv2, а код среды разработки под лицензией EPL. Бинарные пакеты можно загрузить в форматах deb и rpm.

В состав выпуска входят:

Целью создания Ceylon было избавление от устаревших концепций и подходов, которые мешают дальнейшей эволюции языка Java и достижению более высокого уровня эффективности. Кроме реализации лучших возможностей Java, в Ceylon заимствованы некоторые дополнительные конструкции из языков Smalltalk, Python и ML. Написанные на языке Ceylon программы и модули могут выполняться в стандартной виртуальной машине Java (JVM) или компилироваться в JavaScript (поддерживается выполнение в браузере или под управлением Node.js).

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

Отмечается, что при помощи Ceylon значительно проще создавать фреймворки и библиотеки классов, а также естественно описывать древовидные структуры (в частности, формировать пользовательский интерфейс). В язык добавлены элементы, упрощающие написание кода, который можно использовать повторно в других проектах. Модули на языке Ceylon упаковываются в архивы .car и помещаются в специальные репозитории. В процессе выполнения приложения нужные модули загружаются сразу из внешнего или локального репозитория, не требуя предварительной установки. Язык поддерживает архитектуру модульной "peer-to-peer" загрузки классов, обладающую такими возможностями как учет требований приложения к версиям модулей и поддержку работы сразу с несколькими репозиториями модулей, как локальными, так и внешними (Архивная копия от 31 октября 2015 на Wayback Machine).

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

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

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск языка программирования Ceylon 1.0.0, развиваемого Red Hat в качестве альтернативы Java», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.