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

by Admin 24.10.2007 6:42:00

Этот пост является частью коллективного описания темы "Создание сайта от начала и до конца".

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

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

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

 Baby's First Language

Если вам понравился пост, то подпишитесь на RSS.

Текущий рейтинг: 5.0 (1 голосов)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Программирование

Похожие записи

Комментарии

23.10.2007 7:31:01

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

Уникальный Человек

23.10.2007 11:06:21

Sergiy Oliynyk

Спасибо, старался Smile

Sergiy Oliynyk

23.10.2007 12:17:02

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

Николай

23.10.2007 17:45:29

Sergiy Oliynyk

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

Sergiy Oliynyk

25.10.2007 6:34:36

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

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

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

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

HeavyWave

25.10.2007 12:08:36

Sergiy Oliynyk

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

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

Sergiy Oliynyk

09.11.2007 13:10:59

noRerih

про python ни слова

noRerih

11.11.2007 9:03:57

Sergiy Oliynyk

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

Sergiy Oliynyk

02.12.2007 14:34:03

Dmitry

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

Dmitry

08.01.2008 8:40:25

AKSAHATURALY

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

AKSAHATURALY kz

08.01.2008 9:13:20

Сергей Олейник

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

Сергей Олейник ua

15.01.2008 7:29:37

Stac

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

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

Stac ru

15.01.2008 7:53:57

Сергей Олейник

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

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

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

Сергей Олейник ua

16.01.2008 1:28:46

Stac

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



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

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

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

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

Stac ru

16.01.2008 1:36:25

Сергей Олейник

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

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

Сергей Олейник ua

16.01.2008 7:02:54

Stac

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

Stac ru

16.01.2008 7:46:31

Сергей Олейник

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

Сергей Олейник ua

Добавить комментарий

Внимание! Бессодержательные комментарии вида "Спасибо, интересно", "Интересная статья", "Понравилось" не приветствуются и, скорее всего, будут удалены (за исключением тех случаев, когда я знаком с автором реально или виртуально).


(Отображает Gravatar)  

  Country flag






Предпросмотр

23.07.2008 23:12:44