Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
726
62
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
PHP / RUBY / PYTHON / ВЕБ-ПРОГРАММИРОВАНИЕ / ВЕБ-ПРИЛОЖЕНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лукин И.К.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ»

11. Валява С.О., Бородай В.А. Временная детерминация как индикатор модели стратегического управления // Теория и практика современной науки. 2016. № 10 (16). С. 65-68.

12. Borodai V. Crowd recruiting as the competence assessment of applicants service company//International Scientific Review of the Problems and Prospects of Modern Science and Education // International Scientific Review № 1 (32) / XXX International Science Conference (Boston. USA, 21-22 January, 2017). 118 p.

13. Бородай В.А. Эволюция системы управления сервисом в XXI веке: конгруэнтность искусственного интеллекта и творчества // Наука сегодня: постулаты прошлого и современные теории: V межд. научно-практическая конф. 2016. С. 3-7.

14. Шостенко К.С., Бородай В.А. Стратегическое управление - альтернативы современного инструментария // Экономика и социум. 2016. № 2 (21). С. 1330-1333.

15. Бородай В.А. Эмоциональная компетентность - когнитивные особенности // Экономика современного общества: актуальные вопросы антикризисного управления. - Саратов: Академия бизнеса. 2015. С. 28-31.

16. Сивокоз Н.В., Бородай В.А. Фасилитация как фактор эффективной системы управления современной сервисной компании // Экономика и социум. 2016. № 11-2 (30). С. 277-280.

17. Borodai V.A. Innovative technology - a strategic approach to corporate business travel // International conference on modern researches in science and technology: materials of the I international research and practice conference January 31th, 2017, Berlin, Germany: Scientific public organization "Professional science", 2017. 711 p.

18. Бородай В.А. Торговля в современном обществе: социально-институциональный анализ: моногр. - Ростов-на-Дону.: ИПО ПИ ЮФУ, 2008.

УДК 004.432.2

Лукин И.К. студент магистратуры 2 курса направление подготовки «Информационные системы и технологии» Поволжский Государственный Университет Телекоммуникаций и Информатики

Россия, г. Самара СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ В статье рассматриваются вопросы, связанные с выбором языка программирования для разработки веб-приложений. Рассматриваются три высокоуровневых языка программирования: php, ruby, python.

Ключевые слова: php, ruby, python, веб-программирование, веб-

приложение.

Язык PHP: Hypertext Preprocessor

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

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

Таблица.1

+/-

-/+

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

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

В табл. 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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

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

Инструкция goto +/-1* -/+ 2* Нет

Возможность компиляции Да Да Да

Инструкция break Да Да Да

"Ленивые" вычисления -/+ -/+ 3* Да

Многомерные массивы Да Да Да

Цикл foreach Да Да Да

Множественное наследование Нет Нет Да

Макросы Нет +/- Нет

Именованные параметры Нет Да Да

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

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

2* - В языке goto нет, но есть библиотека реализующая его. 3* - В языке "ленивых" вычислений нет, но есть библиотека реализующая их.

Использованные источники:

1. Колисниченко, Д. Н. PHP и MySQL. Разработка Web-приложений; БХВ-Петербург, 2015. - 593 с.

2. Сафронов, М. Н. Разработка веб-приложений в Yii 2; ДМК-Пресс, 2015. -392 с.

3. Флэнаган, Д. Мацумото, Ю. Язык программирования Ruby; Питер, 2011. - 496 с.

4. Лутц, М. Python. Карманный справочник; М.: Вильямс, 2015. - 320 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.