Рынок серверных решений для веб-разработки в наши дни переполнен! Perl, ASP, PHP, JSP, Cold Fusion и многие другие специализированные варианты имеются в большом количестве. Откуда новичок должен знать, чему учиться и что использовать? Выбор платформы для создания вашего первого основного веб-приложения на основе базы данных — это не что иное, как выбор редактора HTML — вы не можете просто загрузить полдюжины кандидатов и взять их всех на тест-драйв одним ленивым днем. Некоторым из этих языков может потребоваться несколько месяцев работы непосвященного веб-разработчика, чтобы по-настоящему понять и начать пользоваться им с комфортом. Если у вас нет времени, чтобы взять год отдыха и свернуться калачиком книг, вам понадобится руководство!
В этой статье я коснусь каждого из основных вариантов в сети сегодня. Для каждого из них я объясню основные моменты продажи, неизбежные недостатки, относительные расходы и необходимые компромиссы. Я также опишу целевой разработчик для каждого из этих технологий; то есть я кратко объясню, кого они имели в виду, когда гении, стоящие за каждой из этих технологий, впервые создали их. Если какой-либо из этих профилей напоминает вам о вашей собственной ситуации, это должно быть довольно хорошим признаком того, что вы нашли правильную технологию.
Выбор языка программирования на стороне сервера является постоянным источником горячих споров в Интернете сегодня. Как и в редакторах HTML, у каждого есть свой любимый язык сценариев, и у большинства людей есть веские причины для своего выбора. Тем не менее, сама природа разработки на стороне сервера — совместимость веб-браузера не является проблемой — позволяет использовать две технологии, которые решают одну и ту же проблему совершенно по-разному, чтобы оба были в равной степени успешными! По этой причине эта статья не о том, какая платформа лучше, а какая лучше для вас . И эй: даже если вы все еще не можете решить после прочтения этого, или если окажется, что вы уже сделали неправильный выбор, по крайней мере, у вас будет некоторое представление о том, с чем вы столкнулись!
CGI / Perl
Perl существует дольше, чем сама World Wide Web. Версия 1 была выпущена 18 декабря 1987 года, за целое десятилетие до того, как были разработаны другие языки, описанные в этой статье! Если вы новичок в этом, вы, вероятно, задаетесь вопросом, как мог существовать серверный язык веб-разработки до самой сети. Видите ли, Perl не был создан как язык веб-разработки. Perl, по сути, является многоцелевым языком сценариев, который был разработан для обработки задач, требующих большого количества текстовых манипуляций. Perl очень хорошо умеет манипулировать фрагментами текста из различных источников и объединять их для формирования законченных документов, что и является тем, что задействовано в веб-разработке на стороне сервера.
За полтора десятилетия, прошедшие с момента его создания, Perl был расширен с помощью модулей , кусочков иногда сложной функциональности, которые можно подключить к языку, чтобы адаптировать его к различным специализированным целям. Одной из таких целей является создание динамического веб-контента через Common Gateway Interface (CGI), поддерживаемый подавляющим большинством веб-серверов. CGI — это стандартное средство, с помощью которого программное обеспечение веб-сервера может передать запрос браузера на веб-страницу любой программе. По правде говоря, программы CGI могут быть (и были иногда) написаны на C / C ++, если это необходимо. Однако благодаря удобной обработке текста Perl всегда лучше подходил для этой работы, и теперь, когда Perl поставляется со встроенным модулем CGI.pm
В качестве последнего преимущества была создана комплексная сеть архивов Perl (CPAN) для предоставления централизованного источника дополнительных модулей, примеров сценариев и, в некоторых случаях, полностью разработанных веб-приложений.
Сегодня версии Perl доступны бесплатно для всех основных операционных систем (от основной Windows до самого непонятного варианта Unix), и если вы хотите, чтобы это делало что-то сложное, есть вероятность, что кто-то уже написал модуль, чтобы облегчить вашу работу , Единственным недостатком этого языка является то, что, поскольку он не был специально разработан для веб-разработки, он не был оптимизирован ни с точки зрения скорости, масштабируемости или простоты использования в настройках веб-сервера. Есть гораздо более простые языки для изучения, которые могут сделать столько же на арене веб-разработки, но Perl также позволит вам сделать гораздо больше, чем просто веб-разработка, если вам это нужно.
Преимущества:
- Зрелый язык с более чем десятилетней историей, вы менее подвержены ошибкам в Perl, чем в любом другом серверном языке.
- Это БЕСПЛАТНО, хотя хорошая книга, чтобы показать вам веревки, может немного вас отбросить.
- Большинство хороших веб-хостов поддерживают Perl, поэтому вам, вероятно, не придется доплачивать за хостинг.
- В вашем распоряжении обширная сеть преданных разработчиков Perl по всему миру. Они не только ответят на ваши вопросы в бесчисленных дискуссионных группах Perl и списках рассылки, но и в архиве CPAN (среди прочего) предоставит вам множество примеров для работы.
Недостатки:
- Хотя существуют некоторые варианты для улучшения ситуации, Perl не особенно хорошо масштабируется на загруженных серверах. Если вы хотите создать веб-приложение, которое может за короткое время обработать множество обращений, вы можете поискать что-то еще.
- Perl печально известен тем, что у него есть пять различных способов сделать даже самую простую вещь, которая может усложнить изучение работы других, если они не использовали тот же метод, который вы привыкли видеть. Кроме того, разработчики Perl печально известны тем, что находят кратчайший способ написания любой конкретной программы, поэтому вы можете быть удивлены, увидев пример сценария и обнаружив, что полный сценарий корзины покупок для электронной коммерции был написан в три строки кода, большинство из которых это загогулины и обратные слеши.
- Perl оптимизирован для платформы Unix, на которой он был создан, поэтому, если вы планируете работать на сервере Windows, у вас, скорее всего, есть лучший выбор с точки зрения производительности.
- Perl — это программное обеспечение с открытым исходным кодом, что означает отсутствие официальной поддержки. Несмотря на огромное доступное вам сообщество поддержки, если что-то пойдет не так, единственный человек, на которого вы действительно можете рассчитывать, это вы сами.
Целевой разработчик:
Большинство веб-разработчиков, которые все еще работают с Perl сегодня, как правило, являются администраторами и пользователями Unix, которые также используют Perl для работы в других областях своей системы. Для таких людей, Perl — это удобный инструмент «иди куда-нибудь, делай что угодно», на который всегда можно положиться. Если вы неопытный разработчик, столкнувшийся с задачей поддержки сайта, изначально написанного на Perl, то возьмите пару хороших книг и приготовьтесь добавить действительно мощный инструмент в свой арсенал.
ASP
Прежде чем мы пойдем дальше, давайте кое-что уберем от пуристов. Microsoft Active Server Pages (ASP) не является языком. Скорее, ASP — это фреймворк, позволяющий объединить один из нескольких языков сценариев (наиболее популярными из которых являются VBScript и JavaScript) с расширяемым набором программных компонентов . Эти компоненты обрабатываются как объекты на языке сценариев по вашему выбору, когда он используется как часть платформы ASP. По сути, сила ASP заключается в его способности комбинировать относительно простые языки сценариев, такие как VBScript и JavaScript, с мощными программными компонентами, которые обычно используются разработчиками C / C ++.
Хорошо, это продвижение Microsoft в сторону. Теперь давайте посмотрим правде в глаза: для всех практических целей ASP может быть языком. Вы просто получаете выбор между написанием VBScript ASP или JavaScript ASP. Поскольку большая часть примера кода написана на VBScript, ваш выбор для вас почти сделан. Таким образом, ASP, как правило, считается языком для разработки динамических веб-сайтов с использованием VBScript, и под этим углом зрения он превосходит. ASP прост в освоении, достаточно мощный для большинства основных веб-разработок на стороне сервера и довольно неплох с точки зрения производительности.
ASP тесно связан с операционной системой Windows (большинство программных компонентов, на которые ASP полагается за свою функциональность, ориентированы на Windows) и программным обеспечением веб-сервера Microsoft Internet Information Services. По этим причинам нецелесообразно и нежелательно запускать веб-сайт на основе ASP на любом сервере, кроме Windows. Если вы настраиваете свой собственный веб-сервер, это означает, что вы должны инвестировать в копию Windows 2000 Server (хотя большая часть ASP работает на Windows 2000 Professional, IIS не так масштабируема на этой платформе). Если вы платите за веб-хостинг, это означает, что вы платите за сервер под управлением Windows, который обычно стоит дороже. В любом случае ASP будет стоить вам денег на запуск. Существуют версии ASP, которые можно запускать на сервере Apache, работающем под Linux, но если ваша конкретная цель не состоит в том, чтобы перенести существующий веб-сайт ASP на сервер Linux, в этом нет особого смысла.
Еще одной проблемой для разработчиков ASP является относительно ограниченная природа компонентов, поставляемых в комплекте с ASP. Если все, что вам нужно для вашего приложения, это подключение к базе данных, поисковая система, службы обработки электронной почты, базовая обработка форм и отслеживание сеансов, тогда ASP вам подойдет. Однако любая менее распространенная функциональность обычно требует установки дополнительных программных компонентов на вашем сервере. Есть много компаний, которые производят компоненты для использования с ASP, которые генерируют PDF-файлы, взаимодействуют с FTP-серверами, обрабатывают загрузку двоичных файлов и многое другое. К сожалению, такие компоненты, как ASP, являются коммерческими решениями, которые будут стоить вам денег.
Плюсом всего этого является то, что ASP — это очень хорошо поддерживаемая технология, за которой стоит вся поддержка сообщества разработчиков Microsoft. MSDN , Microsoft Development Network предоставляет множество технических статей и справочных материалов для разработчиков ASP, а персонал службы поддержки Microsoft с радостью рассмотрит любые проблемы, возникшие у вас в процессе разработки (за плату). Если в любой момент вам абсолютно необходим ответ на вопрос, вы можете быть уверены, что там будет кто-то, чья работа заключается в том, чтобы дать вам ответ.
Преимущества:
- Довольно легко учиться, хотя программирование не требуется.
- Встроенный в Windows 2000 Server — без головной боли при установке.
- Профессиональная поддержка доступна.
Недостатки:
- Это не бесплатно (если вы уже не используете сервер Windows)
- Специализированные функциональные возможности могут потребовать от вас приобретения коммерческих компонентов или разработки их самостоятельно на C / C ++ или Visual Basic.
- Если вы привыкли к синтаксису в стиле C (совместно используемом C / C ++, Java, Perl, PHP и т. Д.), Вы можете столкнуться с трудностями, с которыми сталкиваются при работе с VBScript.
Целевой разработчик:
Если вы уже занимались какой-либо разработкой с использованием VBScript или Visual Basic или ранее разрабатывали COM-объекты в Windows, то это, безусловно, платформа для веб-разработки для вас. Кроме того, ASP настолько же дружественен к непрограммистам, насколько и язык программирования (но если вы действительно ненавидите программирование, посмотрите Cold Fusion, далее). Если вам удобнее использовать Windows для своей платформы веб-сервера и вы можете позволить себе сопутствующие расходы, или если компания, на которую вы работаете, просто требует уровня поддержки, который может предоставить Microsoft, тогда ASP — отличная технология для изучения.
Холодный синтез
Для веб-дизайнера, который никогда ранее не писал программы, выбор серверной платформы веб-разработки может быть ужасным. Какой бы путь вы ни выбрали, вы сталкиваетесь с большим, злым языком программирования для изучения, и ваша голова только начинает болеть… Первоначально созданная Allaire в 1995 году и недавно выкупленная Macromedia , Cold Fusion был разработан, чтобы отличаться. Вместо языка сценариев Cold Fusion предоставляет вам набор тегов для изучения. Да, теги — как и те теги HTML, которые вы узнали и полюбили!
Давайте рассмотрим пример публикации информации, хранящейся в базе данных в Интернете. В подавляющем большинстве серверных языков вам нужно добавить код на свою веб-страницу, чтобы выйти из режима HTML, подключиться к базе данных, запросить записи из базы данных, которые вы хотите отобразить, и обработать результаты, которые база данных отправляет вам отображать его как часть веб-страницы. В Cold Fusion эта общая задача выполняется с помощью двух тегов: <CFQUERY>
Второй тег <CFOUTPUT>
Опытному программисту эта система на основе тегов может показаться ограничительной и негибкой, но со встроенной библиотекой из 300 тегов в последней версии и возможностью добавлять пользовательские теги с более традиционными языками программирования, такими как C / C ++ и Java Cold Fusion совсем не ограничен. Cold Fusion 5.0 включает теги, которые автоматически генерируют графики из данных базы данных, беспрепятственно предоставляют средства поиска на вашем веб-сайте и даже генерируют HTML-формы с полным кодом проверки JavaScript. Для разработчика, который вынужден приобретать навыки на стороне сервера, Cold Fusion предлагает утопическое обещание только изучить несколько новых тегов!
Как и ASP, Cold Fusion является коммерческой серверной платформой, а это означает, что ее запуск будет стоить вам денег независимо от того, настроите ли вы свой собственный сервер или арендуете место у поставщика веб-хостинга. Однако, в отличие от ASP, Cold Fusion не привязан к платформе Windows. Cold Fusion может так же легко интегрироваться с Apache, работающим под Linux, как и с IIS на Windows 2000.
Преимущества:
- Очень легко учиться — программирование не требуется!
- Мощный и очень масштабируемый (последняя версия поддерживает как кластеризацию серверов, так и программную и аппаратную).
- Профессиональная поддержка от Macromedia.
- Кроссплатформенный.
Недостатки:
- Установка собственного сервера обходится дорого: Cold Fusion Server Professional 5.0 стоит $ 1 295
- Программистам могут не нравиться методы разработки на основе тегов.
Целевой разработчик:
Веб-дизайнеры, которые знакомы с HTML, но им нужно добавить серверные навыки в свой репертуар, не изучая язык программирования. С точки зрения среднего разработчика, изучение Cold Fusion похоже на изучение новых тегов. Пользователи, не являющиеся дизайнерами, также могут смириться с аккуратностью серверного программирования с помощью тегов, поэтому, если вы устали отлаживать свои серверные сценарии, стоит взглянуть на Cold Fusion!
PHP
Относительно новичок в области разработки на стороне сервера, PHP приобрел широкую популярность среди программистов благодаря знакомому синтаксису и обширной библиотеке функций. Кроме того, его относительно простой синтаксис и низкая, низкая цена (это бесплатно!) Сделали его привлекательной альтернативой Microsoft ASP для новых разработчиков.
Некоторые называют PHP «убийцей Perl» в мире сценариев на стороне сервера. В целях веб-разработки PHP может делать практически все, что может Perl, и обычно делает это быстрее и проще. В отличие от Perl, который обычно запускается как CGI-программа, вызываемая веб-сервером для обработки каждого запроса страницы, PHP может интегрироваться с вашим веб-сервером, чтобы он работал намного эффективнее.
PHP — чрезвычайно способный язык, с огромным набором встроенных функций, позволяющих выполнять все, от отслеживания пользовательских сессий до создания динамической графики и даже файлов PDF на лету! Никаких модулей для установки, никаких коммерческих надстроек для покупки … PHP обрабатывает все сам! На самом деле, единственным недостатком PHP является то, что относительно сложно расширить язык, добавив нестандартные функциональные возможности, которые не обрабатываются его встроенными функциями. Для этого требуется знание программирования на C / C ++ и не для слабонервных! К счастью, вам пришлось бы придумать очень эзотерическое веб-приложение, чтобы требовать функциональность, которая еще не встроена в PHP.
PHP — это бесплатное кроссплатформенное программное обеспечение с открытым исходным кодом. Он интегрируется со всеми основными веб-серверами во всех основных операционных системах. Это отличная возможность для разработчиков с ограниченным бюджетом, поскольку они могут настроить полноценный веб-сервер на базе Linux с поддержкой PHP и не платить ни копейки за программное обеспечение! Недостатком этого, конечно, является то, что нет никакой формальной поддержки любых проблем, с которыми вы можете столкнуться с PHP. Кроме того, поскольку PHP является новой и активно развивающейся технологией, в последних версиях все еще встречаются ошибки. Не позволяйте этим неприятностям вас расстроить — PHP имеет чрезвычайно активное пользовательское сообщество (большой сегмент которого можно найти на наших собственных форумах SitePoint !), Которое всегда готово помочь вам с любыми камнями преткновения, и Текущие версии PHP довольно стабильны и надежны.
Преимущества:
- Довольно прост в освоении, особенно для разработчиков, имеющих опыт работы с C / C ++, Java или Perl.
- Активное пользовательское сообщество, готовое помочь вам начать работу.
- Все встроено прямо в язык.
- Это бесплатно!
- Кросс-платформенный.
Недостатки:
- Этот язык был разработан, чтобы быть дружественным к программисту, что, к сожалению, делает его немного менее дружественным для непрограммистов.
Целевой разработчик:
Веб-разработчики с ограниченным бюджетом, которые любят простое программирование (например, JavaScript) или не против узнать, как это сделать. PHP дает вам большие возможности с относительно простой структурой кода, но может не подходить для приложений самого высокого уровня, которые не поддерживаются встроенными функциями PHP.
Джава
Java, пожалуй, самая мощная платформа для серверной веб-разработки на сегодняшний день. От небольших программ Java (сервлетов), которые обрабатывают запросы веб-страниц, до страниц JavaServer Pages (JSP), сочетающих HTML с пользовательскими тегами и кодом Java, и даже вплоть до Enterprise JavaBeans (EJB) — программных компонентов со сложными возможностями для беспрепятственной передачи информации между серверами и Java для сетей распределенных приложений — действительно горячая технология.
Опытный веб-разработчик Java может легко получить зарплату, превышающую 100 000 долларов США в год. Как и следовало ожидать, есть причина для этого: Java не легка в изучении! В отличие от языков сценариев, таких как Perl, ASP и PHP, Java — это полноценный язык программирования, способный писать большие программы! Кто-то с небольшим опытом программирования может рассчитывать получить практические знания языка Java через месяц или два с помощью хорошей книги, а через месяц, вероятно, сможет освоить основы простого программирования на стороне сервера. с Java. Теперь, если вы заинтересованы в том, чтобы сделать карьеру в программировании на стороне сервера, это может показаться не таким уж большим, но если вы просто хотите, чтобы что-то работало быстро, более простой язык, такой как PHP, может заставить вас работать через неделю или Меньше!
Java известна своей философией Write One, Run Anywhere (WORA), и действительно Java может работать на всех основных веб-серверах и во всех основных операционных системах. Веб-приложения Java также могут быть объединены в стандартные файлы архива веб-приложений (.WAR), которые затем могут быть установлены на любом веб-сервере с поддержкой Java, независимо от платформы. Создатели Java планировали использовать этот механизм для распространения коммерческих веб-приложений для использования на веб-серверах Java; однако, по моему опыту, веб-приложения Java, как правило, представляют собой индивидуальные решения сложных проблем, а не продаваемые решения, которые можно купить через Интернет.
Многие разные производители выпускают плагины, которые позволяют веб-серверам, таким как Apache и IIS, запускать веб-приложения Java, и, хотя большинство из них бесплатны для личного использования и разработки, за большинство необходимо заплатить, прежде чем вы сможете использовать их в коммерческих целях. Интернет сайт.
Преимущества:
- Чрезвычайно мощный и масштабируемый.
- Кросс-платформенный.
- Большинство плагинов Java-сервера бесплатны для личного использования и в целях разработки.
Недостатки:
- Java требует много усилий для изучения. Даже не начинайте, если вы не серьезно относитесь к изучению объектно-ориентированного программирования.
- Большинство подключаемых модулей сервера Java должны быть оплачены, если они будут использоваться для размещения коммерческого веб-сайта.
Целевой разработчик:
Серьезные разработчики, которым нужна максимальная мощность, гибкость и масштабируемость для своих веб-приложений, и не стесняйтесь платить за это пота, слез и времени разработки.
Резюме
В этой статье мы рассмотрели относительные возможности, преимущества и недостатки всех основных вариантов разработки на стороне сервера, доступных сегодня:
- Perl : зрелый кроссплатформенный язык, который трудно понять
- ASP : мощная платформа Microsoft на базе Windows
- Cold Fusion : мощный вариант на основе тегов для непрограммистов
- PHP : кроссплатформенная альтернатива с открытым исходным кодом с множеством встроенных функций
- Java : максимальная мощность и гибкость для серьезных программистов
Будем надеяться, что вы вооружены всеми этими опциями, и вы чувствуете себя лучше подготовленными к тому, чтобы принять решение о том, что нужно изучить и использовать для вашего следующего проекта. Если вам все еще нужны какие-то рекомендации, не забудьте заглянуть на наш серверный форум по интернет-разработке на форумах SitePoint . Мы будем рады помочь!