И вот ответ, который я писал.
Это интересный вопрос, потому что SO на самом деле разрабатывается очень традиционным способом для веб-приложений, но не имеет много общих характеристик с обычным вебприложение.в частности, он должен быть масштабируемым, но бизнес-правила и требования к хранилищу данных не являются сложными.
Таким образом, при использовании современной технологии я бы использовал
обычный JavaScript;SO использует jquery, это было бы хорошо.
Я бы использовал ориентированное на рабочую среду веб-приложение, такое как Unicorn, для легкой масштабируемости.
Я бы использовал Hadoop и Cassandra для хранения вопросов и комментариев.
Я бы внедрил правила оценки и ранжирования, используя MapReduce для всей базы данных.
Удобно, что большинство из них доступно из Java, хотя я бы предпочел язык сценариев, такой как Ruby или Python.
Я бы избегал обычного мира на основе Java EE.По моему мнению - и я был очень ранним пользователем Java EE в Sun - этот techno.logy перегружен.Я бы также избегал серверов под управлением Windows;ими сложно управлять и сравнительно дорого.(Я могу собрать серверное оборудование примерно по той же цене, что и лицензия на ОС.)