Мне всегда кажется, что это внутренняя борьба, когда дело доходит до пользовательского интерфейса. Я создаю «движок» приложения и склоняюсь к тому, чтобы отложить пользовательский интерфейс после того, как мои алгоритмы работают. Затем я снова и снова пытаюсь решить, как позволить пользователю взаимодействовать с моей программой. Лично я фанат командной строки, но я не могу ожидать, что мои пользователи вообще.
Мне действительно нравится то, что возможно в браузере в эпоху web 2.0 и ajax. С другой стороны, сделать Swing-интерфейс также не так сложно, и вы можете рассчитывать на более согласованное представление для пользователя (хотя использование хорошего фреймворка JavaScript, такого как YUI или jQuery, имеет большое значение для нормализации браузеров).
Очевидно, что оба подхода имеют свои достоинства и недостатки. Итак, какие критерии / параметры / ситуации должны побудить меня использовать легкий (например, веб-интерфейс) графический интерфейс? Какие критерии / параметры / ситуации должны побудить меня использовать более тяжелый (например, основанный на Swing) графический интерфейс?
Я не собираюсь начинать пламенную войну, просто заинтересован в конструктивных / объективных мнениях сообщества.
Редактировать # 1
В свете первых нескольких ответов я хотел бы уточнить, что я бы хотел развернуть свое приложение независимо от того, не обязательно ли размещать его на каком-либо интернет-сервере. Поэтому мне пришлось бы развернуть его с помощью облегченной инфраструктуры веб-сервера в виде Jetty / Tomcat или аналогичной.