Технологии, применяемые на стороне сервера
В случае с клиентской частью ситуация выглядит более-менее однозначно: несмотря на существование альтернатив, самое широкое распространение имеет JavaScript. Есть некая "универсальная таблетка": делай вот так и это точно будет работать. Для серверной части такой панацеи не существует. Одновременно применяются и развиваются масса технологий, у каждой из которых существуют свои плюсы и минусы. Более того, на крупных проектах встречается и смесь технологий: часть проекта написана на одном языке, работает и переделывать ее не планируется, а все нововведения пишутся уже на другом языке и общаются с вызывающим ихWeb-сервером по другому протоколу. Кроме того, для мираWebприменимо понятие "моды" - время от времени появляются разговоры о наконец-то изобретенной "универсальной таблетке", которая спасет от всех имеющихся проблем. На самом деле до сих пор все подобные утверждения были лишь данью моде, проходит какое-то время и на вершину Олимпа поднимается уже другой подход, а проблемы остаются теми же самыми. Вопрос о наиболее перспективном языке программирования вообще, и вWeb'е - в частности, имеет скорее религиозный характер, нежели технический.
В случае поиска более-менее оптимальной картины по языкам и технологиям мы, рано или поздно, придем к так называемому индексу TIOBEProgrammingCommunityIndex. Для его составления используются статистика по поисковым запросам, собранная с наиболее популярных в мире поисковых систем. Согласно этому индексу, последние 10 лет на первом месте по популярности находится языкJava. На втором месте шел С, причем с минимальным отрывом. А начиная с 1 квартала 2012 года С даже вырвался вперед. Хотя подобный факт уже имел место в 2004-2005 годах и устоявшимся лидерствомCне закончился.
Популярность языка C(не путать сС++илиC#), скорее всего, вызвана другими причинами, не связанными с интернет- илиWeb-программированием. Например, если Вы пишете драйвер для какого-либо устройства, или любую другую низкоуровневую программу, или вообще пишете свою, мини-операционную систему для какого-нибудь микроконтроллера - альтернативыCпросто не существует. Конечно же, наCтоже можно написатьWeb-приложение (с использованием рассмотренной ниже технологииCGI), однако такой подход к разработке, в силу его трудоемкости и низкоуровневости, вряд ли следует считать оптимальным.
Язык Javaимеет очень широкий спектр применений.Web- в том числе. Популярность языка нельзя списать только на мобильные устройства: гаджеты в их современном количестве появились относительно недавно, аJava, как это видно из графиков, был популярен все время существования индексаTIOBE. Скорее всего, популярность вызвана именно универсальностью языка. НаJavaпишут все: и приложения с графическим интерфейсом, и сетевые приложения, и распределенные вычислительные системы, и программы, никакого отношения к сети не имеющие, и программы для мобильных устройств, и хранимые процедуры внутри баз данных, и так далее и тому подобное.
Среди языков, предназначенных в большей части дляWeb-программирования, первое место занимаетPHP. Далее идутPythonиPerl.
Но вышесказанное - только статистика. На практике разработчик самостоятельно выбирает технологию будущего интернет-приложения - крайне редко. Как правило, она уже определена - техническими требованиями к проекту, историческими причинами, предпочтениями заказчика или инвестора, принятыми корпоративными стандартами, чем-то еще.
- Оглавление
- Введение.
- Предмет рассмотрения данного курса.
- Одно-, двух- и многоуровневые приложения.
- Интернет.
- Адрес в интернете
- 2001:0Db8:11a3:09d7:1f34:8a2e:07a0:765d
- Имя в интернете
- Службы (сервисы)
- Сокета.
- Что такое "сокета" (socket) ?
- Создание серверной сокеты (пример на языке c).
- Сериализация
- Основы верстки: таблицы
- Основы верстки: фреймы
- Основы верстки: позиционирование участков сайта
- Протокол http
- Структура запроса (Request).
- Структура ответа (Response).
- Перспективы развития http.
- Интернет-приложения
- Web-приложения
- Web-сервисы
- Особенности проектирования
- Особенности пользовательского интерфейса
- Программирование интернет-приложений
- Объектно-ориентированное программирование
- Классы и объекты
- Жизненный цикл класса
- Статические члены класса
- Инкапсуляция
- Наследование
- Полиморфизм
- Интерфейсы
- Событийно-ориентированное программирование
- Совместная работа над проектом
- Технологии создания web-клиентов
- Dom (Document Object Model)
- Каскадные таблицы стилей
- JavaScript
- Обфускация и динамическое получение скриптов
- Java Applets
- ActiveX/npapi
- Adobe Flash
- Web-серверы
- Nginx (engine X)
- Технологии, применяемые на стороне сервера
- ИнтерфейсCgi
- КонцепцияMvc
- Сервлеты
- JavaScript
- Хранение данных