У меня нет опыта работы с PHP, поэтому я выскажу свое мнение о Java (и стороне Python).
Для Java:
У вас есть очень распространенный и безопасный выбор Tomcat. Это один из наиболее активно разрабатываемых серверов, с открытым исходным кодом, большой поддержкой / помощью со стороны очень большого сообщества. Судя по тому, что я прочитал (но не тестировал), он может быть достаточно масштабируемым, а также имеет очень зрелую консоль для мониторинга различные показатели для вашего сайта.
У вас также есть другие варианты, такие как смола Caucho's, у которой очень маленькая, но умная команда, которая активно развивает свой веб-сервер. Их новая служба сердцебиения обеспечивает хорошую степень масштабируемости (опять же из того, что я читал).
И еще у вас есть приложение Google, которое все о масштабируемости. Их API (как на стороне сервера, так и на стороне клиента) начали ориентироваться на веб-приложения в реальном времени, поэтому создание высокопроизводительных веб-приложений немного проще, не беспокоясь об оптимизации, связанной с сервером, которую вам часто приходится делать с другими серверами. , У них есть API для создания «каналов» между сервером и клиентом для приложений реального времени. Команда AppEngine также имеет новый API MapReduce для быстрого и эффективного анализа данных. По этим причинам и личному мнению, что они являются пионерами новых веб-технологий / стандартов, я лично склоняюсь к AppEngine. Это бесплатно, если вы сохраняете использование процессора / данных на низком уровне, но если вам нужно полномасштабное развертывание, оно становится дорогостоящим, поэтому проводите исследования. Если ваш проект больше для развлечения / школы, его бесплатных квот достаточно, и все его инструменты разработки / API бесплатны, поэтому он идеален.
Для Python:
Я больше Java, чем Python, но Python, безусловно, отличный язык, и его очень очень легко выучить. И причина, по которой я рекомендую Python для рассмотрения, заключается в том, что AppEngine также позволяет разработчикам выбирать Python. Автор / создатель языка Python теперь входит в команду AppEngine, поэтому, хотя API-интерфейсы Python и Java практически одинаковы, у них иногда есть новые / лучшие API-интерфейсы для Python. Например, я думаю, что API хранилища данных, предлагаемый с Python, немного проще и оптимизирован для хранилища данных Google. Кроме того, поскольку вы будете использовать python, вы можете использовать Django с AppEngine.
Второй выбор, о котором мне недавно стало известно, - это веб-сервер торнадо, который был разработан FriendFeed, а затем куплен и использован Facebook. Это также активно развивается. Но причина, по которой я говорю об этом, заключается в том, что Tornado, как и AppEngine, уделяет большое внимание производительности и масштабируемости веб-приложений. У меня нет опыта работы с ним, но я заинтересовался его технологией просто потому, что никто не может оспорить, что Facebook требует очень высокопроизводительный / масштабируемый веб-сервер.
Несколько последних мыслей:
В целом вы обнаружите, что не очень сложно создать собственный протокол поверх API, предоставляемых большинством веб-серверов (даже Asp.NET MVC). Но из того, что я смог протестировать с помощью AppEngine, он действительно фокусируется на гибкости в отношении того, какой протокол построен на его основе. Мне кажется, это просто RPC-сервер, работающий поверх HTTP. И это становится еще более очевидным, если вы используете Python только из-за некоторых языковых конструкций.