Сравнительный анализ языков программирования для разработки веб-приложений

Автор: Лукин И.К.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Основной раздел

Статья в выпуске: 2 (20), 2017 года.

Бесплатный доступ

В статье рассматриваются вопросы, связанные с выбором языка программирования для разработки веб-приложений. Рассматриваются три высокоуровневых языка программирования: php, ruby, python.

Веб-программирование, веб-приложение

Короткий адрес: https://sciup.org/140270729

IDR: 140270729

Текст научной статьи Сравнительный анализ языков программирования для разработки веб-приложений

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

Главной областью применения PHP является написание программ-сценариев, которые работают на стороне сервера. Помимо различных операций с содержимым html-документов, с помощью PHP можно форматировать HTTP-заголовки, устанавливать cookie, управлять аутентификацией, а также перенаправлять пользователя на другие страницы. PHP предоставляет возможности по доступу к базам данных, позволяет проводить интеграцию с различными внешними библиотеками [1].

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

PHP прекрасно подходит для разработки веб-приложений, но постоянным хранением информации не занимается. Всю информацию хранят сторонние сервисы – файловая система, различные базы данных и другие хранилища. PHP + СУБД - это мощная комбинация, позволяющая существенно упростить разработку веб-приложений и создавать более сложные веб-сайты [2].

Преимущества PHP:

  •    Легок в освоении на всех этапах

  •    Поддерживается большим сообществом пользователей и разработчиков

  •    Имеет развитую поддержку баз данных

  •    Имеется огромное количество библиотек и расширений языка

  •    Может использоваться в изолированной среде

  •    Предлагает средства организации веб-сессий, программный интерфейс расширений

  •    Портирован под большое количество аппаратных платформ и операционных систем

  •    Поддержка большинства возможностей ООП

Недостатки PHP:

  •    Не подходит для создания системных приложений или системных компонентов

  •    Глобальные параметры конфигурации влияют на базовый синтаксис языка, что затрудняет настройку сервера и ставит приложения в зависимость от конкретного окружения

  •    Большое количество устаревших и дублирующих функций, оставленных для совместимости со старыми версиями, смесь процедурных и объектных подходов, отсутствие единого стандарта наименования функций и параметров

  •    Невозможность многопоточной и асинхронной работы (отчасти решается сторонними модулями)

  •    Веб-приложения, написанные на PHP, зачастую имеют проблемы с безопасностью

Язык Ruby

Ruby - интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» (механизм, обеспечивающий механическое управление памятью без вмешательства программиста) и многими другими возможностями [3].

Особенности языка:

  • 1)    Простое и быстрое программирование:

  •    Отсутствие необходимости объявления переменных

  •    Переменные не типизированы

  •    Простой и последовательный синтаксис

  •    Автоматическое управление памятью

  • 2)    Объектно-ориентированное программирование:

  •    Всё является объектом

  •    Классы, наследование, методы и т.д.

  •    Mixin при помощи модулей (как и в PHP, множественное наследование в Ruby не поддерживается, но может быть достигнуто при помощи mixins – «примесей»)

  •    Итераторы и скобочные операции

  • 3)    а также:

  •    Целые числа с различной разрядностью

  •    Модель обработки исключительных ситуаций

  •    Динамическая загрузка

  •    Потоки

  •    Возможность прямого осуществления системных вызовов

  •    Мощная поддержка операций со строками и регулярными выражениями

  •    Немедленная обратная связь во время разработки

Преимущества Ruby:

  •    Реализует концептуально чистую объектно-ориентированную парадигму

  •    Предоставляет продвинутые методы манипуляции строками и текстом

  •    Легко интегрирует в свои программы высокопроизводительные серверы баз данных (DB2, MySQL, Oracle и Sybase)

  •    Простой и чистый синтаксис

  •    Имеет простой программный интерфейс для создания многопоточных приложений

  •    Имеет продвинутые средства для работы с массивами

  •    Возможности языка можно расширить при помощи библиотек, написанных на C или Ruby

  •    Зарезервированные слова могут являться идентификаторами, если это не создаёт неоднозначности для парсера

  •    Встроенный отладчик

Недостатки Ruby:

  •    Высокая сложность изучения языка

  •    Информационных ресурсов, посвящённых Ruby, недостаточно

  •    Ruby менее производителен по сравнению со многими другими языками, применяемыми в веб-разработке

  •    Ruby относительно медленно разрабатывается и развивается

Язык Python

Язык программирования Python используется для решения широкого спектра проблем и задач, в том числе для создания веб-сайтов.

Элегантный дизайн и эффективный, дисциплинирующий синтаксис этого языка облегчают программистам совместную работу над кодом. Python – язык, возможности которого изначально предполагалось унаследовать от нескольких, разных языков программирования, что позволяет совмещать процедурный подход к написанию кода с объектноориентированным и функциональным.

С точки зрения веб-разработки Python предоставляет простые и удобные методы для генерирования набора статических HTML-страниц, которые обслуживаются веб-сервером. Например, сценарий может принимать некоторое содержимое и добавлять к нему элементы оформления, типичные для веб-сайта (боковую панель, рекламу, стили и т.д). Все это фактически сводится к работе с файлами и обработке текста. Скрипты написанные на языке программирования Python, могут применяться для создания динамических сайтов, т.е. в связке СУБД + JavaScript (Ajax) + Python. Сайт может работать на базе обычного вебсервера, такого как Apache, и отправлять данные из форм и запросов сценарию на языке Python для обработки и возвращения результата работы [4].

Преимущества Python:

  •    Хорошо читаемый код вследствие особенностей синтаксиса

  •    Предоставляет средства быстрого прототипирования (создание опытных образцов или работающих моделей системы) и динамической семантики (конструкция языков программирования)

  •    Большое русское сообщество

  •    Множество полезных библиотек и расширений языка, которые можно легко использовать в проектах благодаря предельно унифицированному механизму импорта и программным интерфейсам

  •    Хорошо продуманные и легкие в использовании механизмы модульности (функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом)

  •    Абсолютно всё в Python является объектами в смысле ООП, но при этом объектный подход не навязывается программисту

  •    При высоких нагрузках на приложения использующих Python, производительность будет выше, чем в приложениях на Ruby, Java или PHP

Недостатки Python:

  •    Несовершенная поддержка многопоточности

  •    На Python создано не так уж много качественных программных проектов по сравнению с другими универсальными языками программирования, например, PHP, Java или Ruby

  •    Изначальная ограниченность средств для работы с базами данных

Сравнение backend языков

В табл. 1 представлена расшифровка сокращений табл. 2

Таблица.1

Расшифровка сокращений табл. 2

+/-

Возможность поддерживается не полностью

-/+

Возможность поддерживается очень ограниченно

В табл. 2 представлено сравнение backend языков

Таблица.2

Сравнение backend языков

PHP

Ruby

Python

Предназначение

PHP был создан специально для веб-разработки и создания динамических вебстраниц

Ruby был разработан, чтобы сделать программирование гибким и удобным

Python был разработан, чтобы подчеркнуть производительность и читабельность кода

Год создания

1995

1995

1991

Разработан под влиянием

С, PERL, JAVA, C++, TCL

ADA, C++, CLU, DYLAN, EIFFEL, LISP, PERL, PYTHON

ABC, ALGOL 68, C, C++, ICON, JAVA, LISP, PERL

На сколько прост в изучении (по 10 бальной шкале)

6

4

5

Объектноориентирован

Да

Да

Да

Сборка мусора

Да

Да

Да

Инструкция goto

+/

1*

-/+

2*

Нет

Возможность

Да

Да

Да

компиляции

Продолжение табл. 2

Инструкция break

Да

Да

Да

“Ленивые” вычисления

-/+

-/+

3*

Да

Многомерные

массивы

Да

Да

Да

Цикл foreach

Да

Да

Да

Множественное

наследование

Нет

Нет

Да

Макросы

Нет

+/-

Нет

Именованные

параметры

Нет

Да

Да

Наличие библиотек для работы с графикой и мультимедиа

Да

Да

Да

  • 1* - Целевая метка должна находиться в том же файле, в том же контексте.

  • 2* - В языке goto нет, но есть библиотека реализующая его.

  • 3* - В языке “ленивых” вычислений нет, но есть библиотека реализующая

их.

Список литературы Сравнительный анализ языков программирования для разработки веб-приложений

  • Колисниченко, Д. Н. PHP и MySQL. Разработка Web-приложений; БХВ-Петербург, 2015. - 593 с.
  • Сафронов, М. Н. Разработка веб-приложений в Yii 2; ДМК-Пресс, 2015. - 392 с.
  • Флэнаган, Д. Мацумото, Ю. Язык программирования Ruby; Питер, 2011. - 496 с.
  • Лутц, М. Python. Карманный справочник; М.: Вильямс, 2015. - 320 с.
Статья научная