LINUX.ORG.RU

Вышла версия M3 языка Ceylon и Ceylon IDE

 ,


0

5

Ceylon — новый язык программирования от Red Hat для JVM, главным разработчиком которого является Gavin King, создатель ORM Hibernate. Целью проекта является создание современного Java-подобного языка со статической типизацией, свободного от болезней роста и исторических недоразумений самого Java.

Компилятор M3 реализует почти всю спецификацию языка Ceylon. Новые возможности этой версии по сравнению с M2 включают:

  • поддержку как JVM, так и компиляции в JavaScript;
  • интерфейсы с неабстрактными членами (mixins);
  • comprehensions (фильтрация и трансформация коллекций);
  • анонимные функции;
  • каррирование функций;
  • декларация функций и объектов прямо в вызове функции при задании аргументов по имени;
  • вложенные интерфейсы;
  • операции над множествами;
  • обращение к внешнему типу из внутреннего (ключевое слово outer).

Следующие функции не вошли в M3, но планируются в окончательной версии:

  • переопределение классов-членов класса и семьи типов;
  • псевдонимы типов;
  • reified generics (сохранение информации о типах дженериков на этапе выполнения, как в .NET);
  • определённые пользователем аннотации;
  • перехватчики методов (method interceptors);
  • типобезопасная метамодель;
  • сериализация.

Одновременно с новым компилятором вышел Ceylon IDE M3 — плагин для Eclipse 3.7 Indigo или 4.2 Juno. Новая версия IDE требует Java 7. По сравнению с версией M1 в ней реализованы взаимодействие Ceylon с Java и поддержка репозитория модулей Ceylon Herd.

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



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

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

dynamic конечно, в моей задаче данные читаются из файла, нельзя знать заранее, сколько их. Причём в тех случаях, когда можно, я пользовался сечениями и сделал так, чтобы данные хранились по столбцам.

Vudod ★★★★★
()

А не проще было сразу по спекам C# писать?

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

ну и вообще с точки зрения реализации IDE лучшие лисп или форт desu.

proofit404
()
Ответ на: комментарий от vladimir-vg

Go - невразумительный высер, а вот D очень неплох. Если буду писать что-нибудь нативное, то либо D, либо Vala.

это так жабокодеров тонко назвали?

Это имеются в виду всякие грабли и сомнительные решения, которых поналепили сановцы в первых версиях языка, пока к ним не пришли люди, действительно что-то понимающие в архитектуре и дизайне API (Джошуа Блох, например).

Это в первую очередь рудименты типа Date и Calendar, или там Vector и Hashtable; укуренная семантика Cloneable и Serializable; старые API, сделанные во времена до появления дженериков и аннотаций и тянущие груз обратной совместимости; сами дженерики, полные граблей...

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

Go - невразумительный высер, а вот D очень неплох. Если буду писать что-нибудь нативное, то либо D, либо Vala.

Фичи Go довольно ортогональны, сразу видно, что старались ничего лишнего не оставлять, оставили только необходимое.

D же уже довольно усложнён.

Go - невразумительный высер,

Можно аргументы?

vladimir-vg ★★
()
Ответ на: комментарий от r

давненько в той же идее я не видел руганины на корректный код.

Да ладно, открываем почти любой исходник из стандартной библиотеки (напиример List.scala) и любуемся красными маркерами в корректном коде.

kamre ★★★
()

Pluralitas non est ponenda sine necessitate (с)

Зачем свойства, которые прекрасно решаются библиотеками тащить в язык, усложняя его???

Простой язык, с одной парадигмой и гибкими модульными библиотеками - вот, что нужно для реального коммерческого программирования.

Коллекции в Джаве вполне устоялись и Coin Project (TM) только добавил синтаксического сахарку, чтобы не делать лишние конструкции в дженериках.

Впрочем теоретики-кульхацкеры из урюпинских радиотехнических колледжей, не обременённые реальным ремеслом программирования будут долго фапать друг перед другом на уродливые конструкции типа

«value peopleByName = HashMap { for (p in people) p.name->p };» (c)

Bioreactor ★★★★★
()
Ответ на: комментарий от vladimir-vg

Просто я считаю что Go очень красивый и продуманный язык.

Как раз случай, когда красота - в глазах смотрящего.

Расскажите о моих заблуждениях.

Система типов Go просто смешна для языка 2-го десятилетия 21-го века.

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

Ну и что не так? Аргументы пожалуйста.

package main
import «container/list»
func main() {
a := 1
l := list.New()
l.PushFront(a)
a = l.Remove(l.Front())
}

cannot use l.Remove(l.Front()) (type interface {}) as type int in assignment: need type assertion

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

(type interface {}) as type int in assignment: need type assertion

Ну так и сделай type assertion, что уж там.

Мне нравится эта простота, без темплейтов, дженериков и прочего.

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

Ну так и сделай type assertion, что уж там.

Угу. В 21 веке.

Мне нравится эта простота, без темплейтов, дженериков и прочего.

Тебе надо машина времени. Хотя бы лет на 15 назад.

r ★★★★★
()
Ответ на: комментарий от vladimir-vg

без темплейтов, дженериков и прочего.

Видишь, ты и сам всё понимаешь.

tailgunner ★★★★★
()

Ну-у-у не знаю, мне пока только ЯваНаСтероидах ака Groovy импонирует, хотя на котлин поглядываю.

Но в чём с цейлоновцами согласен, так в том, что явовский рантайм надо конкретно перетраяхнуть.

WatchCat ★★★★★
()

Поддержка платформы .NET как у Scala есть?

fedoseev
()
Ответ на: комментарий от VoDA

Idea имеет возможности рефакторинга и суперского автокомплита для скалы.

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

Тот код я сам не понимаю поэтому не важно. Нормальный непереусложнённый код парсится нормально. Баги есть, вчера сам репортил одну, но они редки и работе не мешают.

Legioner ★★★★★
()

А мне этот цейлонский чай не нравится. Накрутили кучу бесполезного синтаксического сахара и обозвали это новым языком программирования.

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