Сравнительный анализ языков программирования Python и PHP
Автор: Дерюгина Елена Олеговна, Борсук Наталья Александровна, Козеева Ольга Олеговна
Статья в выпуске: 1 (9), 2017 года.
Бесплатный доступ
В данной статье содержится обзор основных возможностей языков программирования Python и PHP, их применение для решения различных задач. В качестве практической части работы приводится сравнительный анализ их быстродействия на примере выполнения программы, в коде которой используются схожие синтаксические конструкции и одинаковый набор данных на входе; также сравнивается размер исполняемых файлов программы. По результатам анализа делается вывод, позволяющий в целом оценить эффективность применения изучаемых языков и выходные данные об их свойствах, полученные в рамках поставленного эксперимента
Языки программирования, сравнительный анализ
Короткий адрес: https://sciup.org/140129990
IDR: 140129990
Текст научной статьи Сравнительный анализ языков программирования Python и PHP
В настоящее время практически все области человеческой деятельности автоматизированы в плане выполнения каких-либо расчетов, проектирования или моделирования тех или иных процессов. Сюда можно отнести и различные области экономики с присущими им расчетами, анализом движения денежных средств, построения схем баланса, вычисление ПНЛ и т.д. Все подобные расчеты можно запрограммировать, либо использовать существующие программные и учетные решения. Однако, любое такое действие для наглядности требует хорошо воспринимаемого пользовательского интерфейса, быстроты и точности обработки данных. Необходимо учитывать и front-end, и back-end составляющие разра- ботки подобных систем. Языков программирования существует достаточно много. Существует множество различных классификаций языков про-граммирования: по уровню семантики (языки высокого и низкого уровня), по используемым парадигмам программирования, по безопасности и по ряду других характеристик. Совокупность требований к разрабатываемой системе и определяет выбор средств ее реализации на этапе проектирования; учитываются требования к ее быстродействию, надежности, информационной безопасности.
Цель данной работы – провести сравнительный анализ свойств языков Python и PHP. Условно можно разделить эту работу на две основные части:

-
• теоретическая часть, содержащая краткий обзор возможностей языков программирования и сферы их применимости;
-
• практическая часть, содержащая данные о проведенном эксперименте с приведением кода программ, выполняющих аналогичные действия, написанных на исследуемых языках, выходные данные и их непосредственный анализ, включающий сравнительную характеристику времени выполнения программы, объем исполняемых файлов и нагрузку на память ЭВМ.
В результате по полученным данным можно сделать обобщенный вывод о характеристиках языков и степени их различия.
Одним из распространенных средств разработки является высокоуровневый язык программирования Python. Python имеет поддержку различных парадигм программирования (структурного, объектно-ориентированного функциональное и других); в нем используется динамическая типизация переменных, обеспечивается периодическое освобождение памяти от неиспользуемых объектов. Python обладает достаточно лаконичным синтаксисом, с более высоким уровнем абстракции, по сравнению с PHP, и позволяет передать такое же количество информации в меньшем объеме исходного кода.
Python является языком общего назначения, поэтому может применяться практически в любой области разработки ПО (standalone, клиент-сервер, Web-приложения) и в любой предметной области. Кроме того, Python легко интегрируется с уже существующими компонентами, что позволяет внедрять Python в уже написанные приложения. [1]
Также Python обладает развитой системой модулей, как стандартных, также написанных на Python, а, следовательно, обладающих теми же преиму-ществами, такими как крос-сплатформенность, и позволяющих реализовывать наиболее общие задачи, так и специфических, применяемых в том случае, когда необходимо решать более широкий круг задач.
Ввиду широкого ряда функциональных возможностей Python может использоваться в самых различных сферах; с его помощью можно осуществлять автоматизированных информационных систем, разработку web-приложений, научных вычислительных комплексов, графических пакетов.
PHP – язык программирования общего назначения, созданный преимущественно для работы над web-приложениями, для генерации HTML-страниц и работы с базами данных. PHP обладает Си-подобным синтаксисом, также является мультипарадигмальным и кроссплатфор-менным, ядро PHP также реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта [2].
Динамические библиотеки PHP предоставляют широкие возможности для работы с базами данных, поддерживается DBX для работы на абстрактном уровне, стандарт ODBC; осуществляется коммуникация с использованием различных протоколов (IMAP, SNMP, POP3, HTTP и дру- гие); также PHP обеспечивает работу с сокетами, динамической графикой, криптографическими библиотеками. [3]
Наиболее широкое применение PHP находит при разработке web-приложений: подавляющее большинство сайтов и сервисов разработано именно с его помощью. Множество различных web-фреймворков и CMS-систем имеет в своей основе именно PHP.
Итак, Python и PHP в целом имеют схожие исходные характеристики. Необходимо рассмотреть их возможности при реализации конкретной задачи.
В качестве экспериментальной задачи рассматривается реализация весьма несложного и распространенного алгоритма сортировки «пузырьком». Входная последовательность содержит случайные целые числа в интервале от 0 до 1000 и формируется в отдельном PHP-скрипте, фрагмент которого представлен ниже:
for($i=0; $i<100; $i++)
{
$data[$i] = rand(0,1000);
}
Затем эта же последовательность копируется в исходный код. Поэтому в листинге программы не представлено формирование входных данных, а лишь указана часть уже заполненного массива.
Исходный код на языке Python:
import time import math import random
-
# Запуск таймера ---------------------------------------- null_point = time.time()
-
# Алгоритм сортировки --------------------------------- data=[683, 996, 439, … , 387, 968, 689]
for i in range(len(data)):
for j in range(len(data) – 1, i, -1):
if data[j] < data[j-1]:
data[j], data[j-1] = data[j-1], data[j]
-
# Стоп-таймер ------------------------------------------
- print(‘Runtime = ‘, time.time() – null_point)
Исходный код на языке PHP:
// Запуск таймера --------------------------------- $null_point = microtime(true);
// Алгоритм сортировки --------------------------
$data = array (683, 996, 439, … , 387, 968, 689);
for($i=0; $i { if($data[$i]>$data[$j]) { $temp = $data[$j]; $data[$j] = $data[$i]; $data[$i] = $temp; } } } // Стоп-таймер ----------------------------------- echo ‘Runtime = ‘.(microtime(true) – $null_point); ?> В результате работы программы на выходе были получены следующие данные, представленные в Таблице 1: Таблица 1. Выходные данные Измеряемые параметры/Язык программирования Python PHP Время выполнения (секунд) 0,49002504348754883 0,1380500793457 Загрузка памяти (из 4,9 ГБ) 0,2 МБ 0,3 МБ Из Таблицы 1 видно, что по быстродействию программа, написанная на Python, уступает аналогичной на PHP в 3,5 раза, однако, загружает память в 1,5 раза меньше. Необходимо подчеркнуть, что приведенные данные носят приближенный характер ввиду возможных погрешностей измерения характеристик при использовании методов с ограниченной точностью. Тем не менее они позволяют дать общее представление о производительности кода и в соответствии с поставленными задачами и требованиями, предъявляемыми к ним, сделать выбор в сторону того или иного языка. Можно также выделить, что PHP оправданно широко используется в web-программировании, учитывая скорость выполнения его скриптов. В целом полученные результаты соответствуют известным раннее выводам о характеристиках данных языков.
Список литературы Сравнительный анализ языков программирования Python и PHP
- Программирование на Python: Часть 1. Возможности языка и основы синтаксиса. URL: https://www.ibm.com/developerworks/ru/library/l-python_part_1/(дата обращения 31.03.2017)
- PHP at the core: Memory managament. URL: http://ua.php.net/manual/en/internals2.memory.management.php (дата обращения 31.03.2017)
- Возможности PHP. URL: http://www.php.su/php/?can (дата обращения 31.03.2017)