Сравнительный анализ языков программирования Python и PHP

Автор: Дерюгина Елена Олеговна, Борсук Наталья Александровна, Козеева Ольга Олеговна

Журнал: Вестник образовательного консорциума Среднерусский университет. Информационные технологии @vestnik-university

Статья в выпуске: 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)
Статья научная