LINUX.ORG.RU

Первый официальный релиз языка Ceylon

 , ,


0

4

Представлен 1-й официальный релиз языка Ceylon M1 «Newton». Ceylon - это JVM-язык, предназначенный для написания бизнес-приложений и разрабатываемый компанией RedHat. Релиз включает в себя компилятор, документацию к компилятору, языковой модуль и рантайм.

Возможности языка:

  • примитивные типы JVM являются простыми классами в Ceylon;
  • вывод типов и вывод типов аргументов базируемый на анализе основных типов;
  • упрощено определение классов: удалены геттеры, сеттеры и конструкторы;
  • опциональные параметры со значениями по умолчанию;
  • именованные аргументы и «object builder» синтаксис;
  • типы пересечения (intersection types), типы объединения (union types) и фундаментальные типы (bottom types);
  • статическая проверка null-значений и пустых последовательностей;
  • ковариантность и контравариантность в декларациях вместо wildcard типов;
  • более элегантный синтаксис для ограничений типов (type constraints);
  • top-level функции и декларация значений вместо статических членов вложенных функций;
  • иммутабельность по умолчанию.

Возможности, которые будут реализованы в следующих релизах:

  • функции высшего порядка;
  • comprehensions;
  • алгебраические типы данных, перечислимые типы, switch/case;
  • усовершенствование членов классов (member class refinement);
  • конкретизируемые генерики (reified generics);
  • определяемые пользователем аннотации и типобезопасная метамодель.

Скачать Ceylon

Исходники на github

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: encyrtid (всего исправлений: 2)

Ответ на: комментарий от Ubuntu1204LTS

Вот что они пишут:

We used the name in part as a pun to Java (coffee, island). We were aware of the name history if only because a few people at JBoss come from Sri Lanka :)

encyrtid ★★★★★
() автор топика

Приятно наблюдать, что у индустрии в башке хоть что-то начинает прощелкивать. Но мало пока, мало. Конечно, редхатовцам удалось сделать что-то менее крышесносительное, чем Скала, и это даже хорошо. Но ведь устарело еще до выхода, так что в мейнстрим не выйдет.

Macil ★★★★★
()

Facepalm

Еще один JVM язык?

umren ★★★★★
()
Ответ на: комментарий от Macil

Приятно наблюдать, что у индустрии в башке хоть что-то начинает прощелкивать

Лучше бы этого конкретного щелчка не было.

редхатовцам удалось сделать что-то менее крышесносительное, чем Скала

Это Скала в понимании школьника-троечника.

tailgunner ★★★★★
()

упрощено определение классов: удалены геттеры, сеттеры и конструкторы;

Неужто Смолток-вей.

yoghurt ★★★★★
()

Следующий релиз будет интересный.

yoghurt ★★★★★
()

Facepalm 2.0

Я понять не могу - им мало языков? вроде сообщество кое как приняло Scala, Clojure, JRuby, Groovy. Зачем еще плодить огород? :) иногда жалко java программистов.. по одной простой причине, что под JVM куча унылогавнистых языков сделали на которые есть шанс нарваться при доработке чужих проектов

umren ★★★★★
()
Ответ на: Facepalm 2.0 от umren

Я понять не могу - им мало языков? вроде сообщество кое как приняло Scala, Clojure, JRuby, Groovy. Зачем еще плодить огород? :) иногда жалко java программистов.. по одной простой причине, что под JVM куча унылогавнистых языков сделали на которые есть шанс нарваться при доработке чужих проектов

Проблема java-программистов совсем не в большом количестве языков...

encyrtid ★★★★★
() автор топика
Ответ на: комментарий от encyrtid

Одна из них. Ну кроме проблемы что Java УГ.

Ты - ява программист 1. Я - ява программист 2.

Ява программист 1 решил забубенить супер крутой проект на Ceylon. Через год его уволили, наняли Ява программиста 2 - который не знает Ceylon, да и вообще Ceylon был в жуткой бете когда Ява программист 1 писал проект, работает все через жопу, нужно еще пол года что бы Ява программисту 2 переписать проект на мейнстрим языке для JVM.

Идилия

umren ★★★★★
()

Красношапк опять выдал говна на-гора. Где это видано, чтобы в языке не было конструкторов? А наследуют они тогда от кого?

anonymous
()
Ответ на: комментарий от umren

А сколько таких случаев было в реальности?

encyrtid ★★★★★
() автор топика

предназначенный для написания бизнес-приложений

А что отличает язык общего назначения от языка для бизнес-приложений?

loz ★★★★★
()
Ответ на: комментарий от loz

А что отличает язык общего назначения от языка для бизнес-приложений?

я думаю: в бизнес-приложениях всё должно глючить и работать через Ж^раз :-) ...ну и как никак рабочие места для сус-админов и тех-поддерки не должны пропадать :-)

anonymous
()
Ответ на: комментарий от umren

Ява программист 1 решил забубенить супер крутой проект на Ceylon

и тут же получает по пальцам линейкой от дев-лида

TERRANZ ★★★★
()
Ответ на: комментарий от tailgunner

Это Скала в понимании школьника-троечника.

Ну почему же? Пробежал под диагонали раздел их спеки про типы. Планов у них громадье. Правда вот чего бы мы не строили, все-равно КПС^W Скала получается. И семантика Цейлона будет сравнима по сложности с семантикой Скалы.

Но есть одно «но», которое и делает Цейлон привлекательным. Его очень просто использовать в режиме ява-на-стероидах, в отличие от той же Скалы. Особенно на фоне полного разброда и шатания в Яве JVM7. Поэтому, он однозначно будет тепло воспринят индустрией.

Macil ★★★★★
()
Ответ на: комментарий от anonymous

Где это видано, чтобы в языке не было конструкторов?

Их не убрали а упростили, например

class Polar(Float angle, Float radius) {
 
    shared Float angle = angle;
    shared Float radius = radius;

 // дальше обычное описание класса
}
loz ★★★★★
()

упрощено определение классов: удалены геттеры, сеттеры и конструкторы;

А я-то думал, как можно упростить ЯП. А давайте упростим Це путем удаления функций и указателей!

AVL2 ★★★★★
()
Ответ на: комментарий от loz

Их не убрали а упростили, например

Здорово упростили. А как быть с несколькими конструкторами с разными типами аргументов?

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

А как быть с несколькими конструкторами

Как как, да никак!

It's time for some bad news: Ceylon doesn't support method or constructor overloading (the truth is that overloading is the source of various problems in Java, especially when generics come into play). However we can emulate most non-evil uses of constructor or method overloading using:

loz ★★★★★
()
Ответ на: комментарий от loz

всё, мне расхотелось даже доки по нему читать

TERRANZ ★★★★
()
Ответ на: комментарий от AVL2

А как быть с несколькими конструкторами с разными типами аргументов?

А нахрена это в Цейлоне? В Яве или С++ это куда еще не шло.

А по уму - приводить аргументы какой-то внешней по отношению к классу сущностью.

Macil ★★★★★
()

Каких только языков уже нет!

hibou ★★★★★
()

Ceylon

Первый язык, программам на котором память выделяется в слонах.

Jayrome ★★★★★
()
Ответ на: комментарий от TERRANZ

Предлагают аргументы по-умолчанию, неопределенное число аргументов, и union-аргументы:

void printName(String|Named name) {
    switch (name)
    case (is String) {
        println(name);
    }
    case (is Named) {
        println(name.first + " " + name.last);
    }
}
loz ★★★★★
()

Java в честь сорта кофе, Ceylon значит в честь сорта чая( Цейлонский чай?). Может взлететь.

Ginki
()
Ответ на: комментарий от TERRANZ

городить воз сущностей для эмулирования перегрузки конструктора

Конечно, намного лучше раздуть интерфейс класса до безобразия, усложнив его семантику. Ну и поручить благодарным потомкам класса почетную обязанность с разборкой с его 10500 конструкторами. И пожелать следующим программистам приятного рефакторинга.

Macil ★★★★★
()
Ответ на: комментарий от yyk

Нет, блин, будем аццки тормозить занимаясь «ран-тайм» разруливанием «юнион-типов»...

А причем тут юнион типы? Внешней сущность может быть и самая обычная фабрика.

Macil ★★★★★
()
Ответ на: комментарий от Macil

т.е. вместо перегрузки конструкторов будет перегрузка методов фабрики?

А нах тогда вообще конструкторы - отменить как отрыжку прошлого, оставить только фабрики - вот где счастье то будет!!!

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

.. Вам просто нравится тормозить.

если бы - давно бы умер от счастья в объятиях скалы с кложурой ;) А в качестве надгробной плиты - груви.

yyk ★★★★★
()
Ответ на: комментарий от yyk

т.е. вместо перегрузки конструкторов будет перегрузка методов фабрики?

А ты, значит, разницы не ощущаешь?

Macil ★★★★★
()
Ответ на: комментарий от yyk

Вам просто нравится тормозить.

если бы - давно бы умер от счастья в объятиях скалы с кложурой ;)

Тормозить нравится вам, а не скале с кложурой.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.