Компания Red Hat представила язык программирования Ceylon, призванный заменить Java
13 апреля 2011 года
Гэвин Кинг (Gavin King), основатель проектов Hibernate и Seam, раскрыл на конференции QCon некоторые детали, связанные с проектом Ceylon, нацеленным на создание нового промышленного языка программирования и связанного с ним комплекта разработки (SDK), претендующих на роль замены Java. Проект уже два года развивается в компании Red Hat в условиях большой секретности. Информация о языке Ceylon изложена в двух презентациях: "Введение в Ceylon" и "Система типов Ceylon".
Судя по опубликованной информации, язык Ceylon нацелен в первую очередь на создание приложений для бизнеса. При проектировании Ceylon были учтены сильные и слабые стороны языка Java: Ceylon предназначен для выполнения в стандартной виртуальной машине JVM, использует статическую типизацию, поддерживает функции высшего порядка, спроектирован с оглядкой на простоту изучения и лёгкость восприятия кода.
Необходимость создания замены Java связана с тем, что несмотря на популярность языка, его надёжность и наличие огромного количества готовых библиотек классов, в Java накопилось достаточно много устаревших концепций и подходов, которые мешают дальнейшей эволюции языка и достижения того уровня эффективности, который можно наблюдать в таких языках, как Groovy, Python и C#.
В настоящее время уже проделана большая работа по становлению Ceylon: сформирован дизайн языка, ведётся работа по созданию готового к промышленному использованию компилятора и SDK. Тем не менее, до завершения разработки ещё очень далеко, например, не решены некоторые проблемы с организацией модульной структуры и интеграции с существующими Java-проектами и библиотеками. Предполагается, что раскрытие завесы тайны над языком Ceylon связано с тем, что Red Hat пытается найти партнёров для доведения разработки до конца. Как и другие проекты Red Hat, код Ceylon будет доступен в рамках свободной лицензии.
Некоторые особенности Ceylon:
- Статическая типизация (тип любого значения любого выражения может быть определён без исполнения программы), позволяющая выявлять ошибки на этапе компиляции, а не в процессе исполнения;
- Отсутствие специальных типов, всё реализовано в виде объектов;
- Именованные и опциональные параметры;
- Nullable-типы (кроме значений базового типа, допускается использование состояний NULL);
- Отсутствие необходимости явного указания геттеров/сеттеров (getter/setters);
- Определение типов для локальных блоков (через ключевое слово "local");
- Удобная организация работы с последовательностями (массивами);
- Реализация функций высшего порядка, аргументом или возвращаемым результатом в которых выступают другие функции;
- Использование для присвоения значений оператора ":=";
- Новый синтаксис интерполяции строк;
- Новые типы: Natural, Numeric и т.п.
- Классы, методы и атрибуты выглядят одинаково;
- Использование для определения существующих языковых концепций новых ключевых слов: shared, satisfies, assign, variable, local;
- Упрощение уровней public, protected, private access, visibility;
- Определение inline-функций в стиле Smalltalk.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.