Преимущества использования jython по сравнению с jacl в сценариях wsadmin (WebSphere Application Server 7+)
Перед лицом программирования для клиента сценариев wsadmin я вижу, что вы можете использовать как jacl, так и jython.
У меня одинаковый уровень уверенности в обоих языках.
Мне интересно, есть ли в специфике программирования wsadmin преимущества использования одного языка перед другим; такие как надежность, доступность примеров или библиотек для администрирования веб-сферы или что-то подобное, вытекающее из вашего опыта использования и создания сценариев такого типа.
2 ответа
Jython - это язык, который предпочитают:
- Rational Application Developer поддерживает инструментальные средства для Jyton (редактор Jython, отладчик, завершение команд и возможность тестирования ваших сценариев на тестовом сервере внутри IDE).
- Административная консоль WebSphere обеспечивает поддержку команд консоли; он дает вам сценарии, эквивалентные операциям, которые вы выполняете с помощью административной консоли, на случай, если вы захотите их автоматизировать. Эта помощь использует Jython в качестве языка.
- Даже если Jacl был языком по умолчанию для wsadmin, IBM продвигает Jython на будущее и даже предоставляет инструмент для преобразования сценариев Jacl в Jython. Цитирование из описания этого инструмента по данной ссылке;
При выборе языка сценариев Jython является стратегическим направлением в качестве языка сценариев администрирования для WebSphere Application Server, поскольку будущие усовершенствования языка сценариев ориентированы на использование Jython.
Я не пытаюсь ставить под сомнение любой из предыдущих ответов, просто добавлю некоторые факты.
Хотя Jython является "стратегическим" направлением, Жак был там с WAS v4. В WAS v8.5 он все еще используется по умолчанию (и не рекомендуется!).
Административный API был написан с учетом Жака. С Jython one вы должны делать такие трюки, как этот, чтобы получить список серверов в виде списка:
for srv in AdminConfig.list('Server').splitlines():
print srv
тогда как в Jacl можно просто сделать это:
foreach srv [$AdminConfig list Server] {
puts $srv
}
Очевидно, что многие методы AdminConfig и AdminControl возвращают списки в виде строки, разделенной новой строкой.
IBM действительно загнала себя в угол с Jython и Jacl. Они по-прежнему используют Jython 2.1 (выпущенный в 2002 году, даже в самой последней и лучшей версии WAS v8.5). Жак не активно поддерживается сообществом. API дружественный к Jacl, не был переписан для Jython. Множество клиентских решений основано на уловках, которые вы должны делать в Jython, есть множество решений на основе Jacl. Даже у IBM внутренне есть много зависимостей от этого наследия. Это может быть причиной того, что Jacl устарела с WAS v5.1 и все еще используется по умолчанию.
Короче:
- Если вы собираетесь написать небольшой скрипт для конкретной задачи, Jacl может быть более удобным для вас (поскольку вы упомянули, что вам удобны как Python, так и Tcl)
- Однако, если вы заинтересованы в разработке более крупной платформы для управления инфраструктурой WAS, то Jython с его объектно-ориентированной ориентацией может быть лучшим вариантом. Но не ожидайте слишком многого от этой версии Jython - она довольно глючная, и вы не сможете использовать слишком много библиотек Python просто потому, что они давно отказались от поддержки Python2.1.
Вывод: это не такой простой ответ (что означает, что вы задали хороший вопрос).