Окт 29, 2015 - 0 Comments - Интересно -

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

29.10.2015 18:20 Компания Red Hat выпустила язык программирования Ceylon 1.2

После года разработки доступен язык программирования Ceylon 1.2.0, развиваемый компанией Red Hat в качестве языка общего назначения, претендующего на роль замены Java. Для разработки приложений предоставляются Ceylon SDK, коллекция модулей и интегрированная среда разработки Ceylon IDE, построенная на основе платформы Eclipse. Код связанных с языком компонентов распространяется под лицензией GPLv2, а код среды разработки под лицензией EPL. Бинарные пакеты можно загрузить в форматах deb и rpm.

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

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

Модули на языке Ceylon упаковываются в архивы .car и помещаются в специальные репозитории. В процессе выполнения приложения нужные модули загружаются сразу из внешнего или локального репозитория, не требуя предварительной установки. Язык поддерживает архитектуру модульной «peer-to-peer» загрузки классов, обладающую такими возможностями как учет требований приложения к версиям модулей и поддержку работы сразу с несколькими репозиториями модулей, как локальными, так и внешними.

По сравнению с прошлым выпуском внесено более 1500 изменений. Из наиболее заметных улучшений можно отметить:

  • Поддержка именованных конструкторов;
  • Средства для сериализации данных;
  • Поддержка аннотации «native», позволяющий использовать в кросс-платформенных модулях код, специфичный для определённых платформ;
  • Улучшение системы типизации, чувствительной к потоку выполнения (flow-sensitive);
  • Средства для деструктуририрования кортежей и записей;
  • Новые выражения let, switch, if и object;
  • Расширение возможностей аннотаций «constraint»;
  • В инструмент проверки типов (typechecker) и бэкенд JavaScript добавлена поддержки конструкторов типов («type function»);
  • В интегрированной среде разработки представлен новый отладчик, реализована поддержка нескольких тем подсветки синтаксиса, добавлена опция для вставки Java-блоков как кода на языке Ceylon.
  • Новая команда «ceylon war» для упаковки модулей в пакеты в формате Java EE WAR;
  • Новая команда «ceylon browse» для открытия документации по модулю в браузере;
  • Возможность одновременного задания нескольких команд в одном вызове ceylon, например, «ceylon compile,doc,run com.redhat.hello»;
  • Возможности команды ceylon теперь можно расширять при помощи плагинов, написанных на языке Ceylon;
  • Переработана работающая в браузере среда разработки Web IDE, которая переписана на языке Ceylon и поддерживает подсветку синтаксиса, интерактивные уведомления об ошибках, автодополнение ввода, online-документацию и обмен примерами через Gist;
  • API расширен новыми функциями map(), set(), distinct(), frequences(), group(), tabulate(), summarize(), getOrDefault(), defaultNullItems(), coalescedMap, Collection.permutations(), formatFloat().

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

  • Статическая типизация (тип любого значения любого выражения может быть определён без исполнения программы), позволяющая выявлять ошибки на этапе компиляции, а не в процессе исполнения;
  • Отсутствие специальных типов, всё реализовано в виде объектов;
  • Именованные и опциональные параметры;
  • Nullable-типы (кроме значений базового типа, допускается использование состояний NULL);
  • Отсутствие необходимости явного указания геттеров/сеттеров (getter/setters);
  • Определение типов для локальных блоков (через ключевое слово «local»);
  • Удобная организация работы с последовательностями (массивами);
  • Реализация функций высшего порядка, аргументом или возвращаемым результатом в которых выступают другие функции;
  • Использование для присвоения первоначальных значений (инициализации переменных) оператора «:=»;
  • Новый синтаксис интерполяции строк;
  • Новые типы: Natural, Numeric и т.п.
  • Классы, методы и атрибуты выглядят одинаково;
  • Использование для определения существующих языковых концепций новых ключевых слов: shared, satisfies, assign, variable, local;
  • Упрощение уровней public, protected, private access, visibility;
  • Определение inline-функций в стиле Smalltalk.
  1. Главная ссылка к новости (http://www.ceylon-lang.org/blo…)
Тип: Программы
Ключевые слова: ceylon, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
 
+1 +/
Есть косяк. Java Memory Model описывает только язык Java.
Если чего-то скомпилировать в байткод, то для многопоточных приложений никаких гарантий нет.
Вообще нет никакого описания. Т.о. невозможно написать корректное многопоточное приложение.
Это же относится к Scala и прочим.
Единственный выход — это Red Hat должен создать собственную спецификацию модели памяти. А это даже SUN-у с первого раза не удалось. На Java до версии 1.5 невозможно написать корректное многопоточное приложение.
 
–1 +/
Щас про все языки так говорят: «у нас синтаксис как в си!».

Ceylon’s syntax is ultimately derived from C. So if you’re a C, Java, or C# programmer, you’ll immediately feel right at home.

Я после ознакомления с туром по языку не чувствую себя как дома. совсем

 

Ваш комментарий
 

This entry passed through the Full-Text RSS service — if this is your content and you’re reading it on someone else’s site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Человек ? *