LINUX.ORG.RU

Red Hat работает над новым java-подобным языком программирования ceylon

 , , ,


0

1

Вряд ли стоит в тексте новости перечислять все отличия языка от явы и общие черты с C#  — так что лучше самим прочитать слайды. Общее же направление языка:

1. Учесть те ошибки, которые совершены при проектировании явы. Ошибки, приведшие, в частности, к тому, что на яве трудно кратко и типобезопасно описать GUI и многие другие структурированные вещи — в результате чего приходится «выходить» из явы и использовать XML.

Вот что пишет об этом сам автор:

But I guess I should mention that the number one technical problem that we simply can't solve to our satisfaction in Java - or in any other existing JVM language - is the problem of defining user interfaces and structured data using a typesafe, hierarchical syntax. Without a solution to this problem, Java remains joined at the hip to XML.

2. Неудобства от использования устаревшего JDK (от себя добавлю — ява до дженериков и после — это 2 разных языка)

Сейчас имеется спецификация языка, ANTLR-грамматика, и неполный type checker, работы по генерации байт-кода только начались, но автор надеется использовать значительную долю кода из javac (как, впрочем, и код из Open JDK, JBoss, and Eclipse). Язык, похоже, будет JVM-based.

Слайды:

http://www.qconbeijing.com/download/G...

http://www.qconbeijing.com/download/G...

Обсуждение ceylon vs. scala:

http://stackoverflow.com/questions/56...

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

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

нахера так жить?

А я в отмеченной конторе не живу.

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

> embedded java?
Я не веб программист, что ты меня мучаешь? Html еще знаю, более или менее, а яво нет. Не знаю, заняться изучением что ли? Может пригодится.

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

> Использование для присвоения значений оператора ":=";

Прямо как в Oracle PL/SQL. :)

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

> Как говорил Одерский - если вы разрабатываете серьезный синтаксис языка программирования - можете забыть про парсер генераторы.

Одерский как бы не в теме, малость.

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

>> Как говорил Одерский - если вы разрабатываете серьезный синтаксис языка программирования - можете забыть про парсер генераторы.

Одерский как бы не в теме, малость.

Один из авторов компилятора Явы и автор Скалы - не в теме? А кто в теме?

tailgunner ★★★★★ ()

Успехов им в их начинаниях. Жаль, что используют JVM, а не компиляцию в native code.

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

>Одерский как бы не в теме, малость.

И что много компиляторов промышленного качества которым хватает генератора?

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

> Почему название - Цейлон, это связано с индусами?

:))
Кто придумал жабоуродца, тот придумал и це-слон.

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

> И что много компиляторов промышленного качества которым хватает генератора?

Предостаточно. Например, любой Паскалеподобный синтаксис можно хоть на yacc-е сделать.

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

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

> Один из авторов компилятора Явы и автор Скалы - не в теме?

Ну, это только подтверждает, что он не в теме. Ты исходники javac видел? Подобный кошмар мог только очень запутавшийся в своей жизни человек накалякать.

А кто в теме?

Ну, хотя бы и Вирт, например. Айра Бакстер тоже в теме.

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

>>> Как говорил Одерский - если вы разрабатываете серьезный синтаксис языка программирования - можете забыть про парсер генераторы.

Одерский как бы не в теме, малость.

Один из авторов компилятора Явы и автор Скалы - не в теме? А кто в теме?

Анонимусы LoR'а лучше разбираются в написании компиляторов (так же как футбольные болельщики в игре).

P.S. Я другой анонимус...

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

> А уж с появлением алгоритма packrat и вовсе глупо рукописные парсеры изобретать.

Клево, давайте теперь будет синтаксис делать не удобным для написания и понимания человеком, а подходящим под алгоритм парсера.

Слава Роботам.

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

>> А кто в теме?

Ну, хотя бы и Вирт, например.

Вирт известен в основном игрушечным^Wучебным Паскалем и его наследниками. Кроме того, когда он сделал последний язык?

Айра Бакстер тоже в теме.

Не знаю, как его в реальности зовут, но вот нагуглилось:

«Айра Бакстер, архитектор компании Семантик Дизайн, рассказала, что их компилятор си++, как и многих других языков, реализован с помощью GLR генератора, написанного ими же»

Написать генератор парсеров, а потом сгенерить им парсер - это Ъ %) Но это только подтверждает правоту Одерского.

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

> Написать генератор парсеров, а потом сгенерить им парсер - это Ъ

GLR, вообще-то, очень много разных генераторов умеют. Elkhound, например. Посмотри на Elsa - хороший пример того, что даже такой страх и ужас как C++ можно парсить красиво, без рукописной фигни.

anonymous ()

Чета я так и не вкурил, чем же им java так не в тему?
Затевать такой шабаш просто так... как-то не очень... Не внятно все это.

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

> Клево, давайте теперь будет синтаксис делать не удобным для написания и понимания человеком, а подходящим под алгоритм парсера.

Больной? Не лечишься? Что уж проще читать, чем PEG? А PEG подходит для описания грамматики абсолютно любого класса, включая и неклассифицируемые, такие как C++.

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

> Анонимусы LoR'а лучше разбираются в написании компиляторов (так же как футбольные болельщики в игре).

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

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

>> Написать генератор парсеров, а потом сгенерить им парсер - это Ъ

GLR, вообще-то, очень много разных генераторов умеют.

Пойнт в том, что они написали генератор под задачу.

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

>Например, любой Паскалеподобный синтаксис можно хоть на yacc-е сделать.

Между принципиальной возможностью описать синтаксис на якке и эффективным компилятором - есть огромная раница.

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

> Между принципиальной возможностью описать синтаксис на якке и эффективным компилятором - есть огромная раница.

Существующие компиляторы, описанные с помощью генераторов, вполне эффективны. Все паскалеподобные языки - это LL(1), а быстрее чем LL(1) ничего нет и быть не может.

Тем более что от парсера особой эффективности не требуется, в любом современном компиляторе bottleneck совершенно в ином месте находится.

anonymous ()

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

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

> Пойнт в том, что они написали генератор под задачу.

Але, ты откуда упал? Они с этим самым генератором еще пару десятков других языков парсят, от Фортрана до Жабы с Питоном.

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

>> Пойнт в том, что они написали генератор под задачу.

Але, ты откуда упал?

Что именно во фразе «они специально написали генератор» тебе непонятно? Спрашивай, не стесняйся.

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

> Что именно во фразе «они специально написали генератор» тебе непонятно? Спрашивай, не стесняйся.

В очередной раз убеждаюсь в твоей абсолютной невменяемости. Они написали всего лишь банальный генератор GLR-парсеров. Не специально под С++. Не «под задачу». Таких генераторов полно. И парсеры, созданные этим генератором, вполне эффективны и подходят для промышленного применения. Так же, как и созданные любым другим GLR-генератором. Прими таблеточку, может поумнеешь.

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

>Существующие компиляторы, описанные с помощью генераторов, вполне эффективны.

Ты лучше скажи почему эффективныё компиляторы - не написаны с помощью якков.

Всякие парсеры/компиляторы/интерпретаторы с помощью генераторов и я писал - и они даже работали. Опыт который я получил сказал мне что если задача будет большая - лучше с этой войной не связываться.

Все паскалеподобные языки - это LL(1)


Осталось все языки сделать паскелподобными и телемаркет.

Тем более что от парсера особой эффективности не требуется, в любом современном компиляторе bottleneck совершенно в ином месте находится.


Точно - в количестве костылей где ты руками начинаешь править состояние парсера в semantic actions, и вставлять кучу других костылей + плюс возможные дополнительныё неудобства.

Непротиворечиво описать грамматику для генерации парсера - это еще не компилятор.

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

> Ты лучше скажи почему эффективныё компиляторы - не написаны с помощью якков.

Эффективные компиляторы Паскаля и ему подобных написаны с помощью якков.

Некоторые (не все) эффективные компиляторы C/C++ написаны вручную, потому что их разработчикам было наплевать.

Всякие парсеры/компиляторы/интерпретаторы с помощью генераторов и я писал - и они даже работали. Опыт который я получил сказал мне что если задача будет большая - лучше с этой войной не связываться.

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

Точно - в количестве костылей где ты руками начинаешь править состояние парсера в semantic actions, и вставлять кучу других костылей + плюс возможные дополнительныё неудобства.

Ну об этом я и говорю - так программируют идиоты. Нормальные люди грязными хаками не пользуются, в этом нет необходимости. Даже для уродливого C++ все можно сделать чисто, что доказывается опытом той же Elsa.

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

> Они написали всего лишь банальный генератор GLR-парсеров

Они его _написали_. А написали они его, вероятно, потому, что им нужен был генератор парсеров для кучи языков. Для одного языка они бы написали recursive descent parser, и всё.

Прими таблеточку, может поумнеешь.

Не вали с больной головы на здоровую, а лечись.

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

> Они его _написали_. А написали они его, вероятно, потому, что им нужен был генератор парсеров для кучи языков. Для одного языка они бы написали recursive descent parser, и всё.

Не, ну ты придурок...

Ты вообще осознаешь, о чем идет разговор? О том, что эффективно парсить можно, якобы, только вручную. Тебя ткнули рыльцем в пример обратного. Что ж ты вякать-то продолжаешь, а?

Для одного языка все равно грамматику описать формально намного проще, чем писать рекурсивный парсер. Было бы у тебя в голове хоть немного мозга, ты бы хотя бы это понимал.

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

И кстати о Java - тормозной и ущербный javac от дурачка Одерского всегда сливал по скорости работы IBM-овскому Jikes, который написан с помощью генератора, а не вручную.

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

> Не, ну ты придурок...

Тебя ткнули рыльцем в пример обратного. Что ж ты вякать-то продолжаешь, а?

Было бы у тебя в голове хоть немного мозга

Утипути. Ты что, обиделся? Тонкая анонимная натура %)

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

Чтоб чмошник tailgunner, да признал слив - такого не бывало. Так что от тебя, ничтожества, никто этого и не ждет, успокойся.

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

>Некоторые (не все) эффективные компиляторы C/C++ написаны вручную, потому что их разработчикам было наплевать.

Или потому что генераторы не вышли на уровень достаточный для написания серьезных проектов в качестве «языков высокого уровня для компиляторов». Для кучи менее серьезных применений - конечно подходят.

Надо было, прежде чем к делу приступать, каких либо книжек умных почитать малость.


И главное все языки делать LL(1). Можно узнато - что именно призваны облегчить лексяки если без драгонбука все равно никуда?

Ну об этом я и говорю - так программируют идиоты.


Я смотрю кругом одни идиоты. Чем промышленее компилятор - тем больше идиотов его пишут.

Зато хеловордлды и паскали - пишут одни гении.

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

> Осталось все языки сделать паскелподобными и телемаркет.

Да, совсем забыл - Java вообще-то тоже чистенький LL(1).

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

> Чтоб чмошник tailgunner, да признал слив - такого не бывало. Так что от тебя, ничтожества, никто этого и не ждет, успокойся.

Таблеточку, таблеточку прими. Лопнешь ведь, меня совесть мучать будет :D

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

> Или потому что генераторы не вышли на уровень достаточный для написания серьезных проектов в качестве «языков высокого уровня для компиляторов».

Лет 30 как вышли. Просто идиоты не в курсе.

И главное все языки делать LL(1).

Вообще-то, когда вручную пишут эффективный рекурсивный парсер, делают именно это. Тупицы. Вместо того, чтобы просто грамматику переписать. Ну а для тупых языков вроде Паскаля или Java и переписывать ничего не надо, оно от рождения LL(1).

Я смотрю кругом одни идиоты. Чем промышленее компилятор - тем больше идиотов его пишут.

Идиоты - это объективная реальность любой промышленной разработки.

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

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

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

>О том, что эффективно парсить можно, якобы, только вручную.

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

Тебя ткнули рыльцем в пример обратного.


Как раз это не пример обратного. Это как раз пример того что пришлось под собственные нужды написать свой генератор потому что подходящих не было. А то что «все тут же не кинулулись его пользовать» - показывает что кроме них он не особо кому помогает.

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


Описать грамматику - это еще не компилятор. Для ANTLRа вон куча грамматик в библиотеке. Что-то я не вижу как расвели сотни компиляторов на этой почве. Халява же.


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

> Дурашка, ты ведь только глубже в дерьмо зарываешься.

Родной, это ты набрал в рот говна и стал плеваться. И продолжаешь, что самое странное :)

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

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

Ты лучше скажи, какой из десятков ныне популярных генераторв для этого не подходит.

Это как раз пример того что пришлось под собственные нужды написать свой генератор потому что подходящих не было.

Они это писали тогда, когда GLR еще только набирал популярность, когда работы Томиты еще свежими были. А сейчас только ленивый этого не умеет. Даже bison давно уже glr делать научился.

Описать грамматику - это еще не компилятор.

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

Для ANTLRа вон куча грамматик в библиотеке.

Качественных там практически нет. Тем более, там только грамматики, без генерации parse tree.

Что-то я не вижу как расвели сотни компиляторов на этой почве. Халява же.

А с чего бы вдруг им появиться?

anonymous ()

круто, анонимус опускает пятизвёздочных дурачков, которые, видать, никогда не видели хотя б yacc/lex.

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

>всегда сливал по скорости работы IBM-овскому Jikes, который написан с помощью генератора, а не вручную.

Конечно. И что же это было? Lex/Yacc? нет. Flex/Bison? снова нет. Не уж-то JavaCC? Или ANTLR? Ах опять нет. По традиции написали сначала Jikes Parser Generator, а потом на нем же Jikes.

Интересная тенденция?




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

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

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

> Конечно. И что же это было? Lex/Yacc? нет. Flex/Bison? снова нет. Не уж-то JavaCC? Или ANTLR? Ах опять нет. По традиции написали сначала Jikes Parser Generator, а потом на нем же Jikes.

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

Хотя, в данном конкретном случае мотивация к написанию собственного генератора очевидна и в комментариях не нуждается. Ибо IBM. Ибо NIH.

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

> Тогда почему симантеку и бимарам пришлось свой велосипед изобретать?

Во первых, нельзя недооценивать силу NIH-синдрома. Во вторых, генератор парсеров это всегда настолько тупая и примитивная херовина, что это на «изобретение велосипеда» никак не тянет.

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