LINUX.ORG.RU
 
encyrtid

Первый официальный релиз языка 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

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


[#]  
Ubuntu1204LTS

Это не в честь роботов названный язык?

()
[#]  
thesis
>>-----Цитата---->>

Ceylon

<<-----Цитата----<<

Как бы и не Индия, но совсем рядом.

*** ()
[#] Ответ на: комментарий от encyrtid 26.12.2011 9:02:04  
Ubuntu1204LTS

А я думал в честь Сайлонов из Звёздного крейсера галлактика.

()
[#] Ответ на: комментарий от Ubuntu1204LTS 26.12.2011 9:05:08  
encyrtid

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

>>-----Цитата---->>

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 :)

<<-----Цитата----<<
** ()
[#] Ответ на: комментарий от ZenitharChampion 26.12.2011 9:39:11  
encyrtid

Потому что JVM язык, не?

** ()
[#] Ответ на: комментарий от encyrtid 26.12.2011 9:41:11  
ZenitharChampion

В новости о новом языке я ни одного упоминания об этом не нашёл. Тэг не считаю.

** ()
[#]  

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

**** ()
[#]  
umren

Facepalm

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

* ()
[#]  
Sosiska

шутка про географическое происхождение программистов на этом языке будет уместной?

()
[#] Ответ на: комментарий от Macil 26.12.2011 9:56:56  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

>>-----Цитата---->>

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

<<-----Цитата----<<

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

***** ()
[#]  
yoghurt
>>-----Цитата---->>

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

<<-----Цитата----<<

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

***** ()
[#]  
yoghurt

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

***** ()
[#]  
umren

Facepalm 2.0

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

* ()
[#] Ответ на: Facepalm 2.0 от umren 26.12.2011 11:54:37  
encyrtid
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от encyrtid 26.12.2011 11:58:21  
umren

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

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

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

Идилия

* ()
[#]  

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

anonymous ()
[#] Ответ на: комментарий от umren 26.12.2011 12:02:22  
encyrtid

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

** ()
[#] Ответ на: комментарий от umren 26.12.2011 12:02:22  
>>-----Цитата---->>

переписать проект на мейнстрим языке для JVM.

<<-----Цитата----<<

Зачем?

***** ()
[#]  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от loz 26.12.2011 12:07:38  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

anonymous ()
[#] Ответ на: комментарий от umren 26.12.2011 12:02:22  
TERRANZ
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от tailgunner 26.12.2011 11:50:14  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

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

**** ()
[#] Ответ на: комментарий от anonymous 26.12.2011 12:04:00  

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

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

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

 // дальше обычное описание класса
}
** ()
[#]  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

***** ()
[#] Ответ на: комментарий от loz 26.12.2011 12:07:38  
vertexua

Например С совершенно не предназначен ) Непонятно почему?

*** ()
[#] Ответ на: комментарий от loz 26.12.2011 12:18:11  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

***** ()
[#] Ответ на: комментарий от AVL2 26.12.2011 12:24:29  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

>>-----Цитата---->>

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:

<<-----Цитата----<<
** ()
[#] Ответ на: комментарий от vertexua 26.12.2011 12:23:53  

Ладно си, а чем джава не подходит?

** ()
[#] Ответ на: комментарий от loz 26.12.2011 12:26:54  
TERRANZ

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

** ()
[#] Ответ на: комментарий от AVL2 26.12.2011 12:24:29  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

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

**** ()
[#]  
hibou

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

***** ()
[#] Ответ на: комментарий от Macil 26.12.2011 12:30:25  
TERRANZ

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

** ()
[#]  
Jayrome

Ceylon

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

***** ()
[#] Ответ на: комментарий от TERRANZ 26.12.2011 12:35:31  

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

void printName(String|Named name) {
    switch (name)
    case (is String) {
        println(name);
    }
    case (is Named) {
        println(name.first + " " + name.last);
    }
}
** ()
[#]  
Ginki

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

* ()
[#] Ответ на: комментарий от TERRANZ 26.12.2011 12:35:31  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

**** ()
[#] Ответ на: комментарий от Macil 26.12.2011 12:39:53  

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

**** ()
[#] Ответ на: комментарий от Ubuntu1204LTS 26.12.2011 8:56:51  
LongLiveUbuntu

Нет, в честь листового чая.

//Ну ты понел.

* ()
[#] Ответ на: комментарий от yyk 26.12.2011 12:45:00  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

**** ()
[#] Ответ на: комментарий от yyk 26.12.2011 12:45:00  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

***** ()
[#] Ответ на: комментарий от Macil 26.12.2011 12:49:14  

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

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

**** ()
[#] Ответ на: комментарий от tailgunner 26.12.2011 12:50:27  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

**** ()
[#] Ответ на: комментарий от yyk 26.12.2011 12:52:23  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

**** ()
[#] Ответ на: комментарий от yyk 26.12.2011 12:54:21  
>>-----Цитата---->>
>>-----Цитата---->>

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

<<-----Цитата----<<

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

<<-----Цитата----<<

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

***** ()
[#] Ответ на: комментарий от LongLiveUbuntu 26.12.2011 12:48:21  
Ubuntu1204LTS

Как раз пью чай родом с этой милой страны:)

()