Выбор языка программирования для разработки серверной части веб-приложения | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №41 (383) октябрь 2021 г.

Дата публикации: 04.10.2021

Статья просмотрена: 1057 раз

Библиографическое описание:

Кулькин, Д. В. Выбор языка программирования для разработки серверной части веб-приложения / Д. В. Кулькин. — Текст : непосредственный // Молодой ученый. — 2021. — № 41 (383). — С. 9-12. — URL: https://moluch.ru/archive/383/84390/ (дата обращения: 20.04.2024).



В статье автор проводит исследование среди наиболее популярных языков программирования с целью определения наиболее функционального и поддерживаемого сообществом языка для разработки веб-приложений.

Ключевые слова: языки программирования, веб-приложения, информационные технологии.

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

– скорость создания программы;

– скорость тестирования;

– возможность переноса на другие платформы;

– возможность быстрого внесения изменений;

– большой выбор инструментов для разработки;

– производительность итогового продукта.

При этом стоит помнить, что идеального языка, который будет подходить под все требования сразу, не существует — все они имеют свои плюсы и минусы, анализ которых будет проведен далее в этой статье.

Правильный выбор языка программирования поможет создать компактное, простое в отладке, расширении, документировании и исправлении ошибок решение.

При выборе языка программирования, требуется учитывать следующие факторы:

– Целевая платформа;

– Гибкость языка;

– Производительность;

– Поддержка и сообщество.

Рассмотрим каждый фактор подробнее и сравним несколько популярных языков для разработки веб-сервисов.

Список рассматриваемых языков программирования указан в таблице 1.

Таблица 1

Используемые в исследовании языки программирования

Название

TIOBE индекс

1

C#

5

2

Java

1

3

PHP

8

4

JavaScript

7

5

Python

3

Целевая платформа

Одним из факторов является платформа, на которой программа будет работать. От платформы зависят такие параметры как:

– Цена за аренду серверов. На Linux сервере намного дешевле;

– Производительность;

– Инструменты для разработки;

– Инструменты для профайлинга;

Язык программирования C# является кроссплатформенным языком, так как исполняющая среда для байт-кода cкомпилированного исходного кода CoreCLR является кроссплатформенной и поддерживается на трех операционных системах: Windows, Linux и MacOS.

Кроссплатформенность Java была достигнута за счёт создания виртуальной машины Java.

Java Virtual Machine или JVM — это программа, являющаяся прослойкой между операционной системой и Java программой. В среде виртуальной машины выполняются коды Java программ. Реализованы версии JVM для всех существующих операционных систем.

PHP-скрипты обычно обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения. Интерпретаторы для PHP доступны для всех существующих операционных систем.

Движок JavaScript — V8, лежит в основе программной платформы Node.js. Node.js — программная платформа, основанная на движке V8, которая транслирует JavaScript в машинный код. Node.js доступна для Windows, Linux и MacOS.

Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ. Есть реализация интерпретатора для JVM с возможностью компиляции, CLR, LLVM, другие независимые реализации. Таким образом, интерпретаторы Python имеются для всех существующих операционных систем.

Подводя итог можно сказать, что все рассматриваемые языки являются кроссплатформенными и могут работать с такими операционными системами как Windows, Linux и MacOS.

Гибкость языка

Гибкость языка определяется тем, насколько легко можно добавлять к существующей программе новые функциональные возможности. Гибкость идет в разрез с производительностью и безопасностью, поэтому, к способности языка быть гибким следует относится с осторожностью.

Например, нестрогая типизация языка является фактором, делающий язык гибким, так как программист, разрабатывая новый функционал, может не тратить время на указание конкретных типов в методах. Но в то же время, отсутствие строгой типизации является потенциальной ошибкой. Например, в метод, который должен принимать в качестве параметра целочисленный тип, может быть отправлен строковый тип — в этом случае возникнет ошибка и приложение перестанет работать. У языка со строгой типизацией такого не возникнет, так как в случае передаче методу строкового типа, ошибка возникает во время компиляции, а не во время работы программы. Это дает гарантию того, что у пользователя приложение будет работать корректно.

Возвращаясь к сравнению гибкости языка, были выбраны следующие факторы, по которым будут сравниваться языки:

– возможность использовать парадигму «обобщённое программирование»;

– возможность использования неявно типизированных локальных переменных;

– Лямбда-выражения.

Язык программирования C# начиная с версии 2.0 имеет возможность использовать обобщённые типы. Обобщенные типы используются в обобщенном программировании. Обобщенное программирование — парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание.

Начиная с версии 3.0, C# предоставляет возможность использовать неявно типизированные переменные с помощью ключевого слова var и возможность использовать лямбда-выражения.

Java так же имеет возможность использовать обобщённое программирование. Так же, начиная с версии Java 10, язык получил возможность использовать ключевое слово var для неявной типизации локальных переменных. А с версии 8 Java обзавелась лямбда-выражениями.

PHP обобщённых типов не имеет. Это связанно с тем, что обобщенный метод во время компиляции определяет, какие типы ему передаются в коде и компилятор генерирует на каждый тип свою версию метода, что дает гарантию того, что метод выполнится без ошибок. PHP является интерпретируемым языком, поэтому, данная возможность у него отсутствует. Но, например, с помощью не типизированных параметров в методах можно добиться похожего поведения. Только гарантию того, что метод выполнится без ошибок при передаче разных типов никто не даст. Что касается неявно типизированных переменных, то так как PHP не является строго типизированным языком, такая возможность ему не нужна. Лямбда-выражения также отсутствуют.

Так же, как и PHP, JavaScript имеет те же возможности.

Python так же является нестрого типизированным языком, поэтому обобщенных типов не имеет, как и ключевого слова для неявного типизированных переменных. Зато Python имеет лямбда-выражения.

В заключении можно сказать, что из 5 языков только 2 обладают строгой типизацией, обобщенными типами, ключевым словом для неявной типизированных переменных и лямбда-выражениями, что добавляет им преимущество при выборе.

Производительность

При разработке информационной системы, у которой будет много пользователей и функций, важно учитывать такой фактор, как производительность.

Производительность информационной системы, в первую очередь, зависит от языка и инфраструктуры, на которой она написана, поэтому на этот фактор стоит обратить большое внимание.

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

По результатам замерам производительности основных фреймворков, на основе которых разрабатываются веб-сайты на сравниваемых языках был выделен абсолютный лидер — ASP.NET Core 3.1.

Тест производительности заключался в том, что на запущенный на ОС Linux фреймворк отправляли большое количество HTTP-запросов, а если быть точнее, 7 миллионов. Фреймворк должен был принять этот запрос, обработать и вернуть ответ. ASP.Net Core 3.1 единственный из кандидатов, кто обработал все запросы за заданное время.

ASP.NET Core — кросс-платформенный фреймворк для создания веб-приложений с открытым исходным кодом. Поддерживает языки CLR, включая C#. Данная платформа разрабатывается компанией Майкрософт совместно с сообществом и имеет большую производительность. Имеет модульную структуру и совместима с такими операционными системами как Windows, Linux и macOS.

Поддержка и сообщество

Не мало важным является поддержка и сообщество, которое есть у языков программирования и их фреймворков. Чем это сообщество больше и свободнее, тем быстрее развивается технология.

Наиболее «старым» сообществом считается сообщество языка программирования Java. Исторически сложилось, что на Java написано большинство информационных Enterprise систем. Enterprise разработка — это разработка, направленная на решение проблем бизнеса. В связи с этим сообщество вынуждено развивать и поддерживать этот язык программирования. Благодаря большому сообществу, язык имеет огромное количество инструментов, гайдов, инструкций, библиотек и ответов на многие вопросы. Для изучения тонкостей языка написано большое количество книг и статей.

В целом, можно сказать, что Java имеет хорошее сообщество и поддержку.

Что касается языка программирования C#, то он так же, как и Java, имеет огромнейшую поддержку и сообщество. Огромное количество литературных трудов, библиотек, инструментов, примеров задач и их решений — это все труды огромного сообщества, которое вкладывает свои знаний в развитие этого языка программирования. Таким образом, сообщество и поддержка языка программирования C# является не худшим, чем сообщество Java.

Сообщество языка Python состоит в основном из молодых разработчиков: так как этот язык программирования очень прост в освоении, то он становится первым у начинающих разработчиков. Не смотря на молодость сообщества, этот язык программирования имеет большое количество инструментов и литературы для комфортной работы с ним. Но, если, количественно сообщество Python, возможно, больше, то по качеству, оно будет хуже, если сравнивать с сообществами Java и C#. Это связанно преимущественно с неопытностью большинства разработчиков Python.

Языки JavaScript и PHP, аналогично Python, имеют крупные, развитые, но молодые сообщества. Множество библиотек и литературы позволяют пользоваться этими языками максимально продуктивно.

Подводя итог сравнения сообществ, можно выделить только два наиболее развитых сообществ — это сообщества C# и Java.

Исходя из результатов исследования языков программирования, можно сделать вывод, что для решения в качестве языка программирования для разработки серверной части веб-приложения, хорошо подойдет язык программирования C#. Он обладает современным и развивающимся функционалом, а также имеет большое и опытное сообщество. Большая библиотека литературы и документации позволит быстро и качественно разработать серверную часть веб-приложения.

Литература:

  1. Хранилище документации Майкрософт [Электронный ресурс] — URL https://docs.microsoft.com (дата обращения 25.09.2021);
  2. C# 4.0 Полное руководство [Электронный ресурс] –URL https://www.libfox.ru/ (дата обращения 01.10.2021);
  3. Макконнелл С. «Совершенный код»: изд-во «Русская редакция», 2017;
  4. Кей С. Хорстманн, Гари Корнелл «Java. Библиотека профессионала», 2014 г.;
  5. Давид Скляр «Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов», 2017 г.;
  6. Бэрри Пол, «Изучаем программирование на Python», 2017 г.;
  7. Дэвид Флэнаган, «JavaScript. Подробное руководство», 2008 г.
Основные термины (генерируются автоматически): PHP, язык программирования, JVM, язык, сообщество, CLR, возможность, информационная система, ключевое слово, строгая типизация.


Похожие статьи

Основные современные языки программирования

Язык программирования Java является сильно типизированным и предназначен для объектно-ориентированного программирования. Основан Java, как и С++, на базовом языке Си. Основной особенностью языка является использование виртуальной машины, которая...

Обзор популярных языков программирования

Ключевые слова: язык программирования, Java, Python, JavaScript.

Этот объектно-ориентированный язык программирования был разработан в 1980-х годах и до сих пор встречается во многих системах от настольных веб-приложений до серверной инфраструктуры.

Интеграция Telegram-ботов в информационных системах

Используя язык программирования PHP, создадим специальный код, который отвечает на запросы пользователей Telegram-бота

Неважно, каким языком программирования вы подключаете бот, важно, как вы будете формировать запросы к базе и отображать эти данные.

Создание BPM-системы на основе базы данных SQL при...

Ключевые слова: sql,api,rest api, bpm,система..

Маленькая компания или большая, у каждой компании есть своя информационная система, которые

Так как система разрабатывается на SQL чистом, с минимальным использованием C Sharp в виду CLR функций, то данная система...

Средства визуального программирования на языке С++. Среда...

Существует несколько эффективных решений для программирования оконных приложений на языке C++.

Основным преимуществом является возможность компиляции для разных версий операционных

Одной из альтернатив QT является среда Common Language Runtime (CLR)...

Проблемы выбора языка программирования в школьном курсе...

Выбор языка и системы программирования имеет принципиальное значение, т. к. от этого

Наверное, это императивный, строго типизированный, со статической типизацией и строгой семантикой язык.

Первый язык программирования должен быть требовательным к ученику.

Ключевые технологии цифровой экономики | Статья в журнале...

Ключевые слова: цифровая экономика, информационные технологии, экономика, бизнес.

Одним из ключевых результатов этого процесса является информационная модель здания

А с помощью системы оповещения об обнаруженных конфликтах BIM предотвращает...

Сравнительный обзор распространённых языков...

Сравнительный обзор распространённых языков программирования для микропроцессорных систем.

Рассмотрим общие особенности программирования на этих языках для существующих микропроцессорных систем, а также частности программирования в...

Параллели между естественными языками и языками... | «Молодой

Язык — это знаковая система, используемая для целей коммуникации и познания.

Любой язык, и естественный и искусственный, обладает набором определенных правил. Они могут быть явно и строго сформулированными (формализованными), а могут допускать различные...

Похожие статьи

Основные современные языки программирования

Язык программирования Java является сильно типизированным и предназначен для объектно-ориентированного программирования. Основан Java, как и С++, на базовом языке Си. Основной особенностью языка является использование виртуальной машины, которая...

Обзор популярных языков программирования

Ключевые слова: язык программирования, Java, Python, JavaScript.

Этот объектно-ориентированный язык программирования был разработан в 1980-х годах и до сих пор встречается во многих системах от настольных веб-приложений до серверной инфраструктуры.

Интеграция Telegram-ботов в информационных системах

Используя язык программирования PHP, создадим специальный код, который отвечает на запросы пользователей Telegram-бота

Неважно, каким языком программирования вы подключаете бот, важно, как вы будете формировать запросы к базе и отображать эти данные.

Создание BPM-системы на основе базы данных SQL при...

Ключевые слова: sql,api,rest api, bpm,система..

Маленькая компания или большая, у каждой компании есть своя информационная система, которые

Так как система разрабатывается на SQL чистом, с минимальным использованием C Sharp в виду CLR функций, то данная система...

Средства визуального программирования на языке С++. Среда...

Существует несколько эффективных решений для программирования оконных приложений на языке C++.

Основным преимуществом является возможность компиляции для разных версий операционных

Одной из альтернатив QT является среда Common Language Runtime (CLR)...

Проблемы выбора языка программирования в школьном курсе...

Выбор языка и системы программирования имеет принципиальное значение, т. к. от этого

Наверное, это императивный, строго типизированный, со статической типизацией и строгой семантикой язык.

Первый язык программирования должен быть требовательным к ученику.

Ключевые технологии цифровой экономики | Статья в журнале...

Ключевые слова: цифровая экономика, информационные технологии, экономика, бизнес.

Одним из ключевых результатов этого процесса является информационная модель здания

А с помощью системы оповещения об обнаруженных конфликтах BIM предотвращает...

Сравнительный обзор распространённых языков...

Сравнительный обзор распространённых языков программирования для микропроцессорных систем.

Рассмотрим общие особенности программирования на этих языках для существующих микропроцессорных систем, а также частности программирования в...

Параллели между естественными языками и языками... | «Молодой

Язык — это знаковая система, используемая для целей коммуникации и познания.

Любой язык, и естественный и искусственный, обладает набором определенных правил. Они могут быть явно и строго сформулированными (формализованными), а могут допускать различные...

Задать вопрос