The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

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

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

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

  • Спецификации, определяющие синтаксис и семантику языка;
  • Инструментарий, работающий в режиме командной строки. В том числе, компилятор в Java и JavaScript, а также компоненты для запуска приложений под управлением JVM и Node.js;
  • Компоненты модульной архитектуры с поддержкой управления зависимостями, изоляции модулей и логического разбиения кода;
  • Базовый модуль языка и набор вспомогательных модулей, формирующих Ceylon SDK. Отдельно доступен каталог модулей, разработанных силами сообщества;
  • Интегрированная среда разработки Ceylon IDE, построенная на основе платформы Eclipse.

Целью создания 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" загрузки классов, обладающую такими возможностями как учет требований приложения к версиям модулей и поддержку работы сразу с несколькими репозиториями модулей, как локальными, так и внешними.

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

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



  1. Главная ссылка к новости (http://ceylon-lang.org/blog/20...)
  2. OpenNews: Выпуск языка программирования Rust 0.8, развиваемого проектом Mozilla
  3. OpenNews: Увидел свет язык программирования Go 1.1
  4. OpenNews: Реализация языка программирования REBOL открыта под лицензией Apache
  5. OpenNews: Проект Eclipse развивает новый язык программирования Xtend
  6. OpenNews: Новые версии языков Dart и TypeScript, претендующих на роль альтернатив JavaScript
Лицензия: CC-BY
Тип: Программы
Ключевые слова: ceylon, lang, redhat
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.2, Аноним, 23:34, 13/11/2013 [ответить] [смотреть все]    [к модератору]
  • +/
    они свою 7-ку на  Ceylon собрались переписать, поэтому и не релизят ??
     
     
  • 2.13, Сталин, 01:54, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +/
    Потом будет аналогом Firefox OS
     
  • 1.5, хрюкотающий зелюк, 00:18, 14/11/2013 [ответить] [смотреть все]    [к модератору]
  • +/
    Не имею ничего против этого языка и даже рад что его создали. Приятно осознавать что такие замечательные платформы доступны в исходных кодах, это в любом случае хорошо.

    Сравните с недо-dot-net - бинарный блоб под 1.5 ОС - просто смешно считать это серьезной платформой.

    > Написанные на языке Ceylon программы и модули могут выполняться в стандартной виртуальной машине Java (JVM) или компилироваться в JavaScript (поддерживается выполнение в браузере или под управлением Node.js).

    Айс ^_^

     
     
  • 2.14, AnonuS, 05:00, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +7 +/
    Сразу чувствуется мнение специалиста...


    Господин хороший, растолкуй Христа ради чего тут написано:

    > Классы, методы и атрибуты выглядят одинаково;

     
  • 1.6, Аноним, 00:36, 14/11/2013 [ответить] [смотреть все]    [к модератору]
  • +2 +/
    >> Классы, методы и атрибуты выглядят одинаково;

    Шта? О_о

     
  • 1.8, Аноним, 00:57, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • –4 +/
    Опоздали. Есть Kotlin.
     
     
  • 2.11, YetAnotherOnanym, 01:43, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    А Тасмании нет? Или Мадагаскара?
     
  • 2.16, Аноним, 06:44, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    Нету Kotlin, нету. Есть только попытка его создать.
     
     
  • 3.78, FractalizeR, 18:43, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    В каком смысле?
     
     
  • 4.86, Аноним, 20:16, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    > В каком смысле?

    В прямом, ёбта. Что тебе непонятно?

     
  • 1.10, Sigurd, 01:18, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Есть scala и groovy
     
  • 1.17, 3draven, 06:55, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • +/
    В java действительно есть проблема унаследованного и обратно совместимого мусора. Я давно хотел чего то, что было бы явой, без обратной совместимости с технологиями десятилетней давности. Те же обобщения в яве просто набор обратно совместимых костылей (сделать их элементом компиляции...и только что бы в jvm не вносить новых команд), не говоря уже о спецификациях фреймворков в инфраструктуре вокруг явы. Развитие язков вроде груви,скала и цейлона всего лишь ответ на действительно существующую проблему. Ораклу стоит подумать о том что бы очистить яву от старого хлама, сделав новую ветку или что то подобное...лично я уже поглядываю в сторону новых решений...но пока рановато.
     
     
  • 2.18, 3draven, 07:00, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Кстати, при беглом осмотре целон показался более приятным чем скала и груви Не ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.19, 3draven, 07:41, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Немного пробежав по цейлону я понял, что надо пробежать побольше нравится, бли... весь текст скрыт [показать]
     
     
  • 4.22, 3draven, 09:27, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Хотя java 8 во многом перекроет самые вкусные возможности цейлона В нее бы еще ... весь текст скрыт [показать]
     
     
  • 5.27, Аноним, 11:10, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Не холивара ради, что мешает вместо get/set сделать полям public visibility?
     
     
  • 6.33, Аноним, 11:35, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    get set могут делать дополнительные проверки и кидать исключения, например Но в... весь текст скрыт [показать]
     
     
  • 7.36, Аноним, 11:47, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Хмм, мне кажется наоборот, get set является как раз инструментом инкапсуляции Е... весь текст скрыт [показать]
     
     
  • 8.37, Аноним, 12:01, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нет Это просто надстройки над полем Никакого сокрытия по сути не происходит, п... весь текст скрыт [показать]
     
     
  • 9.38, 3draven, 12:07, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    С инкапсуляцией я то же когда то размышлял Доразмышлялся до того, что пришел к ... весь текст скрыт [показать]
     
     
  • 10.90, 3draven, 21:14, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Кстати В цейлоне я так понял защищенных и дефолт полей нету, они все видны внут... весь текст скрыт [показать]
     
  • 6.41, piteri, 12:39, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Методы наследуются, поля - нет.
     
     
  • 7.50, виндотролль, 14:29, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Методы наследуются, private поля - нет.

    obvious fix

     
     
  • 8.52, piteri, 14:43, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Прошу продемонстрировать наследование public полей
     
     
  • 9.88, виндотролль, 20:49, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    public class PublicPropertyInheritance static class A public Str... весь текст скрыт [показать]
     
     
  • 10.96, piteri, 22:34, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    А где пример с наследованием полей? Этот был про области видимости.
     
     
  • 11.105, виндотролль, 14:04, 17/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    http docs oracle com javase specs jls se5 0 html classes html 8 2 1 1 ... весь текст скрыт [показать]
     
  • 7.58, iZEN, 15:10, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    А нужно ли наследование Многие высказывают мысли по поводу того, что наследован... весь текст скрыт [показать]
     
     
  • 8.69, piteri, 17:03, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну я и не давал качественной оценки Только бить тех, кто наследуется от твоих к... весь текст скрыт [показать]
     
  • 7.98, Ури, 19:13, 15/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну что за мода все усложнять Написано же - private, а не uninherited - зачем же... весь текст скрыт [показать]
     
     
  • 8.100, piteri, 22:23, 15/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Так не я же усложняю private - к наследованию перпендикулярен Ладно, вот прост... весь текст скрыт [показать]
     
     
  • 9.101, Ури, 12:20, 16/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Этот код не должен компилироваться и не компилируется Ибо overridden method is... весь текст скрыт [показать]
     
     
  • 10.102, piteri, 22:30, 16/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Спасибо, Кэп. Но к final полю претензий таки нет.
     
     
  • 11.103, Ури, 12:48, 17/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А к чему тогда вообще претензии Если они относятся не к языку, а к неким своим ... весь текст скрыт [показать]
     
  • 9.104, виндотролль, 14:04, 17/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    gt оверквотинг удален Ты либо глуп, либо упорот, либо жирнющий тролль Читай д... весь текст скрыт [показать]
     
  • 6.57, iZEN, 15:04, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Искренняя и несовратимая убеждённость в том, что это плохо ... весь текст скрыт [показать]
     
  • 1.23, Baz, 09:29, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    интересно, если оно действительно будет быстрей, то мб гугл заберёт это на ведроид, тем более, что по обещаниям работает на той-же JVM...
     
     
  • 2.40, none_first, 12:34, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    у гугла не жвм, а дальвик
     
     
  • 3.68, bOOster, 16:32, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    > у гугла не жвм, а дальвик

    Не далеко ушел )

     
     
  • 4.71, piteri, 17:03, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    >> у гугла не жвм, а дальвик
    > Не далеко ушел )

    Далеко.

     
     
  • 5.87, Аноним, 20:17, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Не Те же яйца, вид сбоку ... весь текст скрыт [показать]
     
     
  • 6.99, el torito, 21:24, 15/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Ололо. JVM - стековая, в то время как Dalvik - регистровая. (рукалицо)
     
     
  • 7.106, bOOster, 07:06, 28/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ой, дети рукалицо , C компилятор тоже может создавать бинарный код как для ... весь текст скрыт [показать]
     
  • 3.73, kurokaze, 18:33, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    В KitKat альтернатива появилась. Пока экспериментальная
     
  • 1.25, Аноним, 10:47, 14/11/2013 [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    IDE на скриншоте одна из самых отвратительных, что я видел Такое чувство, что у... весь текст скрыт [показать]
     
     
  • 2.29, Аноним, 11:18, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +3 +/
    Ты еще IDE Visual C не видел ... весь текст скрыт [показать] [показать ветку]
     
  • 2.32, Аноним, 11:34, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Опачки! уже и на Эклипс гонят =о
     
     
  • 3.39, Анончик, 12:30, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –3 +/
    После php-блокнотика всё кажется конфеткой?
     
  • 2.44, Aceler, 12:45, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Да, на мак её собирают левой задней пяткой, но кто в здравом уме кодит на мак?
     
     
  • 3.48, arisu, 14:11, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    да вот как раз всякие грувисты, скакальщики и прочая 8230 ... весь текст скрыт [показать]
     
  • 3.74, kurokaze, 18:34, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Пофиксил, не благодари ... весь текст скрыт [показать]
     
     
  • 4.81, Aceler, 19:27, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На скриншоте мак И О К О ... весь текст скрыт [показать]
     
  • 3.82, йцук, 19:45, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    А есть какие-то ограничения Или может программы под МасОS X нужно писать не под... весь текст скрыт [показать]
     
     
  • 4.84, arisu, 19:56, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    программы под макость просто не нужно писать.
     
  • 2.56, iZEN, 15:03, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –2 +/
    На скриншоте типичная Eclipse В ней, кстати, и шрифт хорошо настраивается в од... весь текст скрыт [показать] [показать ветку]
     
     
     
     
    Часть нити удалена модератором

  • 5.83, йцук, 19:48, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Какой он админ Ему бы школу закончить ... весь текст скрыт [показать]
     
     
  • 6.85, arisu, 20:00, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    о, ещё один считает, что Чёрная Админская Магия ВНИЗАПНА отучит эклипс тормозит... весь текст скрыт [показать]
     
  • 5.79, arisu, 18:56, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    видел, но весьма давно был в молодости грешок с java me ... весь текст скрыт [показать]
     
  • 3.75, kurokaze, 18:36, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Чего поймут то У меня Эклипс почти как остальные KDE-шные программы выглядит ... весь текст скрыт [показать]
     
  • 1.26, anonymouse, 11:02, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    У каждого производителя свой велосипед.
     
  • 1.28, Аноним, 11:14, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Java штопают-штопают, еще это будут штопать. библиотек наверно кот наплакал.
     
     
  • 2.30, Аноним, 11:20, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Библиотеки годятся от Java. Зачем переписывать то, что работает?
     
  • 1.31, piteri, 11:33, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • +/
    Хм, а сахар то на порядок лучше и грамотнее чем в шарпе.
     
  • 1.34, анон, 11:41, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • +/
    > Использование для присвоения первоначальных значений (инициализации переменных) оператора ":=";

    а смысл?

     
     
  • 2.35, Аноним, 11:47, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    В Scala декларация переменной как в паскале через двоеточие и типом справа, а ту... весь текст скрыт [показать] [показать ветку]
     
  • 1.42, Aceler, 12:43, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    > html html = html {

    Отличная читаемость!

     
     
  • 2.65, Аноним, 16:09, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    а так:
    html page_1=html{

    ?

     
  • 1.45, Чудик, 12:58, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • –3 +/
    Накуа все это? О_о В Java фатальный недостаток?
     
     
  • 2.55, linux must __RIP__, 15:01, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –2 +/
    потому что Java контролирует не redhat :-)
     
     
  • 3.59, iZEN, 15:13, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Почему И она в том числе 07 03 2013 23 18 Компания Red Hat возглавила разрабо... весь текст скрыт [показать]
     
  • 1.47, arisu, 14:08, 14/11/2013 [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    рассуждения жабоидов об объектном программировании несколькими ветками выше неим... весь текст скрыт [показать]
     
  • 1.66, bOOster, 16:27, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    -"Целью создания Ceylon было избавление от устаревших концепций и подходов, которые мешают дальнейшей эволюции языка Java и достижению более высокого уровня эффективности."
    ДА УЖ!! До эффективности явы этим "поделкам из песочницы" еще ползти и ползти...
    -"Кроме реализации лучших возможностей Java, в Ceylon заимствованы некоторые дополнительные конструкции из языков Smalltalk, Python и ML."
    И от стройных абстракций явы выползает покореженный мутант. 10 рук 10 ног пришитых, только голова как и было по 2 ноги и руки обслуживает. Зачем остальные? - А остальные этож Smalltalk Python и ML :)
     
     
  • 2.70, arisu, 17:03, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    > стройных абстракций явы

    спасибо, посмеялся.

     
     
  • 3.89, виндотролль, 20:59, 14/11/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Вероятно, имелась ввиду простая и понятная парадигма И это правда Многие особе... весь текст скрыт [показать]
     
  • 2.77, kurokaze, 18:40, 14/11/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Ты не обижайся, но в тебе юношеский максимализм говорит

     
     
  • 3.94, bOOster, 21:34, 14/11/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Рекомендую классиков вспоминать иногда
    -"Все гениальное - просто"
     
  • 1.92, Аноним, 21:17, 14/11/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Цейлон, дарт... Шапки с гулом сговорились?
     
  • 1.97, Ури, 12:04, 15/11/2013 [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    Джависты такие джависты А давайте возьмем что-то хорошее из других языков, н... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor