New day — new language!

    Xtend


    Xtend представляет собой статически типизированный язык программирования от команды Eclipse, который обладает тесной интеграцией и работает поверх JVM. Его корни лежат в языке программирования Java (кто бы мог подумать). Xtend обладает рядом концептуальных улучшений:
    • Выведение типов — нет необходимости постоянно указывать сигнатуры типов.
    • Полная поддержка Java Generics — включая все соответствия и правила приведения.
    • Замыкания — приятный синтаксис для анонимных классов.
    • Перегрузка операторов — позволяет писать более выразительный код.
    • Улучшенные switch выражения — на основе типов и приведения.
    • Каждое выражение имеет значение (en. «No statements — Everything is an expression»).
    • Шаблоны — с поддержкой пробелов.
    • Поддержка расширений — JSR-330.
    • Доступ к свойствам — синтаксический сахар над get/set.
    • Полиморфный вызов методов.
    • Транслируется в Java код, а не Bytecode — корректная работа с кодом, предназначенным для пратформ, таких как Android или GWT.

    У разработчиков не стоит цели заменить Java. Библиотека Xtend является тонким слоем над JDK и работает равносильно с Java и Xtend. Разумеется, разработчики предоставляют современную IDE на основе Eclipse.
    Поделиться публикацией

    Комментарии 20

      +5
      Три часа такому топику и до сих пор нет нет 10 страниц срача? Да, хабр уже не тот…
        –3
        Уже не торт
          0
          Его поди прятали после публикации. Полчаса назад я его не видел.
            0
            Пока +5 не будет — не виден на общей.
            Хотя после обносления подписок черт его знает как оно.
              0
              обновления*
            –2
            Это Java, а она здесь не сильно популярна, к сожалению.
            +3
            Стараются не отставать от JetBrains ни в чём!
              0
              Да пусть его выпускают — может и выстрелит в результате, или нишу какую займет.

              Больше языков — хороших и разных!
                +2
                Немного волшебства — и Java превращается в C#. Ура, товарищи!
                  +1
                  И как всегда только один вопрос — чем это лучше / полезнее чем Scala/Groovy/Jython?
                    0
                    принципиальное отличие в этом — www.eclipse.org/Xtext/xtend/#compilestojava
                      0
                      Да, спасибо, это я понимаю. Мой вопрос был — чем это лучше/полезнее, чем Scala/Groovy/Jython? Чем это лучше, чем просто писать код на этих языках?

                      То, что это будет более портабельно под Андроид? Если так, то да, это некоторый осязаемый плюс.
                      +1
                      Как я понял, Extend представляет собой систему шаблонов и кодогенерации для Java. У него на выходе не Bytecode, а Java код. Т.е. тут нет задачи принести на JVM разнообразные техники или концепции (как в случае со Scala, например), а есть задача улучшить синтксис Java, сделать его не таким многословным.
                        +1
                        С одной стороны интересно, а с другой, где гарантия что автоматическая кодогенерация будет оптимальная и более удачна, чем это сделает программист? Тоже самое что дримвьювер, сверстать прототип можно быстро, а оптимизировать код все равно придется руками. Только как показывает практика это редко кто делает.
                          +1
                          На сколько я понял, кодогенерации тут не происходит, и «программирование мышкой» не предусмотрено. Просто некоторые стандартные, но многословные конструкции языка заменяются более короткими алиасами.
                      0
                      >> Транслируется в Java код, а не Bytecode — корректная работа с кодом, предназначенным для пратформ, таких как Android или GWT.

                      Это действительно здорово. Интересно, есть возможность такое же сделать для Groovy/Scala без декомпиляции?
                        +1
                        Насколько я понял, сам проект называется XText — это конфигурируемый кросс-компилятор в Java, для которого описывается грамматика. Огромнейший плюс XText в том, что IDE понимает описанную грамматику «из коробки», т.е. не надо создавать своего плагина для синтаксиса. При помощи него можно описать практически любой язык или DSL. В частности XTend — это надстройка над Java, выполненная на XText. Своего рода «сахарница», в который добавили некоторые вещи типа closures и интегрировали нативно некоторые паттерны (в основном используемые в EMF типа Extender). Но позиционировать себя как отдельный язык ему еще рановато, так как изначальным концептом все-равно является Java, отсутвтвует четкая парадигма. Это скорей фреймворк. Хотя если в синтаксис добавят основные паттерны, возможно, будет очень полезным.
                          0
                          поправка: сам по себе Xtext можно использовать для генерации любого кода (да и не только кода, любого текста), не только Java-кода.
                            0
                            Напоминает vala. У vala ява подобный синтаксис с кучей сахара, но код транслируется в чистый си, который затем уже компилируется. Вообще получается такой метакомпиляция. Компилятор генерирует не бинарный код, а код на другом языке. Что довольно интересно. Вот был бы номер если бы кто сделал транслятор ява кода в си код :)

                            Вообще мне кажется, что в будущем интел, все таки придёт к тому, что процессоры будут понимать программы в исходных кодах :) Сегодня x86 команды уже транслируются в внутреннюю системы команд. Так что мешает сделать процессор который будет понимать си код? Ява процессоры уже делают. И не помню где, но был проект компиляции с/с++ кода в ява байт код.
                            –1
                            Ожидать плагин к Idea, похоже, не приходится…

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

                            Самое читаемое