Выбор языков программирования и сред разработки для научно-исследовательских работ в условиях импортозамещения

Автор: Пестряков Е.В., Митрофанов С.В., Панферов Н.С., Благов Д.А.

Журнал: Агротехника и энергообеспечение @agrotech-orel

Рубрика: Физическое, математическое, компьютерное и электромоделирование

Статья в выпуске: 3 (24), 2019 года.

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

В данной статье рассмотрены дополнения внесенные Правительством РФ в Федеральный закон от 27 июня 2006 года № 149-ФЗ и указ № 96 от 01.04.2015 изданный Министерством связи и массовых коммуникаций Российской федерации которые устанавливают план перехода государственных организаций на отечественные программные продукты и регламентируют данный процесс. Приведены функции Единого реестра программ для ЭВМ и БД. Рассмотрены критерии, которым должен соответствовать программный продукт для включения его в единый реестр программ для ЭВМ и БД, а также возможность их использования в государственных и ведомственных бюджетных учреждениях. С целью выявления разрешенных для использования в условиях импортозамещения современных языков программирования и сред разработки программного обеспечения, подходящих под рассмотренные критерии, представлен их анализ и рассмотрены преимущества и недостатки.

Еще

Среды разработки, импортозамещение, законодательство, языки программирования, открытое программное обеспечение

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

IDR: 147229219

Текст научной статьи Выбор языков программирования и сред разработки для научно-исследовательских работ в условиях импортозамещения

Введение. В целях обеспечения цифровой безопасности страны 24 июня 2015 года Правительство РФ внесло дополнение к Федеральному закону от 27 июня 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации». В дополнении говориться о необходимости существенном увеличении доли отечественного программного обеспечения на внутреннем рынке страны и о защите информации, а также о введении специального Единого реестра программ для ЭВМ и БД. Его работа направлена на учет программного обеспечения, которое официально имеет российское происхождение и рекомендовано для государственных структур при выборе программного обеспечения. В данном реестре приведены технические требования к программному обеспечению.

К ним относятся:

  • -    Действующая лицензия на модификацию и распространение ПО;

  • -    Открытое (open-source) программное обеспечение;

  • -    Полный доступ к исходному коду;

  • -    НИОКР и техническая поддержка;

  • -    Соответствие по требованиям специализированных органов (ФСТЭК, ФСБ и др.);

Одновременно с этим, в рамках политики импортозамещения и цифровой безопасности страны Министерством связи и массовых коммуникаций Российской федерации был издан указ № 96 от 01.04.2015 «Об утверждении плана импортозамещения программного обеспечения». В соответствии с данным указом к 2025 году доля отечественного программного обеспечения должна быть не менее 50 %, а в отдельных отраслях достигать 90%, в особенности это касается государственных учреждений [2].

В документе, представленном в приложении к приказу министерства связи и массовых коммуникаций, четко обозначен план импортзамещения ПО, где расписано, как будет снижаться доля импортного программного обеспечения по секторам экономики к 2025 году. Из него следует, что за период 2015-2025 гг. доля отечественного ПО минимум должна увеличиться в 2 раза, а в некоторых случая и в 3, например, всевозможные бизнес-приложения (ERP, CRM, BI, СЭД, управление проектами и т.д.).

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

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

Существует множество инструментов для разработки программного обеспечения, сюда входят, как языки программирования, так и системы управления базами данных (СУБД). Однако не все они подходят под критерии, изложенные выше. Далее приведен краткий анализ наиболее распространенных и современных языков программирования и сред разработки ПО.

Язык программирования С# (C-sharp) – является на данный момент самым популярным и современным языком программирования компании Майкрософт [6]. Он обладает расширенной функциональностью, а также увеличивает скорость разработки программного обеспечения по сравнению со своими конкурентами. С# работает со всеми известными СУБД (MS SQL Server, MySql, Oracl и т.д.). К тому же, компания Microsoft распространяет его бесплатно в пакете Visual Studio при условии, что он не будет использован в коммерческих целях. Из этого следует, что его можно скачать с официального сайта компании и использовать в научных целях, однако данный инструмент разработки программного обеспечения имеет и ряд серьезных недостатков:

  • 1.    Работает только в операционной системе (Windows). В связи с этим разработка и запуск программного обеспечения невозможна на других операционных системах таких как Linux и Mac OS. Та же проблема есть и у языка Visual Basic, который поставляется с C# в одном программном пакете, а именно Visual Studio.

  • 2.    C# очень требователен к характеристикам компьютера, в особенности к оперативной памяти .

  • 3.    Скорость работы программы, написанной на языке C# является низкой по сравнению с конкурентами в этой области.

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

программирование микроконтроллеров.

Язык программирования Java – на ряду с языком C# является одним из самых популярных языков в мире. Также, как и С#, является бесплатным для решения научных и внутриорганизационных задач, но в отличии от C# является кроссплатформенным языком программирования, т.е. он может работать на операционных системах Windows, Linux, Mac OS и т.д. [6]. Работает со всеми широко применяемыми СУБД. Также имеет существенные недостатки:

  • 1.    Язык Java, как и С#, разработан американской компанией, что

  • не укладывается в рамки политики импортозамещения.
  • 2.    Java, больше чем C#, требователен к характеристикам компьютера, из-за использования своей виртуальной машины.

  • 3.    Отсутствует гибкость в разработки.

  • 4.    Низкая скорость работы программы.

Язык программирования Delphi – в середине 2000-х являлся самым распространенным языком на всем постсоветском пространстве. Он обладает большим количеством встроенных компонентов, что позволяет разрабатывать программное обеспечение быстрее, чем на любом другом языке программирования [3]. Также этот язык взаимодействует со всеми известными системами управления базами данных, а скорость выполнения его программного кода очень высока. Но как все языки программирования он имеет ряд недостатков:

  • 1.    Delphi не распространяется бесплатно, а стоимость его лицензии очень высока. В настоящее время стоимость одной локальной копии с разными стандартными дополнительными компонентами составляет порядка 500 тыс. рублей. Что делает стоимость разработки на нем довольно высокой.

  • 2.    Delphi является устаревшим языком программирования. В нем отсутствуют или недостаточно реализованы основные современные парадигмы программирования.

  • 3.    Как и предыдущие языки программирования, он очень требователен к характеристикам компьютера.

  • 4.    Программный код очень тяжело портируется (переносится, конвертируется) на другие языки программирования.

Язык программирования С/С++ представляет собой объединение двух языков программирования - языка С (Си), который является процедурными языком, разработанным в 70-х годах, и его логическом продолжением объектно-ориентированным языком С ++ (Си-плюс плюс), разработанный в 80-х годах прошлого века [5]. Несмотря на то, что формально это два языка, разработка программного обеспечения на них ведется совместно. Это произошло в силу исторических, технических и идеологических особенностей данных языков программирования. Поэтому они часто рассматриваются как единый язык программирования, который является самым применяемым за всю историю программирования. На данном языке написано, по разным данным, около 90% всего мирового программного обеспечения. Он используется во всех сферах программирования, от создания операционных систем (операционные системы, такие как Windows, Linux и т.д.) и программирования ядерных реакторов до написания простых настольных приложений. Язык С / С++ может работать со всеми известными СУБД. Компиляторы этого языка распространяются бесплатно, что существенно упрощает вопросы лицензирования, а единый стандарт делает его полностью кроссплатформенными. Преимуществом С/С++ является то, что он может напрямую вызывать машинный язык Assembler, что позволяет ускорить проводимые вычисления, а также снизить аппаратные требования к компьютеру.

Но даже С++ не лишен недостатков, вот самые распространенные из них:

  • 1.    Высокий порог вхождения. Это самая большая проблема

  • 2.    Время на разработку программного обеспечения уходит больше, чем у его конкурентов, таких как Java или C#, это связано с его универсальностью.

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

Из представленного множества языков программирования, наиболее оптимальным для решение научных задач является С/С++, так как из-за прямого взаимодействия с препроцессором обладает одной самых высоких скоростей выполнения программного кода. По сути в скорости он уступает только языку Assembler. Это позволяет на нем писать инженерные и математические программы.

Так же следует определиться с наиболее подходящей средой разработки для поставленных задач. Наиболее распространенные среды программирования это: С++ Builder, Visual C++, QT Creator.

С++ Builder – является самой технологически развитой из всех представленных. Она разрабатывается компанией Embarcadero [5]. Эта среда обладает всеми преимуществами среды Delphi, однако так же обладает и всеми ее недостатками, плюс к этому, скорость выполнения задач программы, созданной в этой среде, очень низкая из-за высокого уровня программного кода.

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

Visual C++, продукт компании Microsoft, является современным инструментом по созданию программного обеспечения [5]. Главным ее преимуществом является хорошо оптимизированный компилятор, что делает программы на ней высокоскоростными, а главным ее недостатком можно считать отсутствие встроенных инструментов по созданию графического инструмента. Так же эта среда разработки является импортным продуктом, что делает ее не востребованной в рамках импортозамещения.

QT Creator – кроссплатформенный framework для разработки программного обеспечения на языке программирования С/C++. Является самым динамично развивающимся инструментом для создания настольных, мобильных и встроенных систем. Его главными преимуществами является мощный набор компонентов, возможность подключение любых компиляторов, что делает универсальным не только в качестве операционных систем, но и мультиплатформенным в разрезе устройств (мобильные телефоны, микроконтроллеры, ПК). QT Creator распространяется в рамках лицензии открытого исходного кода (Open Source), исходя из этого у разработчика появляется доступ к исходному коду самой среды разработки. Таким образом, Qt Creator позволяет создавать полностью независимое программное обеспечение, что полностью укладывается в политику импортозамещения и нормативно-правовые акты. Все эти преимущества делают выбор данного framework самым оптимальным для решения научных задач.

Заключение. Исходя из проведенного анализа законодательной базы и программного обеспечения, представленного на рынке, можно сделать вывод, что Федеральный закон № 149 ФЗ и меры по импортозамещению программных продуктов в России имеют как положительные, так и отрицательные стороны. В качестве положительных сторон можно отметить то, что закон направлен на стимулирование разработки отечественного программного обеспечения, что в перспективе приведет к развитию информатизации всех отраслей страны, снизит зависимость от импортного программного обеспечения. С другой стороны, закон строго регламентирует и ограничивает свободу выбора программного обеспечения, что ведет за собой ряд реорганизационных проблем: переподготовка специалистов или замену кадрового состава организаций, финансовые затраты на смену программных продуктов. Качество программного обеспечения на начальном этапе перехода будет уступать зарубежной продукции по многим параметрам. Также следует отметить, что в плане импортозамещения программного обеспечения не приведены методы перехода на отечественные программные продукты.

E.V. Pestryakov, Research Worker

S.V. Mitrofanov, candidate of agricultural Sciences, Leading Researcher

N.S. Panfyorov, candidate of technical Sciences, Senior Researcher D.A. Blagov, candidate of biological Sciences, Senior Researcher

Institute for Engineering Support of Agriculture – branch of the Federal State Budgetary Scientific Institution “Federal Scientific Agroengineering Center VIM

Список литературы Выбор языков программирования и сред разработки для научно-исследовательских работ в условиях импортозамещения

  • Федеральный закон от 27.07.2006 № 149-ФЗ (ред. от 24.06.2015) «Об информации, информационных технологиях и о защите информации»
  • Указ Министерства связи и массовых коммуникаций Российской федерации № 96 от 01.04.2015 «Об утверждении плана импортозамещения программного обеспечения».
  • Архангельский А.Я. /Программирование в Delphi. Учебник по классическим версиям Delphi // А.Я. Архангельский Бином-Пресс, 2008.
  • Пратт Т., Зелковиц М./ Языки программирования: разработка и реализация/ Под общ. ред. А. Матросова. - СПБ.: Питер, 2002.- 688.
  • Керниган, Брайан У., Ритчи ДеннисМ. /«Язык программирования Си» - 3-е издание.: Пер. с англ.- М.: Издат. Дом.: «Вильямс»,2001. 304с.
  • Рихтер Дж. CLR via C#. Программирование на платформе Microsoft.NET Framework 2 на языке C#. Мастер класс. / Пер. с англ. - 2 е изд., исправ. -М.: Издательство «Русская Редакция»; СПб.: Питер, 2008 - 656 стр.
Статья научная