Есть много фреймворков, которые делают много разных вещей. Вы назвали много разных вещей из разных областей. Лучший способ думать об этих вещах - группировать их по категориям. Вот пример:
Предположим, у вас есть ноутбук и вы хотите разместить веб-сайт. Как минимум вам понадобится следующее:
1) Программное обеспечение веб-сервера. Два популярных варианта - это IIS от Microsoft и веб-сервер Apache.
Это действительно все, что тебе нужно. Вы можете настроить папку www_root и загрузить в нее файлы. При условии, что все настроено правильно, теперь вы можете загружать HTML-страницы в эту папку и получать к ним доступ через свой IP-адрес. Каждая страница, которую вы просматриваете в своем веб-браузере, имеет формат HTML. CSS - это язык таблиц стилей, который определяет формат вашего HTML. Вы также можете начать писать Javascript, так как большинство современных браузеров поддерживают язык сценариев на стороне клиента.
Скорее всего, вам также понадобится следующее:
2) База данных программного обеспечения. Два популярных варианта Microsoft SQL Server и MySQL
3) Серверные скрипты. PHP очень популярен, как и ASP. Вам понадобится среда выполнения, развернутая на вашем сервере. Python, Ruby, Perl и т. Д. Все подпадают под эту категорию.
4) Каркас (ы) веб-приложений. Это предоставит вам библиотеки на выбранном вами языке, чтобы помочь в разработке веб-приложений и веб-сайтов. CakePHP, Ruby on Rails и Google Web Toolkit являются примерами каркасов веб-приложений.
Кроме того, вы можете использовать:
5) Дополнительные библиотеки. Например, JQuery быстро становится популярной библиотекой для Javascript, которая выполняет множество общих для вас задач. Вместо написания кода со сложными эффектами и тому подобного, просто используйте предварительно написанный код в библиотеке JQuery.
6) Технология обмена данными. Если вы передаете много информации туда и обратно, вы, вероятно, захотите инкапсулировать эти данные в логическом формате. В идеале этот формат описывает данные и позволяет вашим приложениям легко читать / обрабатывать их в соответствии со стандартом. Здесь вступают в игру XML и JSON.
Я не могу рекомендовать вам хорошую книгу для изучения этого материала, но я чувствую, что коллективных ответов на ваш вопрос здесь должно быть более чем достаточно, чтобы вы начали.
В конечном счете, вам нужно определить, какие технологии вам нужны, а затем выбрать подходящую для работы. Не создавайте приложение с использованием Ruby on Rails только потому, что это то, чем пользовался Twitter, а выбирайте его, потому что оно дает вам некоторые преимущества перед другими вариантами.