LINUX.ORG.RU

Eclipse Foundation создал вспомогательный язык для программистов на Java

 , , , xtend


0

2

Eclipse Foundation выпустил новый язык программрования Xtend, созданный специально для разработчиков на Java, работающий поверх JVM.

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

Главные особенности Xtend:

  • генерация понятного листинга на Java;
  • работа с использованием инструментов Eclipse IDE с полной поддержкой её функциональности;
  • Java-подобный синтаксис;
  • статическая типизация;
  • использование библиотек JDK;
  • работа только с классами (интерфейсы, аннотации и перечисления описываются так же, как в Java).

Зачем использовать Xtend, если он не реализует альтернативы для всего? Во-первых, он и не пытается. Это не самостоятельный язык, а вспомогательный. Во-вторых, он избавляет программиста от многословности Java, позволяя создавать те же языковые конструкции, но с помощью более лаконичного синтаксиса, код на Xtend более удобен для чтения и понимания:

  • код избавляется от избыточных указаний типов объектов (хотя если вам удобнее везде писать типы — это ваше право);
  • новый продуманный синтаксис акцессоров;
  • опциональность скобок для вызова методов и точек с запятой в конце строк.

Описанная «чистка» кода может быть воспринята двояко, но есть ещё третий пункт в списке достоинств — дополнительные языковые конструкции и функциональность, однажды воспользовавшись которыми вы уже не сможете жить без них в дальнейшем:

  • замыкания, которые всегда были так необходимы в Java;
  • переработанная и элегантная реализация switch, от которой не болит голова при перехвате исключений и кастинге типов;
  • поддержка шаблонов и многострочности для строк;
  • возможность добавления новых расширенных методов к уже существующим объектам без вмешательства в их структуру (поэтому язык и называется Xtend — «расширять»);
  • перезагрузка операторов;
  • множественный вызов виртуальных функций для семейств классов с помощью ключевого слова dispatch.

Для того, чтобы начать использовать Xtend прямо сейчас, нужно просто установить свежую версию IDE Eclipse и добавить Xtend SDK через менеджер дополнений (ссылка на релиз).

Документация: онлайн, PDF.

>>> Страница проекта

★★★★★

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

Если интерпрайз станет ещё на порядок неадекватен, что нам с ним в итоге делать?

quantum-troll ★★★★★
()
Ответ на: комментарий от gensym

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

_________

//wfrr

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

>Что, простите, поехало? У кого, простите, поехало?

Да у них всё ЛЕТАЕТ!!! Это просто у пользователей тормозные, старые, никчёмные нищебродские компы и руки не из того места растут.

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

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

я убиваю котёнка.

Надеюсь, одного и того же?

AlexM ★★★★★
()

сколько жеж этих язычков то уже. Помоему, такое засилье, говорит о том что с java что-то не так, а scala слишком не java.

RedPossum ★★★★★
()

перезагрузка операторов;

facepalm

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

>сколько жеж этих язычков то уже. Помоему, такое засилье, говорит о том что с java что-то не так, а scala слишком не java.

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

anonymous
()

мое мнение таково: если кто-то что-то делает и усиленно пилит - значит это кому-то очень очень нужно, просто так никто с дивана не встанет и не начнет что-то усиленно пилить

I-Love-Microsoft ★★★★★
()

YO DAWG WE HEARD YOU LIKE TO TRANSLATE SO WE PUT XTEND INTO YOUR JAVA SO YOU CAN TRANSLATE WHILE YOU TRANSLATE

shatsky ★★
()

>акцессоров
Олдскуль ныне не в почете

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

>сколько жеж этих язычков то уже.

Язычков должно быть столько же, сколько в губной гармошке — 20.

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

>мое мнение таково: если кто-то что-то делает и усиленно пилит - значит это кому-то очень очень нужно, просто так никто с дивана не встанет и не начнет что-то усиленно пилить

Если звёзды фабрикуют, значит это кому-нибудь нужно?

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

Вы один из наиболее слабоумных ЛОРовцев. Это видно давненько уже. Если ваш интеллект возвысится до интеллекта хотя бы самого слабого разработчика из ASF, тогда думаю можно начинать к вам прислушиваться.

vertexua ★★★★★
()

На скале можно писать: а) как на джаве; б) как на скале; в) как на этой вот хренотени. Вывод: хтенд не нужно.

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

>ПО на Java всегда вызывает только уныние. Особенно выделяются поделия от ASF как самые ущербные, и eclipse как наименее убогие. Но судя по хелло-ворду этого язычка, apache-быдло уже оккупировало и eclipse foundation. R.I.P.

+1000

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

> Детка, не увиливай

Хамло хвостатое.

популярно расскажи что там будет, чтобы люди незнакомые с явой вволю поржали над Оптимизирующим Компилятором

Я где-то говорил, что javac — идеал оптимизирующего компилятра?

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

>Я где-то говорил, что javac — идеал оптимизирующего компилятра?

Цытирую «так эффективнее »

я тебе привел пример мало того что неэффективности так еще и неявного побочного эффекта.

отдельный вопрос про то насколько эффективно два раза выделять память под строку (это конечно эффективнее чем 3 раза)

_________

//wfrr

anonymous
()

Согласен полностью, Java - говно.

A-234 ★★★★★
()

Красный призрак кофескрипта бродит по планете

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

чёта их всёравно дофига, убивай по 50 котёнков

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

> популярно расскажи что там будет

Ну рассказывай уже, не томи.

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

с java что-то не так

нутыг кофе хорошего больше нет.. вот и тут не идёт.

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

> Цытирую «так эффективнее »

Дык отвечай тем, кого цитируешь. А то я не пойму, что ты от меня хочешь.

неявного побочного эффекта

Какие ещё побочные эффекты ты там нашёл? Или ты про int + char + int -> int? Если да, то подучи терминологию.

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

> когда выпускается по 100500 одинаковых.

А ты поди придумай 100500 Разных языков... да еще чтоб они были хоть как-то применимы в реальности. Тут штук 5 достаточно основных и пару десятков менее популярных, а остальные опять будут повторять эти 25.

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

> Эффективнее не создавать StringConcatenation при каждой итерации, а реюзать старый.

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

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

Если звёзды фабрикуют, значит это кому-нибудь нужно?

да, а эксгибиционисты эксгибиционируют потому что им это надо и попробуй помешай

так же и с языками - делают и делают, мешает что ли? :)

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

>А то я не пойму, что ты от меня хочешь.

тыж у нас экзамен проводишь «во что скомпилится одна хреновина»

Какие ещё побочные эффекты ты там нашёл? Или ты про int + char + int -> int? Если да, то подучи терминологию.

Детка, только не надо доказывать щас что это не бага а фича. И побочные эффекты это еще и туева хуча StringBulder

_________

//wfrr

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

Уверен, точнее Наивно Веришь. А доказать? Или программирование на Java - суть религиозный культ.

_________

//wfrr

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

> Детка, только не надо доказывать щас что это не бага а фича. И побочные эффекты это еще и туева хуча StringBulder

Это может и бага. Но никак не побочный эффект.

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

> Уверен, точнее Наивно Веришь. А доказать? Или программирование на Java - суть религиозный культ.

Это ты тут первый сказал, что реюзать StringConcatenation — эффективнее. Вот и доказывай сам. А лично я знаю, как устроен young generation в GC. На основе этого и сделал вывод.

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

Видишь ли, у меня был опыт сравнения 8)

_________

//wfrr

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

Прально, я анонимус. Не веришь спроси у димеза.

_________

//wfrr

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

> А, ну это тогда вопрос терминологии.

А понтов-то сколько было - «детка», «Наивно Веришь», «религиозный культ».

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

Но я не говорю, что надо именно 100500 разных. По паре-тройке языков для разных концепций — и хватит :)

buddhist ★★★★★
()

Прям таки Groovy во плоти макросов

jreznot
()

C# на Java.
Интересно.

grim ★★☆☆
()

>возможность добавления новых расширенных методов к уже существующим объектам без вмешательства в их структуру (поэтому язык и называется Xtend — «расширять»);
руки за такое отрывать. Это уже на говнопитон похоже.

перезагрузка операторов;

нахер надо?

код избавляется от избыточных указаний типов объектов

назад в java 1.4.2?

замыкания, которые всегда были так необходимы в Java;

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

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

это вообще что еще за идиотизм?

короче, это какая-то фигня для неосиляторов нормальной джавы.
И да, достали выкрики на тему многословности джавы. Джава предлагает очень элегантные и весьма легкочитаемые конструкции. В отличие от того же питона, например.

Блин, печально что люди тратят свое время на написание codebase для этой ерунды. Лучше бы баги в glassfish фиксили.

JFreeM ★★★☆
()

Что-то развелось «вспомогательных языков» в последнее время... сначала Kotlin, а теперь вот Xtend...

X-Pilot ★★★★★
()
Ответ на: комментарий от JFreeM

Джава предлагает очень элегантные и весьма легкочитаемые конструкции.

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("one", 1);
Map<String, Double> map2 = new HashMap<String, Double>();
map2.put("onedotsix", 1.6);
for(Map.Entry<String, Number> e: Arrays.<Map<String, Number>>toList(map, map2)) {
}

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

_________

//wfrr

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

>> замыкания, которые всегда были так необходимы в Java;

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

Особенно когда их не было %)

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