Значится так. Есть уже лет шесть работающая морда к СУБД - программа для всякой там бухгалтерии и т.д. и т.п. Написана на связке Tcl/Tk/Python. Выглядит она примерно так. Кроме того, что она редактирует данные в базенке, она еще осужествляет разную печать посредством генерации xls-документов. Все это крутится на винде и на линухе, причем, у некоторых, в терминалках.
По ряду причин я хочу ее перевести под java. Описание интерфейса и логика у меня жестко разделены, потому надо будет переписать только движок, и 90% кода подхватится jython-ом.
Теперь перейдем к сабжу. На сегодня имеется 2 работающих подхода: традиционный гуи и web-морда. Между ними и выбирается, причем, накладывается ряд требований:
- Поведение программы не должно отличаться от уже существующего. Например, все кейбиндинги, должны подхватится. В случае с веб-мордой я не уверен, что они не законфликтуют с кейбиндингами браузера.
- Критичны диалоги с выпадающими табличками или деревьями, такие как список валют на сриншоте. Записей в такой табличке может быть много, до сотет тысяч, потому для такой таблички реализовано кеширование, и фильтр с сортировкой. Можно ли подобное реализовать на веб-морде? Просто ли это?
- Как быть с печатью? На данный момент пользователь просматривает и печатает из OO или MSOffice. Использование такого формата существенно облегчает жизнь и мне, и пользователю. В случае с ГУИ юзер сразу видит готовый документ и ему надо только нажать кнопку «Печать». В случае с веб-мордой надо еще и отвечать на вопрос браузера о сохранении или открытии документа. Это не упрощение, а усложнение для юзера и он воспримет такое в штыки. Выставить действием по умолчанию тоже не получится, т.к. у разных пользователей разные привычки на сей счет.
- Важно быстродействие. На данный момент прога бодро работает на доживающих свой век третьих пеньках. И даже на паре машин, привязанных 98-й виндой к станочкам, как-то крутится. Я не уверен, что решение на базе веб-морды будет бодро крутится на тех же третьих пеньках. Например, Zimbra на таких машинах ведет себя очень грустно.
- Развертывание ГУЯ уже отработано и много лет с этим не возникает проблем. В случае с веб-мордой могут быть накладки. Например, та же Zimbra не работает с популярной весьма Оперой и для ее функционирования нужна достаточно мощная железка.
На данный момент я решил выбрать в качестве ГУИ и реализовать его на SWING. Тем не менее я хочу рассмотреть альтернативы. Особенно web-морды.