УДК 004.9
Буковцова Е.А., магистр кафедра прикладной информатики и информационных технологий
НИУ «БелГУ» Россия, Белгород
СРАВНИТЕЛЬНЫЙ АНАЛИЗ И ВЫБОР ЯЗЫКА
ПРОГРАММИРОВАНИЯ ДЛЯ РЕАЛИЗАЦИИ СИСТЕМЫ АНАЛИЗА ФАКТОРОВ РАНЖИРОВАНИЯ WEB-РЕСУРСОВ
Аннотация: в данной статье рассматриваются языки программирования. Представлено описание их характеристик, преимуществ и особенностей, а также сравнение через систему поддержки принятия решений «Решение».
Ключевые слова: языки программирования, C#, Java, Python, СППР.
Bukovtsova E.A., master faculty of applied informatics and information technologies
National University of BelSU Russia, Belgorod
COMPARATIVE ANALYSIS AND SELECTION OF PROGRAMMING LANGUAGE FOR THE IMPLEMENTATION OF THE SYSTEM OF
ANALYSIS OF RANKING FACTORS OF WEB RESOURCES
Abstract: This this article discusses programming languages. A description of their characteristics, advantages and features is presented, as well as a comparison through the decision support system "Solution".
Key words: programming languages, C#, Java, Python, DSS.
В современном мире трудно себе представить жизнь без интернета, каждый день миллионы людей заходят в Интернет и ищут необходимую им информацию, товары и услуги. Для любого бизнеса Интернет, а в частности поисковые системы, является одним из эффективных способов привлечения клиентов. Поэтому происходит борьба между сайтами-конкурентами за право быть в ТОП-10 поисковых систем, а соответственно за потенциальных клиентов.
Для автоматизации процесса анализа сайтов было решено разработать систему, которая поможет владельцам бизнеса, маркетологам, рг-менеджерам и seo-специалистам проанализировать внутренние параметры сайта, влияющие на его выход в ТОП-10.
Для того чтобы разработать систему анализа ранжирования web-ресурсов необходимо выбрать язык программирования.
На сегодняшний день существует весьма богатое разнообразие языков программирования (порядка нескольких десятков). К одним их наиболее популярных, распространённых, со сложившимся обширным сообществом и большим количеством библиотек можно отнести следующие языки:
- Java;
- C#;
- PHP;
- Python.
Но каждый язык имеет свои преимущества и также свои особенности. Для наглядного отображения была составлена сводная таблица, представленная на рисунке 1.
Язык Преимущества Особенности
1 2 3
Java Возможность получения быстрого ответа (нет необходимости в компилировании, так как пнтерпретатор всегда готов для вмешательства в программу); Упрощенная отладка (можно прервать обработку пнтерпрегаторноп программы ). Дополнительный слой в виде виртуальной машины немного снижает производительность; Многословный код — иногда нужно наппсать больше кода, чем на других языках [11.
С# Наличие ООП; Кроссп латформенность; Автоматическая сборка мусора и управление памятью; Много библиотек и готовых решений; С# менее гибкий, так как в основном зависит от платформы ,NET [2].
PHP Высокая скорость работы; Бюджеты ость, экономичность; Простота освоения, простой синтаксис; Отличная совместимость и переносимость -php-коды работают одинаково хорошо с разными платформами. Невозможно создать десктопное приложение или какой-нибудь системный компонент; у приложений на PHP более низкая защищенность, чем с использованием других языков; слабая возможность работ ы с глобальными исключениями [4"|.
Pytho n Открытый код; Простота синтаксиса; Наличие мощных библиотек; Бесплатность; Сообщество поддержки. Невысокая скорость выполнения программ; Эволюция языка; Машинное обучение п наука о данных требуют знання соответствующих разделов математики [3].
Рисунок 1. Таблица «Преимущества и особенности языков
программирования»
Рассмотренные языки программирования имеют как положительные качества, так и свои особенности, для выявления наилучшего языка далее будут подобраны критерии (характеристики) и произведено сравнение при помощи метода анализа иерархий (МАИ).
В качестве критериев, важных при выборе языка программирования, для создаваемой системы были выделены следующие характеристики: стандартизация, переносимость кода, скорость разработки ПО, скорость использования программы, количество потребляемой памяти.
Характеристики выбранных языков программирования отображены в таблице, представленной на рисунке 2.
Стандартизация Переносимость кода Скорость разработки ПО Скорость исполнения программы Количество потребляемой памяти
Java Нет Виртуальной машиной Быстрая Средняя Большое
С # ШО: ЕСМА Требуется п е рекомш шяция Быстрая Средняя Среднее
PHP Нет Виртуальной машиной Средняя Медленная Большое
Python Нет Виртуальной машиной Быстрая Медленная Большое
Рисунок 2. Таблица «Характеристики выбранных языков
программирования»
Иерархическая модель, представлена на рисунке 3.
построенная в СППР «Решение»
Рисунок 3. Иерархическая модель
На рисунке 4 представлена матрица парных сравнений критериев.
I Сравнение критериев
СЗ: 5,171
ИС: 0,043 DC: |0,03&
* Для сравнения критериев двойной клик на ячейке матрицы сравнения
X
1. г. 3. 4. 5. Приоритеты
1. Стандартизация 1/1 1/2 2/1 3/1 6/1 0,269
2. Скорость разработки ПО 2/1 1/1 3/1 4/1 7/1 0,419
3. Скорость исполнения программы 1/2 1/3 1/1 4/1 4/1 одаз
4. Количество потребляемой памяти 1/3 1/4 1/4 1/1 3/1 0,00-6
5. Переносимость кода 1/6 1/7 1/4 1/3 1/1 0,043
OK
Рисунок 4. Матрица парных сравнений
Cancel
На рисунке 5 представлена матрица сравнений по критерию «Стандартизация».
| Сравнение решений по критерию "Стандартизация" X
1. 2. 3. 4. Приоритеты
1. с# 1/1 5/1 6/1 4/1 0,584
2. Python 1/5 1/1 4/1 1/3 0,127
3. PHP 1/6 1/4 1/1 1/4 0,056
4. Java 1/4 3/1 4/1 1/1 0,232
4,262 ИС: 0,087 ОС: 0,097
* Для сравнения критериев двойной s
клик на ячейке матриды сравнения
OK Cancel
Рисунок 5. Матрица сравнений решений по критерию «Стандартизация»
На рисунке 4 представлена матрица решений по критерию «Скорость разработки ПО» и на рисунке 6 представлена матрица по критерию «Скорость исполнения программы».
|ап Сравнение решений по критерию "Скорость разработки ПО" X
1. с#
2. Python
3. PHP
4. Java
1/1 5/1 6/1 3/1 0,560
1/5 1/1 3/1 1/2 0,135
1/6 1/3 1/1 1/5 0,059
1/3 2/1 5/1 1/1 0,246
СЗ: 4,116 ИС: Э,039 ОС: 0, 043
* Для сравнения критериев двойной клик на ячейке матрицы сравнения
ОК
Cancel
Рисунок 6. Матрица сравнений решений по критерию «Скорость
разработки ПО»
Ы | Сравнение решений по критерию "Скорость исполнения программы" X
1. 2. 3. 4. Приоритеты
1. С# 1/1 К/1 |5/1 |2/1 0,439
2. Python 1/4 1/1 3/1 1/3 0,137
3. PHP 1/5 1/3 1/1 1/4 0,070
4. Java 1/2 |з/1 k/i |l/l 0,304
СЗ: -1,095 ИС: 0,032 ОС: |0,035
* Для сравнения критериев двойной клик на ячейке матрицы сравнения
□К
Cancel
Рисунок 7. Матрица сравнений решений по критерию «Скорость
исполнения программы»
На рисунках 8 и 9 представлены матрицы «Количество потребляемой памяти» и «Переносимость кода».
Сравнение решений по критерию "Количество потребляемой памяти" X
1. 2. 3. 4. Приоритеты
1. с# 1/1 4/1 3/1 3/1 0,514
2. Python 1/4 1/1 2/1 1/2 0,149
3. PHP 1/3 1/2 1/1 1/2 0,113
4.Java 1/3 2/1 2/1 1/1 0,225
СЗ: 4,125
ИС: 0,042
ОС: 0,046
* Для сравнения критериев двойной клик на ячейке матрицы сравнения
ОК
Cancel
Рисунок 8. Матрица сравнений решений по критерию «Количество
потребляемой памяти»
|sr| Сравнение решений по критерию "Переносимость кода"
X
1. 2. 3. 4. Приоритеты
1. С# 1/1 1/2 1/3 1/2 0,116
2. Python 2/1 1/1 1/3 2/1 0,231
3. PHP 3/1 3/1 1/1 3/1 0,490
4. Java 2/1 1/2 1/3 1/1 0,163
СЗ:
4,121
ИС:
0,040
ОС: 0,045
* Для сравнения критериев двойной клик на ячейке матрицы сравнения
ОК
Cancel
Рисунок 9. Матрица сравнений решений по критерию «Переносимость
кода»
Результаты сравнения представлены на рисунке 10.
Рисунок 8. Построение диаграммы по результатам сравнения критериев
По проведенному анализу следует результат показывающий, что наиболее подходящим языком для разработки программного продукта был выбран язык программирования С#, т.к. он удовлетворяет следующим критериям:
- стандартизация какой-либо международной организацией;
- способ переносимости кода не важен;
- скорость разработки должна быть высокой;
- скорость исполнения не должна быть медленной;
- количество потребляемой памяти не важно.
Для получения данного результата была проанализирована предметная область, выявлены основные характеристики, преимущества и особенности языков программирования, а также проведен сравнительный анализ способов взаимодействия с клиентами.
Использованные источники:
1. Java: что это такое простыми словами [Электронный ресурс]. -URL:https://blog.skillfactory.ru/glossary/java/?ysclid=lc0e7legko165569664 (дата обращения 17.12.2022).
2. Python: что это за язык программирования [Электронный ресурс]. -URL: https://blog.skillfactory.ru/glossary/python/?ysclid=lc0efex4pp149540220 (дата обращения 16.12.2022)
3. Си Шарп: описание и особенности языка [Электронный ресурс]. - URL: https://otus.ru/journal/si-sharp-opisanie-i-osobennosti-yazyka/?ysclid=lc0eqdcvy5426 139097 (дата обращения 15.12.2022)
4. Выбираем язык программирования: что нужно знать о PHP [Электронный ресурс]. - URL: https://skillbox.ru/media/code/ vybiraem_yazyk_programmirovaniya_chto_nuzhno_znat_o_php/?ysclid=lc0g66 8ckz109544573 (дата обращения 15.12.2022)