Вот моя попытка вашего (очень широкий) вопрос:
- Django - основа Python, позволяющая упростить разработку приложений с несколькими клиентами на основе нескольких клиентов.
- Ruby on Rails - основа Ruby, позволяющая упростить разработку приложений на основе CRUD для нескольких клиентов.
- Google App Engine - Google хостинг приложений Python или Java, который использует BigTable в качестве механизма хранения.
- CGI-скрипты/приложения - старые школьные веб-приложения, в которых сценарий CGI запускался для каждого запроса на веб-сервер.
Grails - это рубинообразная инфраструктура, позволяющая упростить разработку приложений с несколькими клиентами на основе нескольких клиентов. Он основан на Java, Groovy, Spring и Hibernate.
Java-сервлеты - это классы прослушивателя HTTP, которые вы развертываете с использованием Java EE-сервлетов/JSP-движков. У этих двигателей почти всегда есть встроенные в них HTTP-серверы, поэтому вы можете выбрать, развертывать ли они их поверх веб-сервера, такого как Apache или IIS. Они будут частью структуры, такой как Grails, но вам нужно добавить много других материалов помимо сервлетов, чтобы создать динамическое веб-приложение, управляемое данными. Вот почему вы не можете качать кошку, не нажимая еще одну веб-инфраструктуру Java (например, Struts, Spring, Wicket, JSF и т. Д.). Это намного больше, чем просто сервлеты.
Все это похоже на то, что они разные попытки решить ту же самую основную проблему. Вы бы выбрали один из них, основываясь на своем знании с основным языком.
Я бы не поставил Google App Engine в той же категории. Это больше похоже на опцию «хозяин в облаке», чем на альтернативу Rails или Django. Вы можете развернуть приложения Python, которые используют Django в Google App Engine, поэтому в этом смысле это не альтернатива.
+1. Добавлю только, что если вы не знакомы ни с одним из языков, Python или Ruby (мне нравится Python) более выразительны и менее многословны, чем java. Django (с Python) и Ruby (с Rails) также являются менее сложными структурами, чем некоторые эквиваленты в Java. – cethegeek
Отличное дополнение; спасибо, celopes. – duffymo
+1 для «многоклиентских веб-приложений CRUD» –