logo
Проектирование инт-прил / лекции / Проектирование инет приложений

Технологии, применяемые на стороне сервера

В случае с клиентской частью ситуация выглядит более-менее однозначно: несмотря на существование альтернатив, самое широкое распространение имеет 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.

Но вышесказанное - только статистика. На практике разработчик самостоятельно выбирает технологию будущего интернет-приложения - крайне редко. Как правило, она уже определена - техническими требованиями к проекту, историческими причинами, предпочтениями заказчика или инвестора, принятыми корпоративными стандартами, чем-то еще.