LINUX.ORG.RU

Вышел Ceylon 1.1

 , ,


0

2

После десяти месяцев разработки вышла очередная версия Ceylon — нового статически типизированного языка для платформ JVM и JavaScript. Одновременно с обновлением языка вышел новый релиз Ceylon IDE — плагина для Eclipse для разработки на языке Ceylon.

Основные изменения:

  • улучшения производительности, ускорена компиляциия в IDE;
  • улучшение совместимости с перегрузкой методов и дженериками Java (в самом Ceylon перегрузка не поддерживается — прим. ред.);
  • поддержка развёртывания модулей Ceylon в контейнерах OSGi;
  • улучшения Ceylon SDK, включая новые платформенные модули ;ceylon.promise, ceylon.locale и ceylon.logging, а также улучшения модулей ceylon.language, ceylon.collection и ceylon.test;
  • улучшения в IDE, включая новый форматировщик кода ceylon.formatter и интеграцию с плагинами утилиты командной строки, в том числе новыми плагинами ceylon format и ceylon build;
  • интеграция с vert.x.

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

anonymous

Проверено: Shaman007 ()

Чем отличается от Scala?

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

Чем отличается от Scala?

Он, по сравнению с Java, _не_ выглядит как C++ по сравнению с C.

anonymous ()

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

vitalikp ()

в самом Ceylon перегрузка не поддерживается

наверное, взамен есть какая-то охренительная фича. можно глянуть

MyTrooName ★★★★★ ()

It runs on both Java and JavaScript virtual machines, bridging the gap between client and server.

Ну разве это не круто? Неужели только меня восхищает когда некая софтина может быть такой гибкой и локально-универсальной? Где любители красоты программных платформ?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

В чем красота то? Почему код на клиенте и сервере должен иметь какое-то сходство? Кроме того что работадателю выгодно нанимать одного человека на все должности.

loz ★★★★★ ()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

В чем красота то? Почему код на клиенте и сервере должен иметь какое-то сходство?

Вот меня просто нереально радует когда я сопрягаю микроконтроллер и комп - и при этом много кода общего, общие классы. Это так же приятно, как писать например на Qt - когда один код на любой платформе, будь то сервере, или там терминале с GUI + на телефоне. Это дело вкуса, и это в моем вкусе.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Сейчас только ленивый не работает в браузере по-моему. Java в том числе работает, кстати.

Legioner ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Что еще за терминал с GUI или телефон с Qt?

loz ★★★★★ ()

print(«Hello, ``name``!»);

мда, один «язык» корявее другого

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

Да во всем.

1. Устаревшее и невнятное название функции записи в поток вывода: «print». То есть проектированием стандартной либы никто не занимался. Куда нагляднее бы выглядело что-то вроде console.write или там output.write. Наверняка можно и лучше придумать. Какой нафиг принт, куда, почему ... пипец, 21й век на дворе называется.

2. Абсолютно ненужный вырвиглазный велосипед своего синтакиса из верхних кавычек. Даже если без строковой интерПРЕТАЦИИ автор никак не мог обойтись, ну так хоть синтаксис бы взял какой-то привычный и вменяемый. Что за две верхние кавычки? Многие пол дня будут искать их на клавиатуре.

3. Зачем точка с запятой на конце строки? Неужели так сложно парсер сделать, чтобы обходиться без них? В том же яваскрипте справились. Нельзя чтоли лучшее брать из других языков? А зачем тогда вообще так необдуманно велосипедить?

4. Ну и про интерпретацию строк я лучше вообще просто промолчу... Хотя нет, не выдержу - я просто не вижу практического смысла функцию форматирования текста по шаблону делать частью языка. Элементарно в либу добавить функцию вроде string.format(«Hello {0}!», name) и не плодить ненужных сущностей. Есть масса более важных вещей, чем можно нагрузить парсер.

Плохо в общем. Автор недоязыка взялся за то, за что ему браться не следовало.

d9d9 ★★★ ()

Вышел Ceylon 1.1

Еще одно мертвое «ненужно»

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

Кроме того что работадателю выгодно нанимать одного человека на все должности.

Это выгодно только в мелких конторках, начиная со средних это играет наоборот, лучше нанимать человек на отдельный участок, быстрее/качественнее.

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

3. Зачем точка с запятой на конце строки? Неужели так сложно парсер сделать, чтобы обходиться без них? В том же яваскрипте справились. Нельзя чтоли лучшее брать из других языков? А зачем тогда вообще так необдуманно велосипедить?

для того же для чего и в С/С++ - сильно локализует область где остановиться в случае жутких ошибок, например случайно затер закрывающуюся скобку в конце инициализации массива на глобальном уровне.

anonymous ()

Есть реальные проекты на сабже? Им кто-нибудь вообще пользуется?

Hater ★★ ()

ускорена компиляциия
Проверено: Shaman007

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

На кого ж ты нас покинул, Луговской...

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

наверное, взамен есть какая-то охренительная фича. можно глянуть

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

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

«Автор недоязыка» - Gavin King, создатель Hibernate. Все принятые решения он аргументированно объяснил в блоге и туториале по языку. И точку с запятой, и интерполяцию строк (hint: она не только для вывода нужна).

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

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

интерПРЕТАЦИИ

string interpolation

console.write

string.format(«Hello {0}!», name)

Ты серьёзно считаешь блевотный public static new c# эталоном проектирования?

И чувак, string format - это блевотинка из прошлого века, лучше уж s"Hello, $name!"

RedPossum ★★★★★ ()

Сейчас все кому не лень пишут свои языки. И очень много языков под JVM. Так что, этим уже никого не удивишь.
ИМХО, куда важнее какие-то реальные фичи ПЛЮС хорошее коммьюнити и активный пиар.
Этим требованиям удовлетворяет только Scala и Clojure (из JVM'ных). Всякие Kotlin'ы, Цейлоны и прочее - какой в них смысл? Особых фич нет, никто про эти ЯП не знает, никому из работодателей они не нужны.

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

console.write или там output.write

Ну тогда уж stdout.write, пидорашка.

anonymous ()

Нужно больше языков для JVM!

DeadEye ★★★★★ ()

Java не нужна. JavaScript только для браузера. Итог - гнилые технологии развиваются и отвлекают ресурсы от реальных нужд.

BlackMoon ()
Ответ на: комментарий от d9d9

Зачем точка с запятой на конце строки? Неужели так сложно парсер сделать, чтобы обходиться без них? В том же яваскрипте справились.

Js - откровенно дурачкий пример. Да, там почти всегда можно пропускать точку с запятой, но иногда таки нельзя. В скале то же самое: можно заставить компилятор ошибиться при выводе точки с запятой. Цейлон во главу угла ставит консистентности и простоту. Лучше пусть меня заставляют всегда ставить точку с запятой в конце выражения, нежели иногда иметь дело с не очевидным поведением.

Разумно было бы привести в пример питон и руби, где точка с запятой действительно опциональны, вот разделитель выражений там все равно есть - новая строка - и в результате написать многострочное выражение нельзя(в руби таки можно в конце строки слеш поставить, но это действительно убогое решение).

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

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

В Python можно написать многострочное выражение - в скобках (ну и слеш, да).

tailgunner ★★★★★ ()

Язык-то на самом деле хороший: нуллсейф, прикольная система типов, отсутствие тыщщи фич как в скале, нативные модули, своя стандартная библиотека и возможность работать как на JVM, так и на v8.

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

Kotlin по сравнению со Scala намного младше, поэтому он ещё не дорос до какого-то признания в индустрии. Scala тоже не сразу признали и начали активно использовать.

Kotlin привносит значительно меньше новых сущностей и является скорее надстройкой над языком Java, а не чем-то кардинально новым. За счёт этого его проще использовать в Android, не нужно таскать за собой толстый рантайм Scala.

Те же JetBrains активно используют и Kotlin и Scala для своих нужд.

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

Ты серьёзно считаешь public static new c# эталоном проектирования

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

лучше уж s"Hello, $name!"

string.format намного читабельнее в коде. Понятно что делается, над чем делается и в пределах стандартного синтакиса. А лучше или нет сам шаблонизатор форматирования - логичнее оставить выбор пользователю, а не прибивать наглухо к языку.

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

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

Ты еще на скобки поругайся в математике. Мол без них иногда нельзя, значит надо ставить везде. В этом весь смысл - если без них нельзя, тогда и ставишь иначе - пропускаешь. Точно так же и с разделителем. А не тупо везде лепить.

d9d9 ★★★ ()

А на этом чуде техники можно веб гуй писать, раз оно в js компилируется? Т.е. как там дела обстоят с использованием dom-а и взаимодействием с нативными js библиотеками?

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

активно используют

инфа соточка? Или как обычно фантазер диванный?

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

Когда-нибудь - да. Но в любом случае таргет платформой является не браузер, а серверный v8.

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

На дефконф представитель JetBrains рассказывал об этом на секции посвященной Kotlin.

Нет смысла ему не верить.

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

Хм, тогда встает крайне большой вопрос о нужности сего поделия. На сервере то и с голой явой вполне нормально живется, особенно после выхода восьмерки. А единственной фишкой цейлона мне кажется возможность унифицировать клиентский и серверный код.

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

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

Ага, ICollection.Count и IEnumerable.Count(). Шарп не противный язык, но не более.

string.format намного читабельнее в коде.

Нет. Это даже не вкусовщина, просто нет.

RedPossum ★★★★★ ()

нового языка

боже...

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

console.write или там output.write

Ну тогда уж stdout.write, пидорашка.

Это всё фигня. Потому что в том, что вы предлагаете write есть метод класса stdout или console или чего-то там ещё. Но вывод возможен не только в stdout, но и в stderr, а ещё в файл и ещё абы куда. Тогда либо придётся делать все классы устройств дочерними от базового, что часто не удобно, либо реализовывать несколько раз один и тот же функционал, либо использовать множественное наследование. Вместо этого нужно, чтобы write была функцией стандартной библиотеки и принимала объект и сообщение.

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

И этим представителем был Андрей Берслав?

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

Ну тогда уж stdout.write, пидорашка.

Говнокодер детектед. За прямой вывод в stdout, а не в конфигурируемый логгер вообще кастрировать надо.

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

Говнокодер детектед. За прямой вывод в stdout, а не в конфигурируемый логгер вообще кастрировать надо.

Разработчики coreutils, да и вообще системно-прикладного софта, рвут на себе волосы перед величием обезьянок от программирования.

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

Ага, и чтобы логгер был обязательно на джаве.

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

Тут основная идея в том чтобы получить очередной новый язык для промышленной разработки, чтобы простой как ява, но лучше. Отсюда и набор фич: Модули. Jigsaw непонятно когда будет и будет ли, а об OSGi никто и не знает. Дженерики. Declaration-site variance и понятные человеку ошибки(недопустимо чтобы компилятор мог вывести тип, который не может описать программист). Ваще типы. Прикольные объединения и пересечения типов - получение объекта фс возвращает что-то типа File|Dir|Nil, требуя от программера явно распаковывать объект к конкретному типу. Есть ограниченный вывод типов, отсутствуют примитивы, null более не является инстансом любого типа, типобезопасная метамодель. Ide. Разработчики разумно полагают что среда разработки это не просто вспомогательный инструмент, без которого можно обойтись, а важнейшая для для разработки вещь.

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