Компания Red Hat представила язык программирования Ceylon, призванный заменить JavaГэвин Кинг (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.
Распечатано с HostDB.ru.
|