Home » Создание сайтов и программирование » Языки веб-программирования – какой выбрать?
Языки программирования

Языки веб-программирования – какой выбрать?

Это не сравнительный анализ языков веб-программирования (для этого надо быть гуру в каждом из них, а я могу лишь похвастаться глубоким знанием платформы ASP.NET), а всего лишь краткий обзор популярных фреймворков и языков веб-программирования в рамках темы создания сайта, предназначенный для новичков сайтостроения.

Хочу сразу сказать, что не существует одного языка программирования, который бы превосходил все остальные. Превосходство какого-либо языка программирования может проявляться только в контексте какой-либо задачи. Но это совсем необязательно. Многие задачи могут быть эффективно решены с помощью любого современного популярного языка программирования. Часто, выбор языка и фреймворка определяется тем, какими знаниями обладают программисты, готовые реализовать данный проект. В большинстве случаев, в этом нет ничего плохого, скорее наоборот, если посадить, например, ASP.NET программистов на PHP проект, то результат может оказаться плачевным.

Web Languages

Необходимо, также, понимать различие между языком программирования и фреймворком. Язык программирования – это просто некоторый базовый синтаксис (возможно со стандартными библиотеками), с помощью которого можно создавать приложения. Фреймворк же предоставляет программисту различные библиотеки, значительно упрощающие создание программ и сайтов. Некоторые языки и фреймворки представляют собой неразрывное целое (например, 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 сайта. На этом краткий обзор языков веб-программирования закончен.

В лучших традициях современной блогосферы подобрал комикс:

  • Комикс как раз в тему =)

  • Sergiy Oliynyk

    Спасибо, старался :-)

  • Отличная статья, написана профессионально, со знанием дела.

    • venicum

      Но не знанием Perl'a
      ps в основном пишу на java/action script

  • Sergiy Oliynyk

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

  • Какой-то детский обзор.
    Основное преимущество Ruby это применение MVC паттерна и все его преимущества и недостатки вытекают из этого.
    Для любителей MVC архитектуры есть CakePHP framework.
    Про реализацию MVC на ASP .Net легко можно найти в Интернете.

    Я это говорю к тому, что PHP и ASP .Net легко изменяются под конкретную задачу, посему применение Ruby и особенно Perl (который вообще для обработки текста предназначался) почти никогда не оправданно.

    И если упоминаешь про преимущества ASP .Net мог бы сказать, что AJAX изначально заложен в его архитектуру, имхо, это важно.

    Кстати, гугл отлично индексирует правильно выполненные Flash сайты.

  • Sergiy Oliynyk

    Этот пост писался как часть коллективной темы “Создание сайта от начала и до конца”. Т.е. целевая аудитория – новички, которые слова MVC никогда не слышали.
    К тому же прикрутить MVC можно куда угодно, поэтому выделять его в Руби не вижу смысла.
    Насчет Перла согласен, я так и написал.
    AJAX заложен в ASP.Net совсем не изначально. Кроме того, существует много других фреймворков под AJAX , поэтому я не считаю это преимуществом ASP.Net.

    Насчет флэша первый раз слышу, но спорить не буду, т.к. очень давно не имел с ним дела. Надо будет посмотреть.

  • noRerih

    про python ни слова

  • Sergiy Oliynyk

    А вы считает, что python – это подходящий для новичков язык создания веб сайтов?

  • Dmitry

    Лично я, считаю, что python по сравнению с описанными языками используемыми в web-программировании идеально подходит для новичков. Так как проще него я ни одного другого не видел. Ruby, впрочем тоже простой, но я с ним не работал поэтому про него мало, что могу сказать. А вот python не только простой и даже приятный в использовании, но и очень мощный. На сегодняшний день имеет весьма обширную стандартную библиотеку и много дополнительных модулей распространяемых сторонними разработчиками. А также на нём разработаны Zope, Plone и др. Так что я полностью согласен с noRerih, python незаслуженно был не учтен в статье.

  • Хороший обзор. Довольно полный и насыщенный. Лично мое мнение что Перл – хоть и не разрабатывался для веб -приложений, но тем не менее, очень хорошо для них подходит. А заипутанная структура – так это делает его еще интересней, хотя при изучении очень трудно бывает понять все эти разные структуры выдающие в конце одно и то же.

  • Как сказали в одном из последних подкастов Радио-Т: на Перле интересно писать программы, но он совсем не предназначен для того, чтобы их читали :-)

  • [quote]Кроме того, обновления таких статических сайтов трудоемки.[/quote]
    Данное утверждение не обосновано и, вообще говоря, не верно. Трудоемкость правки исходного кода сайта или разметки не зависит от используемого языка или фреймворка.

    Perl – язык для обработки текста, да. Но если вспомнить, что вебстраницы это, по сути, текстовые файлы (так же как и исходные тексты программ на упомянутых языках, кстати), то можно сделать вывод, что Perl идеально подходит для генерации и обработки таких текстов. Косвенно этот факт подтверждается 12 836 модулями, доступными Perl программистам на http://cpan.org.

  • [quote][i]Кроме того, обновления таких статических сайтов трудоемки.[/i]
    Данное утверждение не обосновано и, вообще говоря, не верно. Трудоемкость правки исходного кода сайта или разметки не зависит от используемого языка или фреймворка. [/quote]
    Имелось в виду то, что при изменении, например, футера сайта, придется менять все HTML страницы. В случае же с динамическим сайтом, обычно, достаточно изменить один файл.

    Кроме вывода текста, обычно, присутствует еще некоторая бизнес логика.

  • [quote]Имелось в виду то, что при изменении, например, футера сайта, придется менять все HTML страницы. В случае же с динамическим сайтом, обычно, достаточно изменить один файл.
    [/quote]

    Кто-нибудь еще так думает? Всем учить матчасть и вкючать мозг!

    1. SSI – фетер в отдельном общем для всех страниц файле
    2. Сайт генерируется программой (движком), работающим на стороне вебмастера, результат заливается по FTP.

    И в первом и во втором случае менять код, при необходимости, нужно только в одном месте.

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

  • [quote]Сайт генерируется программой (движком), работающим на стороне вебмастера[/quote]

    Я лет 5 назад искал что-то подобное, но ничего не нашел. С тех пор статические сайты делать не приходилось.
    Значит, прогресс не стоит на месте (или я искать не умел) :-)

  • 5 лет назад я использовал MacroHTML Александра Кузнецова, есть еще мощная штука PPWIZARD на REXX’е.
    Но вообще-то не надо ничего искать – надо писать самому, под конкретный проект. Тем более, что генерация HTML, CSS и JS весьма прста и доступна программисту любого уровня, владеющему любым языком, способным писать в файл (подходит и коммандный язык DOS).

  • Писать самому – это, конечно, лучший вариант, но не всегда есть время. Точнее говоря, времени, обычно, нет.

  • Иван

    по-моему самый лёгкий пхп… а самый сложный ява…

  • kv4

    Спасибо автору, обзор интересный. Но можно было бы и полнее.
    За сегодня из десятка различных статей на тему сравнения ASP.NET и PHP, эта самая объективная, никакой однобокости и переманивания на свою сторону. Пять с плюсом:)

  • Спасибо, за лестный отзыв. На самом деле "своей стороны" нет. Просто у каждого языка есть свои задачи. Правда, многие задачи можно решать на многих языках :-)

  • petrov

    Получил лишнее подтверждение кривости asp.net. Так же как и многие другие aspx страницы эта страница отображается по разному в разных браузерах, и плохо читаема в опере которая кстати в отличие от IE соблюдает стандарты W3C

  • А при чем здесь asp.net ? Отображение страницы не зависит от серверного языка, а зависит от html, который получается в результате.
    В данном случае, если что-то криво, то это моя вина.

    Действительно, в Опере криво. Постараюсь поправить, когда будет время.

  • Алексей

    А может еще и тему выбора языка раскроете не для новичков, а для тех кто вообще не знает об этом ничего, но вынужден принимать решение о языке програмирования. Вот в частности задача, мне как сотруднику отдела маркетинга надо принять решение о выборе подрядчика по разработке корпоративного сайта. Сайт будет типа такого http://www.troika.ru ну и как выбирать подрядчика? Может язык программирования это один из критериев.

  • Сделать плохой или хороший сайт можно на любом языке программирования (из тех, на которых вообще делают сайты, конечно).
    Тут сложнее найти заказчика, который сделает хорошо и при этом возьмет адекватную сумму денег.

  • asp язык ориентированный на разработку очень крупных сайтов, например корпоративных, социальных и т.д. и в плане быстродействия уступает php.
    php – быстродействующий, очень легкий язык прог-я, есть куча готовых модулей. Но безопасность сайта полностью на плечах разработчика. С Java не сталкивался, скорее нечто среднее между asp и php.

  • ome9a

    а почему Великий Гуру веба не сделал нормальной верстки?

  • Voven

    Статья в принципе не плохая, но как то поверхностно описывает языки. Просто хотелось бы узнать при создании более менее крупного проекта (может типа соц.сети) какую платформу лучше заэксплуатировать, конкретно например PHP и MySQL справятся с такой задачей или лучше выбрать ASP.NET платформу, т.е. при большой посещаемости как будут вести себя сайт, а может это в большей мере зависит от мощности сервера?

  • Voven, при создании крупного проекта надо выбирать ту платформу, в которой лучше разбираются программисты. Большие системы есть и на PHP и на ASP.NET, так что все зависит от разработчиков.

    Лично мне проще программировать на ASP.NET и чем больше мне приходится писать на PHP, тем больше я восхищаюсь теми, кто создает классные вещи на PHP :-)

    P.S. Если бы я писал эту статью сейчас, то обязательно включил бы в обзор Python + Django.

  • Nikolyams

    Да насчет перла конечно проехались лихо, синтаксис я бы не назвал сложным, просто при более глубоких знаниях, делать интересные вещи.
    То что он не разрабатывался для веба не означает что его не надо использовать, у него очень много все возможных библиотек. Так же то факт то что его не встраивают напрямую в HTML код скорее всего заставит начинающего разработчика смотреть в правильную сторону отделения данных от их представления.

    Использования директивы strict заставит perl следить за областью видимости переменных, внутри каждого блока вы сможете создавать локальные переменные с одинаковыми именами и позволит программисту писать более надежный код, в пхп по большему счету есть глобальная область видимости и внутри функций.

    Модули перла является по сути подгружаемыми библиотеками, больше похожими на dll, подключаемые файлы пхп по сути просто куски кода вставляемые в основной скрипт.

    Перл конечно стар, но я бы не стал списывать его со счетов.

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

    В любом случае попробовать перл не будет лишним.
    Надеюсь мой коммент был кому то полезен

  • Cfyz

    Прочитал статью
    не плохо написано .Мне 17 лет и я  планирую поступать на программиста в
    дальнейшем профессия веб программиста останется  востребована ??? И еще я знаком с языком HTML и CSS они
    простые я учил их недолга а об остальных я слышал но не представляю их такие
    как  РНР и разные другие долго ли нужно обучатся этим
    языкам ????

    • Думаю, что пока будет веб, будут нужны и веб программисты :-)
      Что касается изучения языков программирования – можно изучить основы за один день, но для понимания всех тонкостей понадобится много лет.

      P.S. Основная польза от университета – там научат учиться, все остальное все равно забудется.

  • SliM_lexa

    Как давно тут не было коменнтов))) а вот к примеру я выучил PHP, я могу с помощью него полностью написать сайт?
     

    •  Сайт можно и на простом html сделать. С помощью PHP можно сделать сайт практически любой сложности, другое дело, что на это может понадобиться очень много времени.

    • Лев Тигренко

      С помощью PHP делают движки для сайтов.
      А сам сайт, это уже результат работы PHP кода. (если он на PHP)

  • namer

    спасибо за статью