Советов много, а комплексного подхода никто не предложил…
Ребята, всё полностью зависит от задачи. И, если не хотите распыляться, проведите прежде всего концептуальный анализ критичных мест архитектуры.
Ответьте себе на следующие вопросы:
— Насколько «быстрым» должно быть клиентское приложение?
— Какая нагрузка планируется на сервер?
— Какие данные и способы их отображения будут в клиентском приложении? Как с ним будет взаимодействовать пользователь?
— Какие требования предъявляются к каналу передачи данных между клиентом и сервером (задержки, real-time-требования)?
— Какие предельные сроки?
— Сколько времени планируется поддерживать проект (ставка на качество или на скорость разработки)?
— Планируется ли продавать исходники или поддерживать проект самостоятельно?
Выбор инструментов сильно зависит от ответов на эти вопросы.
Мой хороший друг рекомендует использовать те инструменты, которыми я владею. Не забывайте, серебрянную пулю до сих пор так и не изобрели, и для одной и той же логики на любом языке так или иначе придётся написать примерно одинаковое число строк кода.