Это не сравнительный анализ языков веб-программирования (для этого надо быть гуру в каждом из них, а я могу лишь похвастаться глубоким знанием платформы ASP.NET), а всего лишь краткий обзор популярных фреймворков и языков веб-программирования в рамках темы создания сайта, предназначенный для новичков сайтостроения.
Хочу сразу сказать, что не существует одного языка программирования, который бы превосходил все остальные. Превосходство какого-либо языка программирования может проявляться только в контексте какой-либо задачи. Но это совсем необязательно. Многие задачи могут быть эффективно решены с помощью любого современного популярного языка программирования. Часто, выбор языка и фреймворка определяется тем, какими знаниями обладают программисты, готовые реализовать данный проект. В большинстве случаев, в этом нет ничего плохого, скорее наоборот, если посадить, например, ASP.NET программистов на PHP проект, то результат может оказаться плачевным.
Необходимо, также, понимать различие между языком программирования и фреймворком. Язык программирования – это просто некоторый базовый синтаксис (возможно со стандартными библиотеками), с помощью которого можно создавать приложения. Фреймворк же предоставляет программисту различные библиотеки, значительно упрощающие создание программ и сайтов. Некоторые языки и фреймворки представляют собой неразрывное целое (например, ASP.NET и JSP). Другие языки могут использоваться без фреймворка (PHP и Perl).
Независимо от того, какой язык программирования будет выбран, в основе любого сайта лежит язык гипертекстовой разметки – HTML. Его должны знать все веб-разработчики. Не помешают хотя бы базовые знания HTML и тем сайтостроителям, которые ничего сами не пишут, а используют готовые решения (стандартные или заказные).
Собственно, одного HTML уже достаточно для того, чтобы делать сайты. Но это будут статические сайты, без обратной связи с пользователями. Кроме того, обновления таких статических сайтов трудоемки. Для придания сайту динамики, используются языки веб-программирования.
В первую очередь, языки веб-программирования можно классифицировать на клиентские и серверные. Как следует из названия, клиентские языки используются для написания программ, выполняемых на стороне клиента (веб-браузер), а серверные – для программ, выполняемых на сервере.
Среди клиентских языков веб-программирования надо выделить JavaScript, который, также как и HTML, лежит в основе многих веб-технологий (например, в основе популярной в последнее время технологии AJAX) и умение программировать на нем относится к базовым знаниям веб-разработчика.
Другие популярные клиентские языки, а точнее фреймворки – это Adobe Flash (язык ActionScript) и SilverLight (любые .NET языки). Adobe Flash применяется веб-мастерами очень давно. Основное применение этой технологии – интерактивные сайты и сервисы, онлайновые игры, мультимедийный контент и реклама. SilverLight – это новая технология, разработанная компанией Microsoft и позиционируемая как замена Adobe Flash. Не смотря на то, что с помощью Adobe Flash или SilverLight можно построить полностью весь сайт, так делать не следует (за редким исключением). Дело в том, что поисковики пока не умеют индексировать ни Adobe Flash, ни SilverLight.
Серверные языки веб-программирования могут быть условно разделены по операционной системе, на которой они работают: Windows и *nix. Это разделение в некоторой степени условно, т.к. практически все популярные языки и фреймворки портированы на обе ОС. Тем не менее, они редко используются на неродных ОС.
Если говорить про ОС Windows, то тут безраздельно властвует технология ASP.NET, разработанная компанией Microsoft. С помощью ASP.NET можно создавать сайты любого уровня сложности – от самых простых, состоящих их нескольких страниц, до очень сложных, обрабатывающих миллионы запросов в день (сайты Microsoft, написанные на ASP.NET, являются одними из самых посещаемых в Интернет). Технология ASP.NET привлекательна для тех, кто неплохо разбирается в ОС Windows, но незнаком с Unix-подобными системами. Основной недостаток – меньшее, по сравнению с *nix, количество дешевых хостингов или необходимость покупки серверной лицензии, в случае с выделенным хостингом. Однако, по сравнению со стоимостью разработки сложных сайтов, а, также, стоимостью трафика, разница расходов на Windows и *nix хостинг может быть пренебрежимо мала.
Самым популярным языком веб-программирования является, безусловно, PHP. Его основными преумуществами являются: простой синтаксис, высокое быстродействие, поддержка большинством хостингов. Очень весомым преумуществом является то, что на PHP написаны многие популярные движки (например, самый популярный движок для stand alone блогов – WordPress).
Другой популярный язык веб-программирования на платформе Unix – язык Perl. Он имеет сложный запутанный синтаксис и никогда не предназначался для веб-программирования. Я не рекомендую его использовать для создания сайтов.
JSP (Java Server Pages) – это часть технологии J2EE, предназначенная для создания сайтов с помощью языка Java. JSP имеет очень много общего с ASP.NET и выбор между этими двумя технологиями чаще всего основывается на субъективных предпочтениях, а не на каких-либо преумуществах или недостатках этих платформ.
В последнее время высокую популярность приобрел язык Ruby и, в частности, фреймворк Ruby on Rails. С его помощью можно очень быстро создать сайт с требуемой функциональностью. Одним из существенных недостатков Ruby является низкое быстродействие.
В заключение, хочу заметить, что выбор языка веб-программирования для сайта неразрывно связан с выбором CMS сайта. На этом краткий обзор языков веб-программирования закончен.
В лучших традициях современной блогосферы подобрал комикс: