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

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

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

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

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

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

Языки программирования, сравнительный анализ

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

IDR: 140129990

Comparative analysis of the Python and PHP programming languages

This article contains the review of the main opportunities of the Python and PHP programming languages, their application for the solution of various tasks. The comparative analysis of their speed on the example of implementation of the program in which code similar syntactic designs and an identical data set on an entrance are used is provided as a practical part of work; also the size of executable files of the program is compared. By results of the analysis the conclusion allowing estimating in general efficiency of application of the learned languages and the output data on their properties obtained within the put experiment is drawn

Текст научной статьи Сравнительный анализ языков программирования 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)