Языки веб-программирования: Клиентские и Серверные. Выбор метода решения задачи Серверные языки веб программирования

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

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

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

Спокойствие, сейчас коллективный разум сделает выбор за вас.

В первой части поговорим о языках веб-пространства. Какой предъязыковой расклад надо знать и каков порядок изучения? Об этом далее.

Передовая, тыл и неочевидный выбор

Первый выбор, который надо сделать - сфера ответственности.

Front-end разработчики
Иногда их еще называют веб-дизайнерами, но это неправильно. Задача front-end разработчика сводится к созданию интерфейса, он отвечает за то, чтобы веб-страница загружалась быстро, не тормозила и код на ней работал правильно.

Backend-разработчики
Люди, ответственные за скрытую от глаз функциональность и обработку данных. Их работа - написание серверного кода.

Full-stack специалисты
Они востребованы наибольшим образом просто потому, что способны в одиночку выполнить все пожелания заказчика.

Конечно, проще всего поставить себе задачу разобраться со всем, но это лишь рассеет ваше внимание на ранних этапах, а на более поздних вы и так познаете необходимость хотя бы поверхностного изучения всех процессов. Поэтому пойдём по порядку и начнём с front-end.

Лицо, которое надо продать

Самое главное, что не надо делать человеку, желающему стать front-end разработчиком, так это искать минимальный список предъявляемый список требований к специалисту. В этом случае велик риск наткнуться на статьи, подобные статье «Frontend-разработчики должны быть в теме всего ». Всё что там написано - абсолютная правда, но прийти к этому надо начиная с малого, а малое - это 3 основных кита frontend-а: HTML, CSS и JavaScript. Базу для дальнейшнего обучения вы можете получить на .

Ещё несколько лет назад, изучив HTML и CSS в формате нескольких умных книг, а JS на уровне jQuery, можно было всерьёз претендовать на позицию junior-a. Однако сегодня времена изменились, а требования сильно возросли. Впрочем, знания HTML и CSS по-прежнему можно уложить в пару хороших книг:

  • «Изучаем HTML5 » Брюс Лоусон, Реми Шарп,
  • «CSS. Рецепты программирования » Кристофер Шмитт.

На JavaScript придётся потратить достаточно много времени. Здесь мало будет изучить теорию, например по книге «JavaScript: Сильные стороны ». Необходимо несколько месяцев набивать руки и тренировать мозги на практике, в том числе используя упомянутый jQuery.

Кроме теоретических и практических знаний, front-end специалист должен очень хорошо знать последние интернет-тенденции и уметь профессионально их применять. Ведь это именно та зона ответственности, по которой подавляющее большинство заказчиков будет оценивать весь проект на момент сдачи.

Обработать, прикрутить и создать

Базовый язык для любого back-end разработчика - PHP. Это некоторая основа, знать которую в совершенстве, как и делать основным инструментом, совсем не обязательно, но на базовом уровне понимать обязаны. Для этого можно хотя бы внимательно изучить книгу «PHP: правильный путь ».

Что касается актуальных языков, то выбирать скорее всего придётся из Ruby и Python, причём выбор этот - чистая вкусовщина. Даже здесь на периодически вспыхивают споры, но даже в споре за удобство изучения однозначного победителя найти невозможно. По Python полезно будет прочитать книгу с незамысловатым названием «Изучаем Python », по Ruby - «Rails 4. Гибкая разработка веб-приложений ».

Ещё один язык из разряда must know - всё тот же JavaScript с его производными jQuery и Ajax. В данном случае интересует именно back-end разработка, поэтому тратить время на общее изучение языка не имеет смысла, а вот посещение ресурсов вроде блога Антона Шевчука может оказаться крайне полезным.

Ну и конечно потребуются знания в области баз данных. Как минимум, это означает изучение SQL, как максимум - опыт работы с популярными БД.

Один за всех

Правда профессии веб-разработчика в том, что так называемых «сферических» специалистов здесь практически нет, да и рядовые заказчики далеко не всегда понимают эти деления, поэтому в том или ином виде к full-stack-у придётся прийти довольно быстро. Соответственно перечитайте предыдущие 2 раздела, посетите ещё раз и начинайте грызть гранит программной науки.

Знания не о языках

Помимо самих языков, необходимо изучать все прилагающиеся к ним профильные надстройки. Особенно это касается JavaScript (AngularJS, Knockout, Backbone) и CSS (Bootstrap, Foundation). Кроме того вам необходимо набить руку с системами контроля версий Git и SVN.

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

Потому как популярность в разаботке интерфейса веб-сайтов популярность JavaScript выросла, разработчики нашли способ использовать его как серверный язык. Node использует тот же синтаксис JavaScript, но уже на веб-сервере.
Фреймворки – Express & Hapi

Python

Python очень популярен в университетах, его преподают в качестве первого языка программирования, и он широко используется в реальных проектах. У него огроменое количество библитек, в том числе и для работы в сети.
Фреймворк – Django

PHP

В отличие от других языков, которые пришлось адаптировать для использования в Интернете, PHP изначально разрабатывался для веб-разработки с самого первого дня. Многие CMS, в том числе WordPress, написаны на PHP.
Фреймворки – Laravel & Symfony

Ruby

Ruby позиционирует себя как элегантный и продуктивный язык программирования. Популярный в Японии в 90-х годах, Ruby стал распространяться в других странах после того, как была создан широко известный фреймворк Ruby on Rails.
Фреймворк – Ruby on Rails

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

  • Перевод
  • Tutorial

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

По статье разбросано множество ссылок на бесплатные и важные ресурсы. Для простоты я собрал их в PDF и разбил по категориям. Мне не платят за упоминания сайтов, ссылки на которые я привёл – я всего лишь хочу порекомендовать вам лучшие ресурсы, чтобы помочь вам достичь вашей цели.

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.

2. Попробуйте всего понемногу, а затем выбирайте специализацию.

Деньги – не самое важное. Вам необходимо ЛЮБИТЬ ваше занятие! Но вы не узнаете, что вам нравится, пока не попробуете.


Найдите свою страсть, а потом монетизируйте её

Руководство поможет вам ознакомиться с как можно большим количеством областей веб-разработки как можно быстрее. А потом поможет вам выбрать специализацию в той области, что вам понравилась. Сначала вы не достигнете совершенства ни в чём – вы выучите основы, и потом продолжите изучение. Найдите свою страсть, и я покажу вам, как двигаться дальше.

Я решил писать код. Мне нравится веб. Я не знаю, с чего начать


У вас всё получится!

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

Сначала вам нужно быстро познакомиться с основами всех областей веб-разработки («полный цикл»). Обучение будет разнообразным, но неглубоким. Это нужно для того, чтобы найти область, которая вам нравится, а также приобрести основные навыки в разных областях. Тогда вы сможете понимать и работать с большим набором задач, вне зависимости от того, на чём вы остановите свой выбор.

Изучите основы HTML

Язык разметки гипертекста, Hypertext Markup Language (HTML), контролирует содержимое и разметку того, что вы видите в браузере. Начав с него, вы получаете интерфейс пользователя, с которым можно взаимодействовать, и видите результаты работы своего кода. При изучении более сложных языков его важность будет возрастать. Вам ведь не нужно кодить вслепую.

Вот, что вам нужно изучить на тему HTML:

Я уже знаю основы HTML

Круто! Это очень важный шаг. Теперь изучите основы JavaScript.

Изучите основы JavaScript

JavaScript – язык веба, и все основные браузеры (Chrome, Firefox, Safari, IE, множество других) поддерживают его. Каждый сайт, каждое веб-приложение, которым вы пользовались, скорее всего, содержит огромное количество JS-кода. Не говоря уже о том, что язык набирает популяность и на других платформах – сервера, настольные компьютеры, другие устройства.

Пока вам нужны основы, и для этого подойдут следующие ресурсы:

Я знаю основы JavaScript и HTML

Потрясающе! Теперь добавим к вашим навыкам CSS

Изучите CSS

CSS, или Cascading Style Sheets (каскадные таблицы стилей). Используются для настройки внешнего вида элементов HTML на странице. Ознакомьтесь с бесплатным обучающим материалом от Mozilla, а затем обращайтесь к ресурсу CSS-Tricks для решения самых сложных проблем (справа вверху есть поиск).

Переходим к бэкенду

До сих пор мы с вами рассматривали то, что называют «фронтендом» веб-разработки. Вы ознакомились с основными языками, работающими в браузере. Пора переходить к бэкенду – коду, работающему на сервере. Не волнуйтесь, сервер вам не понадобится – ваш компьютер справится с этим.

Языков для бэкенда масса, но поскольку вы знакомы с JavaScript, я порекомендую изучить использование Node.js. Он позволяет запускать JS-код на сервере, а не в браузере.

В дополнение к этому вам необходимо изучить Express и MongoDB.

Express
Это библиотека, с помощью которой Node.JS может работать веб-сервером (слушать запросы от страниц и отправлять им ответы).
MongoDB
Это база данных, позволяющая вам хранить и извлекать информацию.

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

Мне нужно выбрать между «фронтенд», «бэкенд» и разработкой полного цикла

После того, как вы попробовали оба варианта разработки, настало время делать выбор. Если вы не успели их попробовать – обратитесь к предыдущему разделу статьи, чтобы заполнить пробелы в ваших знаниях.

К этому моменту вы писали два типа кода. Один предназначен для взаимодействия с пользователем, другой – с данными. Что вы предпочитаете?

Взаимодействие с пользователем? Поздравляю, вы фронтенд-разработчик!

Взаимодействие с данными? Поздравляю, вы бэкенд-разработчик!

Оба? Поздравляю, вы разработчик полного цикла!

Ничего не понравилось? Поздравляю, веб-разработка – это не для вас. Возрадуйтесь, что вы поняли это сейчас, и не потеряли кучу времени и денег. Не готовы сдаваться? Может, вам не попался язык, который пришёлся бы вам по душе? Попробуйте изучить другие языки в разделе «Я хочу быть бэкенд-разработчиком».

Я хочу быть разработчиком полного цикла

Круто. Вам нужно ознакомиться со всем содержимым разделов «Я хочу быть бэкенд-разработчиком» и «Я хочу быть фронтенд-разработчиком».

Я хочу быть фронтенд-разработчиком и я знаю основы JavaScript, HTML и CSS

Для эффективной работы фронтенд-разработчиком вам необходимо в совершенстве овладеть HTML, CSS и клиентским JavaScript. Также вам нужно будет хорошо разобраться в нескольких важных фреймворках. Вы приобретёте навыки, которые работодатели и клиенты ожидают найти в разработчиках фронтенда.

К этому моменту вы уже должны знать основы HTML. В противном случае вернитесь к разделу «Изучите основы HTML».

Изучите промежуточный и продвинутый HTML
Ознакомьтесь с обучающим материалом по промежуточному HTML, а затем – по продвинутому .
Изучите продвинутый клиентский JavaScript


Отличная серия книг по JS, при этом бесплатная

Для поднятия вашего уровня владения JavaScript, я рекомендую серию книг «You Don’t Know JS» за авторством Кайла Симпсона. Автор выложил всю серию в онлайн совершенно бесплатно:

Кроме того, вашим лучшим другом должен стать и MDN JavaScript .

[Также совершенно бесплатно вам доступен превосходный перевод отличной книги "Выразительный JavaScript " - прим.перев.]

Знать «троицу фронтенда», HTML, CSS и JavaScript – это, конечно, здорово. Но для зарабатывания денег придётся вам познакомиться с некоторыми фреймворками.

Изучите jQuery
Это самая популярная библиотека JS всех времён. Хотя из-за некоторых новых фреймворков важность jQuery чуть поуменьшилась, если вы ищете работу, велика вероятность, что jQuery будет присутствовать в описании необходимых навыков (и упоминаться на собеседовании) ещё много лет.

Рекомендую изучить jQuery при помощи материалов FreeCodeCamp – это быстрый и эффективный метод. После этого отправляйтесь на официальный обучающий сайт – там вы найдёте дополнительные инструкции.

Изучите популярный JS-фреймворк
Фреймворки делают работу с определённым языком или технологией легче, поскольку решают наибольшие проблемы, существующие у выбранной технологии. JavaScript очень благотворно повлиял на разработку и популяризацию фреймворков.

Чуть ли не раз в неделю появляется новый фреймворк, который прочат на место нового стандарта разработки. Вам нужно будет прошерстить сайты с вакансиями и немало погуглить, чтобы выяснить, какой фреймворк популярен на вашем рынке. Также рекомендую инструмент от Hacker News по оценке тенденций рынка вакансий.

Во время написания этой статьи следующие фреймворки пользовались популярностью:

Выбрав наиболее подходящий фреймворк и хорошенько ознакомившись с ним, стоит изучить идущий в паре с ним CSS-фреймворк. Два крупнейших игрока на этом рынке сегодня – Bootstrap и Material Design.

Bootstrap
Bootstrap сделали разработчики Twitter, и он уже довольно взрослый и популярный. Версии Bootstrap существуют для Angular, Angular 2 и React.
Material
Material – это набор правил дизайна, разработанный в Google. Он набирает популярность, существуют его версии для Angular и React. Поскольку Angular – это тоже детище Google, сочетается Material с ним превосходно.

Вот вам несколько ссылок:

Поздравляю! У вас есть ключевые навыки фронтенд-разработчика!


Вы только посмотрите на него!

Я хочу быть бэкенд-разработчиком

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


TIOBE Index of Programming Languages, www.tiobe.com/tiobe_index?page=index

Концентрируйтесь на языках, чьи названия я обвёл зелёной рамкой. Если вы не знаете их, начинайте сверху таблицы и идите вниз. Останавливайтесь, когда найдёте то, что вам нравится, и копайте вглубь!

Если вы знакомы с одним из отмеченных зелёным цветом языков, и он вам нравится – концентрируйтесь на нём.

Подкачайте необходимые для интервью умения
Вам нужно подготовиться не только к написанию кода. В хорошей статье с Life Hacker описано много полезной и ценной информации.
Главное – закрепиться на рынке
Не сильно переживайте насчёт получения работы мечты у работодателя мечты с зарплатой мечты. Сначала просто добейтесь получения работы, где вы будете писать код за деньги. Получив больше опыта, сможете планировать следующий шаг.
Хочу быть фрилансером
Сам себе хозяин – это хорошо, но это одновременно и огромное давление, и большие сложности. Лучший источник информации по фрилансу из всех, что я видел - DoubleYourFreelancing.com . У него есть серия статей , которые помогут вам стать фрилансером лучше, чем это получилось бы у меня. Читайте.

Ещё один вариант, если вы в себе уверены – сервис Toptal . Они принимают лишь 3% из всех, кто подаёт заявки, и этот процесс очень сложен, но если вы попадёте туда – у вас будет доступ к хорошо оплачиваемым работам, над которыми вы сможете трудиться удалённо.

Я начал работу, но чувствую, что зашел в тупик
Понимаю. Это нелегко, и если кто-то говорил вам обратное – он либо этим не занимался, либо пытается выманить у вас деньги. Если вы чувствуете, что зашли в тупик, попробуйте следующие варианты:
Освежите ваше первоначальное намерение
Спросите себя, запишите на бумаге, почему вы решили идти по этому пути. В силе ли всё ещё ваш ответ? Если да – то зачем останавливаться? Вперёд!

Для решения задачи необходимо сделать следующее:

1. спроектировать ресурс, который бы смог быстро обрабатывать и передавать данные;

2. выбрать базу данных для хранения информации;

3. разработать карту сайта для отображения данных.

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

Серверные языки программирования

PHP - это широко распространённый открытый язык скриптинга (сценариев) общего назначения, который создан специально для Web и который можно внедрять в HTML. Его синтаксис происходит от C, Java и Perl и лёгок для понимания и изучения.

Необходимо обратить внимание на отличие способа совмещения выполняемого кода и презентационной части в скрипта на языке PHP от скриптов, написанных на языках Perl или C - вместо написания программы с большим количеством команд для вывода HTML, пишется HTML-скрипт с некоторым количеством встроенного кода для выполнения каких-либо действий (в данном случае - для вывода некоторого текста). Код PHP заключён в специальные начальный и конечный тэги, что позволяет входить в и выходить из "режима PHP", причём делать это именно там, где это необходимо.

PHP отличается от других подобных языков, тем, что его интерпретатор встраивается непосредственно в web-сервер, обслуживающий клиентские запросы и результат выполнения скрипта в виде сформированного документа в формате HTML, отсылается непосредственно запросившему его клиенту в сеансе сетевого соединения, инициированным web-браузером, отправившим исходный запрос. Конечный пользователь не имеет возможности определить исходный код PHP скрипта, что тем самым повышает надёжность от атак злоумышленников, и способствует недоступности данных извне. Также существует возможность скрыть тип выполняемых запросов, а следовательно и язык, на котором написан скрипт приложения, от пользователя, специально сконфигурировав web-сервер. В этом случае злоумышленнику предоставляется меньше возможностей по определению программного окружения в котором работает серверное приложение. Данный способ совершенно не влияет на конечную производительность web-приложения и всячески приветствуется .

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

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

PHP в основном сориентирован на серверный скриптинг, поэтому может делать всё то, что делают CGI-программы: сбор данных форм, динамическую генерацию содержимого страницы или приём и отправку cookie. Но функциональность PHP намного шире.

Скрипты PHP главным образом применяются в следующих сферах:

Серверный скриптинг. Это наиболее традиционная и главная сфера применения PHP. Для выполнения этой работы необходимы три вещи. Разборщик кода PHP (CGI или серверный модуль), web-сервер и web-браузер. Сервер должен быть запущен и должен иметь соединение с инсталлированным и сконфигурированным PHP. Можно получить вывод PHP-программы в web-браузер, просматривая PHP-страницу на сервере.

Скриптинг командной строки. Можно создать и запустить PHP-скрипт на выполнение без сервера или браузера. Для этого необходим только разборщик PHP. Этот тип использования идеально подходит для регулярного выполнения скрипта с помощью программы cron (в *nix или Linux) или Task Scheduler (в Windows). Эти скрипты можно использовать также для задач простейшего текстового процессинга/обработки.

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

PHP может использоваться на всех крупных операционных системах (ОС), включая Linux, многие варианты Unix (HP-UX, Solaris, OpenBSD и Mac OS X), Microsoft Windows, RISC OS и, возможно, другие, что не создает проблем при переходе от платформы к платформе. PHP имеет поддержку для большинства существующих web-серверов. Это ApacheHTTPD, Microsoft IIS, nginx и многие другие. Для большинства этих серверов PHP имеет модули. В других, поддерживающих стандарт CGI, PHP может работать как CGI-процессор.

Следуя из написанного выше, можно сделать вывод, что с помощью PHP можно получить свободу выбора ОС и web-сервера. Более того, можно также выбрать использование процедурного или объектно-ориентированного варианта программирования или их сочетания. Хотя не всякая стандартная возможность OOП реализована в текущей версии PHP, многие библиотеки кодов и большие приложения (включая библиотеку PEAR) написаны только с использованием OOП-кода.

В PHP программист не имеет ограничений в выводе ориентируясь только на HTML. PHP может выводить изображения, PDF-файлы, скрипты на языке JavaScript, клипы Adobe Flash (используя расширения libswf и Ming), генерируемые на лету. Легко можно выводить любой текст, включая XHTML, и любой другой XML-файл. PHP может автоматически генерировать эти файлы и сохранять их в файловой системе, формируя серверный кэш для динамического содержимого, или создания отчётов .

Одна из наиболее сильных и привлекательных черт PHP - поддержка им большого количества баз данных (БД). Создать web-страницу, работающую с БД невероятно легко.

Список поддерживаемых PHP библиотек доступа к БД достаточно широк и включает следующие популярные серверы и форматы:

PHP поддерживает взаимодействие с другими службами по таким протоколам, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (под Windows) и множество других. В случае отсутствия непосредственной программной реализации того или иного сетевого протокола в PHP, существует возможность открыть обычный сетевой сокет и взаимодействовать с удаленным сервисом согласно его протоколу . Другой популярной технологией серверного скриптования является ASP. ASP по своей сути не является языком программирования, это акроним для Active Server Pages, в действительности, в программах ASP используется VBScript или JScript. Наибольшим недостатком ASP является то, что он сам по себе является проприетарной системой, которая используется исключительно на Microsoft Internet Information Server (IIS). Это ограничивает его применение серверами на платформе Windows.

Считается, что ASP громоздок и работает медленнее, чем PHP, а также менее устойчив к внешним атакам. Одним из преимуществ ASP можно считать использование языка программирования VBScript для написания сценариев, который, относительно легко освоить, будучи знакомым с программированием на Visual Basic. Так-же поддержка ASP по умолчанию встроена в web-сервер IIS, что упрощает подготовительную стадию разработки приложений с его использованием .

Еще одной интересной альтернативой PHP является язык программирования Perl. Наиболее важным преимуществом PHP по сравнению с Perl является то, что PHP был разработан для скриптинга на web, а перед Perl ставились более широкие задачи, в том числе и скриптинг на web, поэтому он получился намного более сложным. Главное отличие работы интерпретаторов PHP и Perl - постоянное присутствие в памяти первого интерпретатора, через который просто проходят скрипты по мере их вызова, а сформированная HTML страница - отсылается клиенту. Второй интерпретатор загружается в память и выгружается по мере необходимости, причём для каждого скрипта вызывается один интерпретатор, что может повлиять на производительность сервера.

Гибкость и сложность синтаксиса Perl облегчает написание кода, но делает его трудно читаемым. PHP имеет более однозначный и строгий формат без потери гибкости. PHP легче встраивается в существующий HTML, нежели Perl. PHP имеет почти такую же хорошую функциональность, что и Perl: конструкции, синтаксис и т д. без усложнения Perl. PHP развивается быстрее Perl, с каждой новой версией приобретает новые функции и более гибкий синтаксис, а также улучшается стабильность и безопасность. Это подтверждает тот факт, что в глобальной сети сейчас присутствует множество проектов, которые написаны на PHP и работают быстро, без сбоев. Попробуем обобщить всё, что касается преимуществ PHP, которых нет в Perl:

Контекстно-зависимые include, которые видят переменные верхнего уровня;

Расширенные теги - что и называется удобным встраиванием в HTML;

Высокая скорость работы с БД и огромное количество поддерживаемых баз данных, где Perl по скорости проигрывает;

Встроенная поддержка XML в PHP;

Возможность менять заголовки ответа в любого места программы, даже после того как уже были отправлены некоторые данные, за счёт буферизованного вывода;

Быстрые темпы развития и поддержка огромным количеством пользователей в Internet;

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

В последнее время также стали популярны некоторые новые языки программирования, как Ruby или Python, но они, как правило ориентированы на работу со своими каркасами приложений, такими как Ruby On Rails или Django, а поэтому применяются для создания полноценных сложных приложений, нежели для написания простых скриптов и требуют развертывания сервера приложений, работающим в связке в web-сервером, обслуживающим HTTP запросы. То же касается и достаточно старых технологий с применением языка Java, таких как JavaServletes или менее абстрактными JavaServerPages.

Ниже приведены результаты анализа преимуществ и недостатков (табл. 2.1).

Таблица 2.1 - Сравнение технологий серверного скриптинга

Предположим, Вы сделали простой Html-сайт и Вам хочется узнать мнение посетителей о размещённом контенте. Что для этого нужно? — правильно: дать возможность посетителям оставлять свои комментарии. Средствами HTML, или CSS этого достичь не удасться. И вот тут на помощь и приходят программы (их ещё называют скриптами) созданные при помощи языков веб-программирования.

Получается: веб-программированием можно назвать создание специальных программ для их использования в сети интернет. Существует довольно много языков программирования: C++, Perl, Java, Php, JavaScript, Python, Visual Basic и другие.

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

Поговорим немного о терминах. Вся информация в сети интернет хранится на удалённых компьютерах, которые называют серверами. Противоположной стороной выступают пользователи сети, ищущие нужную им информацию, их принято называть клиентам.

Клиентские языки программирования

Самые распространённые из них — JavaScript и Visual Basic. Особенность таких языков заложена в их названии. Программы, написанные на клиентских языках программирования обрабатываются на клиентском компьютере. Говоря проще, скрипты обрабатывает браузер, стоящий на Вашем компе. Из этой особенности вытекают их плюсы и минусы.

Самым большим плюсом является то, что нет необходимости отправлять веб-документ для обработки на сервер. Эта особенность значительно повышает скорость чтения скрипта. Уменьшается трафик,что экономит деньги и снижается нагрузка на сервер. Так же нет надобности ставить дополнительное программное обеспечение для обработки скриптов, т.к. их обрабатывают браузеры.

Недостатки клиентских языков программирования также вытекают из особенностей. Разные браузеры могут интерпретировать скрипты, исходя из своих индивидуальных предпочтений. Поэтому, результаты показа одних и тех же документов могут отличаться. Хотя, последнее время работа различных браузеров всё более унифицируется. Так же к недостаткам можно отнести и открытость кода таких языков для пользователей.

Серверные языки программирования

Серверные языки программирования соответственно работают на стороне сервера. Во взаимодействии с базами данных они поддерживают связь между пользователем и сервером. Получая запрос с адресом веб-документа от браузера, серверные программы связываются с базой данных. БД отдаёт информацию о веб-странице скриптам сервера, и те обработав её, отсылают для интерпретации браузеру клиента, который и выводит результат совместной работы на монитор.

Упрощённая схема такой работы изображена на рисунке.

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Как перераспределить размер локальных дисков Как перераспределить размер локальных дисков SymMover Переместить программу SymMover Переместить программу Скачать бесплатно программу для создания документов Word Скачать бесплатно программу для создания документов Word