Как я смешиваю основанные на JVM языки в единственном проекте Netbeans?

я думаю, что это - все об удобочитаемости.

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

В целом, я чувствую, что самые важные вещи должны быть на первом месте. Для 99,6% всех классов, примерно, который означает открытые методы, и особенно конструктора. Тогда прибывает общедоступные элементы данных, если любой (помните: инкапсуляция является хорошей идеей), сопровождаемый любыми защищенными и/или закрытыми методами и элементами данных.

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

8
задан Brian Knoblauch 15 October 2009 в 17:46
поделиться

2 ответа

К сожалению, в то время как сообщество Java , кажется, с большим энтузиазмом относится к программированию полиглотов, поставщики IDE на самом деле не постоянно. Обычно у них есть плагины для проектов Java, Scala, Clojure, Groovy, Ruby, ECMAScript, Python, C ++, но смешивание нескольких языков в одном проекте обычно не поддерживается.

В Ruby, например, довольно распространено использование Swing в качестве графического интерфейса через JRuby. Но если вы хотите использовать Matisse, конструктор графического интерфейса NetBeans Swing, вы должны использовать проект Java, вы не можете использовать Matisse в проекте Ruby. Однако, если вы используете проект Java, у вас не может быть основного исполняемого файла Ruby, у вас должен быть основной исполняемый файл Java. Кроме того, вы не получаете поддержки Rake и других вещей, которые поддерживает тип проекта Ruby. (Уродливый обходной путь - написать основной исполняемый файл Java, который вручную создает экземпляр JRubyEngine , загружает в него главный исполняемый файл Ruby и запускает его.)

Плагин Eclipse Scala поддерживает ограниченную степень полиглотизма, но обручи, которые им приходится преодолевать, огромны. По сути, они используют исправление байт-кода во время выполнения для внедрения аспектов Scala в подключаемый модуль Java Development Tools Eclipse, чтобы заставить работать межъязыковой рефакторинг на основе типов. Плагин Groovy делает аналогичные вещи, как и AspectJ (фактически, они изначально придумали идею использования переплетения аспектов для внедрения новых функций в JDT). Итак, все эти плагины позволяют программировать полиглотов с самими собой и с Java. Но, к сожалению, не друг с другом. (Хотя некоторые из сопровождающих выразили заинтересованность в более тесном сотрудничестве.)

В целом, я опасаюсь, что единственным решением будут новые IDE.

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

В общем, я опасаюсь, что единственным решением будут новые IDE.

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

В целом, я опасаюсь, что единственным решением будут новые IDE.

6
ответ дан 5 December 2019 в 19:01
поделиться

Слишком поздно отвечать на этот вопрос, но ответ заключается в том, что IntelliJ IDEA очень хорошо справляется с программированием полиглотов. Недавно я смотрел демонстрацию, в которой один из их разработчиков создавал приложение со смешанным языком на 5 (!) Языках.

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

Я был очень рад отметить, что IDEA теперь (частично) с открытым исходным кодом.

3
ответ дан 5 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: