The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Проект Eclipse развивает новый язык программирования Xtend

06.11.2011 12:32

Проект Eclipse ввёл в строй сайт для нового языка программирования Xtend, базирующегося на виртуальной машине Java и построенного с использованием фреймворка Eclipse Xtext, предоставляющего набор средств для создания предметно-ориентированных языков. Вместо прямой генерации байткода для JVM, исходные тексты на языке Xtend компилируются в представление на языке Java, примерно также как CoffeeScript компилируется в JavaScript. При этом на выходе получается вполне читаемый Java-код, который в дальнейшем можно использовать для Android и GWT (Google Web Toolkit).

Xtend не ставит перед собой цель заменить Java, а пытается модернизировать Java и предоставить удобную альтернативу для некоторых слабых мест, сохраняя общее сходство синтаксиса. Наиболее заметное отличие от Java связано со значительным упрощением синтаксиса за счет избавления от лишнего "шума", что в конечном итоге приводит к улучшению читаемости кода. Xtend остаётся языком со статической типизацией, но при объявлении переменных позволяет явно не указывать типы, если их можно определить из явного контекста. Упрощён доступ к свойствам (person.name вместо person.getName() или person.name = "Foo" вместо person.setName("Foo")), переведено в разряд опций указание скобок и точки с запятой вместо obj.compute() можно указать obj.compute).

Xtend полностью поддерживает всю базовую функциональность Java, включая поддержку библиотек классов и возможность непосредственного взаимодействия из Xtend-программ с кодом на языке Java и наоборот, поддержку прозрачного вызова написанных на языке Xtend функций из Java-программ. Из дополнительных возможностей, дополняющих средства Java, можно отметить замыкания, шаблоны выражений (что-то похожее на макросы C/C++), мультиметоды (полиморфный вызов методов), методы расширения, перегрузка операторов, мощная альтернативная реализация выражения "switch".

Отдельно отмечены полноценные средства по интеграции с платформой Eclipse. Для упрощения разработки подготовлен плагин для интегрированной среды Eclipse, который поддерживает, большинство возможностей доступных при разработке на языке Java.

  1. Главная ссылка к новости (http://developers.slashdot.org...)
  2. OpenNews: Компания Google представила новый язык web-программирования Dart
  3. OpenNews: Компания Red Hat представила язык программирования Ceylon, призванный заменить Java
  4. OpenNews: Релиз языка программирования Ruby 1.9.3
  5. OpenNews: Язык программирования D на пути к включению в состав GCC
  6. OpenNews: Представлен новый открытый проект Google - язык программирования Go
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/32236-xtend
Ключевые слова: xtend, eclipse, java
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (30) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, mere_anonymous (ok), 13:32, 06/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Они изобрели скалу?
     
     
  • 2.2, Человеков (?), 13:36, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    оно видимо ооп. Хотя я не читал толком.
     
     
  • 3.3, Mike Lee (?), 14:31, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    скала тоже ооп, хоть и с фп плюшками
     
  • 2.12, VoDA (ok), 15:49, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    скала сильно сложнее - Xtend имеет классический С/С++ синтаксис с небольшими улучшениями. scala же имеет свой собственный самобытный синтаксис )))
     
     
  • 3.17, Аноним (-), 15:56, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > scala же имеет свой собственный самобытный синтаксис )))

    Инопланетный.


     

  • 1.4, жабабыдлокодер (ok), 14:42, 06/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > при объявлении переменных позволяет явно не указывать типы, если их можно определить из явного контекста

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

     
     
  • 2.6, Аноним (-), 15:10, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это как auto в с++
     
  • 2.7, Аноним (-), 15:29, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если вы пишете тесты у вас мало ошибок, очень трудно локализуемых.
    Вы не пишете тесты у вас много ошибок, очень трудно локализуемых.
    Все остальное в том числе: вид типизации, длинна бороды программиста и фаза луны,
    прямого отношения к количеству ошибок не имеют.
     
     
  • 3.23, anonymous vulgaris (?), 22:45, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Если вы пишете тесты у вас мало ошибок, очень трудно локализуемых. Вы не пишете тесты у вас много ошибок, очень трудно локализуемых. Все остальное в том числе: вид типизации, ...прямого отношения к количеству ошибок не имеют.

    Ну а те кто пишет программы знают что все не так просто.


     
  • 3.28, Кирилл (??), 11:43, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Увы, это не так. Написание тестов, и вообще разработка через тестирование, очередной миф, вроде того, что ООП способствует повторному использованию кода.
    Проще (и эффективнее) предусмотреть проблемы на стадии проектирования и отлавливать ошибки на стадии компиляции, а не писать тесты, по объёму чаще в разу большие, чем сам полезных код проекта.
     
     
  • 4.30, VoDA (ok), 13:18, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Увы, это не так. Написание тестов, и вообще разработка через тестирование, очередной
    > миф, вроде того, что ООП способствует повторному использованию кода.
    > Проще (и эффективнее) предусмотреть проблемы на стадии проектирования и отлавливать ошибки
    > на стадии компиляции, а не писать тесты, по объёму чаще в
    > разу большие, чем сам полезных код проекта.

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

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

     
     
  • 5.31, Кирилл (??), 14:38, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Опять же, размытие компетенций решается хорошей архитектурой и проектированием. С тестами как с Богом -- если он есть, то возникает вопрос, а как его тестировать.
     
     
  • 6.33, VoDA (ok), 16:46, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Опять же, размытие компетенций решается хорошей архитектурой и проектированием. С тестами
    > как с Богом -- если он есть, то возникает вопрос, а
    > как его тестировать.

    maven package проводит тестирование. Если нужно что-то совсем глобальное, а не модульное - грузим на сервер и гоняем серверные тесты ;)

     
  • 3.29, Кирилл (??), 12:06, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А вот субъективные факторы и когнитивные ограничения, как раз, являются определяющими. Поэтому куда важнее удобство работы программиста и подходящая фазу луны, чем написания кучу бесполезных тестов.
     
  • 2.26, Guest (??), 00:23, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> при объявлении переменных позволяет явно не указывать типы, если их можно определить из явного контекста
    > Существует ли большее зло, чем это? Отдать типизацию на волю интерпретатора -
    > значит допустить появление ошибок, очень трудно локализуемых.
    > на волю интерпретатора

    man type inference

     

  • 1.5, ranen (?), 15:04, 06/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Это типа: если java не хочет меняться, то мы придумаем новые костыли.
    Забавно, костыли к костылям.))))
    P.S. У Вас ходунки?! И Вы на них падаете - мы идем к вам! Наши подпорки помогут Вам стоять ровно - учиться ходить необязательно!

     
     
  • 2.11, Аноним (-), 15:48, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В чем костыли? Или вам лишь бы брякнуть?


     
  • 2.15, VoDA (ok), 15:54, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Это типа: если java не хочет меняться, то мы придумаем новые костыли.

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

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

    PS давно хотел адекватную работу с пропертями.

     
     
  • 3.20, ranen (?), 16:18, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Где здесь SDK?! Тут на ваяли новый язык!
    Язык верхнего уровня генерирует алгоритм на языке верхнего уровня! ))))))
     

  • 1.8, Аноним (-), 15:36, 06/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    интересно, а когда они это делали, они видели JRuby?
     
     
  • 2.10, Аноним (-), 15:47, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да. Откачивали потом три дня.
     
  • 2.18, Tav (ok), 15:58, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И Scala, и Jython, и Clojure, и Dart (тот самый от Google, теперь и на JVM), и еще чего-нибудь — много их. Языков программирования вообще много. Что же теперь, перестать разрабатывать новые?

    Но этот, кажется, ничего особенно интересного из себя не представляет — гора синтаксического сахара. Как раз тот случай, о котором Алан Перлис сказал: «syntactic sugar causes cancer of the semicolon».

     
     
  • 3.24, anonymous vulgaris (?), 22:47, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Языков  программирования вообще много. Что же теперь, перестать разрабатывать новые?

    Не не надо переставать. Но стоило бы перестать писать о любой фигне на первой странице портала.

     
     
  • 4.25, Tav (ok), 00:05, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Не не надо переставать. Но стоило бы перестать писать о любой фигне
    > на первой странице портала.

    Да, но дело в том, что публикация новости определяется не столько значимостью разработки, сколько весомостью разработчика.

     
     
  • 5.32, anonymous vulgaris (?), 21:22, 07/11/2011 [^] [^^] [^^^] [ответить]  
  • +/

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

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

    >сколько весомостью разработчика.

    Но где тут весомость то? Что гугл что эклипс постоянно изобретают кучу всякого, а ничего почти не используется реально то.

     

  • 1.9, Аноним (-), 15:46, 06/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По виду coffescript для java.
    Что есть хорошо.
     
     
  • 2.13, Аноним (-), 15:50, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    По виду dart для java, что есть странно :)
     
     
  • 3.19, Tav (ok), 15:59, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > По виду dart для java, что есть странно :)

    Уже есть: http://code.google.com/p/jdart/

     

  • 1.14, Аноним (-), 15:53, 06/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, кто-нибудь на этом напишет "Hello world!" и выложите на github?
     
     
  • 2.16, VoDA (ok), 15:54, 06/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, кто-нибудь на этом напишет "Hello world!" и выложите на github?

    уже обсудили - посмотри на ЛОРе.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру