LINUX.ORG.RU
 
ins3y3d

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


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.

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

ЗАСТАВЬ КОМПЬЮТЕР ПОЛИВАТЬ ОГОРОД

автоматизация своими руками: электроприборы под контролем компьютера
beware of programmers who carry screwdrivers!
http://www.unicontrollers.com/products/unc01x

[#]  
Sosiska

>выпустил новый язык программрования

Доколе этот ад будет продолжаться?

()
[#]  
note173

Как-то сильно похоже на скалу по синтаксису.

*** ()
[#]  

Ява с человеческим лицом?

***** ()
[#]  
vold

Мета-язык, который транслирует в ява. Наподобие Vala, который транслирует в C.

*** ()
[#] Ответ на: комментарий от tailgunner 05.11.2011 12:13:14  
Pavval

И карбоновыми тормозами.

**** ()
[#]  
Mystra_x64

Теперь оно не тормозит ещё быстрее?

***** ()
[#]  
buddhist

Новые языки это хорошо, но не тогда, когда выпускается по 100500 одинаковых.

*** ()
[#] Ответ на: комментарий от note173 05.11.2011 12:09:41  

Нет, все-таки синтаксис ближе именно к java.

А вот по функциональности - кострированная scala.

Но вот зачем? Для неосиляторов скалы или кому-то действительно так критично транслирование в java?

anonymous ()
[#] Ответ на: комментарий от Sosiska 05.11.2011 12:09:32  

Когда информатика, как наука, умрёт.

***** ()
[#]  
umren

Сколько там языков уже мертвых под JVM которыми никто не пользуется? 100? 1000? Over 9000?

* ()
[#]  

>Перезагрузка операторов

мой мосх...

anonymous ()
[#]  

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

чего? перестройка2?

**** ()
[#]  
gensym

Лучше бы продолжали пилить свой тормозной АйДиИи.

* ()
[#]  

Где самое главное, где hello world?

()
[#]  

Каждый раз кто-нибудь делает что-то на джаве/для джавы, я убиваю котёнка.

anonymous ()
[#]  

Похоже у Жабистов совсем крыша поехала.

anonymous ()
[#]  
vertexua

Не популярен как Java, не настолько мощный как scala, похож на Groovy (++) но без наработок и инфраструктуры. Эх. Ну пускай покажут что могут

*** ()
[#] Ответ на: комментарий от ins3y3d 05.11.2011 12:56:14  

Ты перепутал Xtext и xtend.

**** ()
[#]  

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

Да ну, шило на мыло. Реквестирую язык со встроенной функцией make_all_fucking_cool().

* ()
[#]  

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

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

** ()
[#] Ответ на: комментарий от loz 05.11.2011 13:29:27  

Голос из-под лисповой шконки.

anonymous ()
[#] Ответ на: комментарий от anonymous 05.11.2011 12:49:23  
wm34

>>Каждый раз кто-нибудь делает что-то на джаве/для джавы, я убиваю котёнка.

Животинка то в чём провинилась?

* ()
[#] Ответ на: комментарий от anonymous 05.11.2011 12:49:23  
Sadler

> Каждый раз кто-нибудь делает что-то на джаве/для джавы, я убиваю котёнка.

У меня в директории ~/NetBeansProjects/Java/ ~2500 поддиректорий. Приступай.

* ()
[#] Ответ на: комментарий от ratvier 05.11.2011 13:56:00  
Sadler

> Hello World и во что он компилируется

Какая жуть. Ява и так не очень шустрая, а если ещё вот такие обёртки юзать, дак совсем грустно будет.

* ()
[#]  

JVM не нужна. Только LLVM, только хардкор!

anonymous ()
[#]  
CYB3R

> Optional semicolons
Ни за что!

* ()
[#] Ответ на: комментарий от ratvier 05.11.2011 13:56:00  
vertexua

Будешь смеяться, но так эффективнее )

*** ()
[#]  
robert_foster

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

* ()
[#]  

>акцессоров

закопайся, вместе со своим богатым и мобучим.

_________

//wfrr

anonymous ()
[#] Ответ на: комментарий от vertexua 05.11.2011 14:22:32  

Эффективнее не создавать StringConcatenation при каждой итерации, а реюзать старый. При сипользовании сабжевых костылей код будет еще тормознее.

_________

//wfrr

anonymous ()
[#] Ответ на: комментарий от Sadler 05.11.2011 14:00:06  
pitekantrop

> Какая жуть. Ява и так не очень шустрая, а если ещё вот такие обёртки юзать, дак совсем грустно будет.

Вот тебе, двоечнику, вопрос на засыпку: во что компилируется следующий код *стандартным* компилятором явы?

System.out.println("Hello, " + name + "!");

*** ()
[#] Ответ на: комментарий от pitekantrop 05.11.2011 14:35:34  
Sadler

> Вот тебе, двоечнику, вопрос на засыпку: во что компилируется следующий код *стандартным* компилятором явы?

Пошёл к черту.

* ()
[#] Ответ на: комментарий от pitekantrop 05.11.2011 14:35:34  

А теперь вопрос во что скопилируется отакой код:

String s = "";
for(int i = 1000; i >=0; --i) {
  s + = "hello " + i;
  s.length();
  s + = i + '0' + i; 
  s + = i + "" + i; 
}

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

_________

//wfrr

anonymous ()
[#] Ответ на: комментарий от ratvier 05.11.2011 13:56:00  
Mystra_x64

>@SuppressWarnings("all")

Это нормально? (O.o)

***** ()
[#] Ответ на: комментарий от anonymous 05.11.2011 14:41:56  
pitekantrop

> А теперь вопрос во что скопилируется отакой код

Если мне понадобиться написать что-то подобное, я заведу явный StringBuilder.

*** ()
[#] Ответ на: комментарий от Mystra_x64 05.11.2011 14:54:33  
pitekantrop

>>@SuppressWarnings("all")

>Это нормально? (O.o)

С учетом того, что код генерится, вполне.

*** ()
[#]  
shahid

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

***** ()
[#] Ответ на: комментарий от anonymous 05.11.2011 12:27:24  

> Нет, все-таки синтаксис ближе именно к java.

> А вот по функциональности - кострированная scala.

> Но вот зачем? Для неосиляторов скалы или кому-то действительно так критично транслирование в java?

scala довольно сильна, даже чересчур учитывая уровень людей которые программируют на java. плюс рефакторинг scala довольно сложен - даже IDEA адекватно не поддерживает. Xtend это попытка вылечить некоторое количество болячек без сильного усложнения языка.

** ()
[#]  
pitekantrop

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

*** ()
[#]  

Пиздец мешанина будет.

anonymous ()
[#] Ответ на: комментарий от pitekantrop 05.11.2011 14:54:51  

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

_________

//wfrr

anonymous ()
[#] Ответ на: комментарий от VoDA 05.11.2011 15:00:08  

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

_________

//wfrr

anonymous ()
[#]  
hobbit

НЕЕЕЕЕТ...

***** ()
[#] Ответ на: комментарий от anonymous 05.11.2011 12:54:14  
Pronin

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

Java должен умереть(с)

*** ()
[#] Ответ на: комментарий от anonymous 05.11.2011 15:23:22  

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

java допиливается один раз и на всю жизнь, потому сначала обкатка нововведений идет в виде внешних проектов и дополнительных SDK, а только после этого и решения что фича реально нужна и облегчает жизнь хотя бы 50% программистов, а ухудшает жизнь менее 5% (ИМХО), тогда она и внедряется.

так что проверка в виде ажурных костылей и нужна )))

PS до 5-ки аннотации были ажурными костылями, а потом их внедрили в базовую версию.

** ()
[#] Ответ на: комментарий от VoDA 05.11.2011 15:37:16  
gensym

> java допиливается один раз и на всю жизнь, потому сначала обкатка нововведений идет в виде внешних проектов и дополнительных SDK, а только после этого и решения что фича реально нужна и облегчает жизнь хотя бы 50% программистов, а ухудшает жизнь менее 5% (ИМХО), тогда она и внедряется.

пока вы там ждете (ха-ха-ха, а может и никогда не дождетесь), мы прикручиваем функциональносты через defmacro/MOP -> быстренько пишем проект используя новые фичи. Профит!

* ()