Ответ действительно зависит от того, что на самом деле делает ваше приложение, и от требований вашей платформы.
Если это обычное веб-приложение, такое как gmail, и вы хотите, чтобы оно работало на множестве браузеров и платформ; тогда я бы порекомендовал комбинацию HTML, CSS и GWT , поскольку это означает, что весь код вашего приложения является Java, его очень легко реорганизовать и модульно поддерживать, есть масса Java-программистов и IDE для Ява замечательная (IntelliJ или затмение и т. Д.).
Затем вы можете использовать плагины браузера, такие как Siverlight или Flex, если и когда они имеют смысл (например, например, Google finance использует Flash для интерактивных графиков).
Если ваше приложение очень графическое, например, типа Visio, или вам нужно встроить Microsoft Office или что-то еще; Возможно, вы захотите взглянуть на Silverlight / Flex / AIR, особенно если можете диктовать версии браузера и платформы для внутреннего приложения.
Хотя со стороны клиента нет однозначного однозначного ответа (просто посмотрите на комментарии в этой ветке :), есть много вариантов (Java Applets / Swing / JavaFX, Ajax, GWT, Air / Flex, Silverlight / .Net и т. Д.), Которые у всех есть сильные и слабые стороны. Моя рекомендация для связи между клиентом и вашим сервером C ++ состоит в том, чтобы представить ваше приложение C ++ в виде набора ресурсов RESTful - тогда в любой момент времени вы можете легко написать другие типы клиентов в любой языковой технологии или среде.