Большинство ответов (так или иначе) пока что сосредоточены на том, насколько простым или трудным будет выбор. Вся цель приложения, как настольного, так и веб-ориентированного, заключается в обслуживании конечного пользователя. Что должно быть отправной точкой обсуждения.
В большинстве случаев веб-приложения просто не могут обеспечить такой же богатый и интерактивный интерфейс, как настольное приложение. Ограничений слишком много из-за доступных виджетов, задержки в сети, того факта, что окно вашего приложения (как правило) должно (обычно) находиться в другом приложении и т. Д.
При этом во многих случаях интерфейсам не требуется большой набор виджетов, задержка в сети не является большой проблемой, а запуск из окна браузера является преимуществом. Gmail и переполнение стека являются яркими примерами веб-приложений, которым не нужен особенно богатый интерфейс.
Итак, при попытке решить, какую технологию использовать в первую очередь, учитывайте пользователя. Им нужен высокопроизводительный, богатый пользовательский интерфейс? Нужно ли им иметь возможность легко делиться своими данными с другими людьми в сети? Это приложение, которое они будут использовать восемь часов в день или просто случайно? Будут ли они использовать его в основном для редактирования локальных файлов или для совместной работы с людьми по сети?
Для тех, кто говорит «веб-приложения всегда лучше», позвольте мне задать вам вопрос: подумайте об инструментах, которые вы используете каждый день. Ваш текстовый редактор, программирование IDE, ваш браузер, ваш почтовый клиент. Какие из этих веб-приложений? Вероятно, нет, за исключением, может быть, вашего почтового клиента. Есть причина, по которой вы не хотели бы использовать сетевую среду разработки для написания программного обеспечения (или для написания книги, или для серьезных манипуляций с изображениями).
Все сводится к пользователю и каковы его цели. Иногда их потребности лучше всего удовлетворять веб-интерфейсом, иногда - настольным. Иногда либо подойдет. Конечно, вам также необходимо взвесить такие параметры, как распространение и обновление, кроссплатформенность и т. Д., Но все начинается с пользователя и его целей. Если вы сосредоточены на удовлетворении конечного пользователя, ответ, скорее всего, станет довольно очевидным.