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
Объектно-ориентирован Да Да Да
Сборка мусора Да Да Да
Инструкция 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 с.