<!DOCTYPE article
PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20190208//EN"
       "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.4" xml:lang="en">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">Vestnik of Astrakhan State Technical University. Series: Management, computer science and informatics</journal-id>
   <journal-title-group>
    <journal-title xml:lang="en">Vestnik of Astrakhan State Technical University. Series: Management, computer science and informatics</journal-title>
    <trans-title-group xml:lang="ru">
     <trans-title>Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика</trans-title>
    </trans-title-group>
   </journal-title-group>
   <issn publication-format="print">2072-9502</issn>
   <issn publication-format="online">2224-9761</issn>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="publisher-id">103804</article-id>
   <article-id pub-id-type="doi">10.24143/2072-9502-2025-3-102-111</article-id>
   <article-id pub-id-type="edn">DWCLNW</article-id>
   <article-categories>
    <subj-group subj-group-type="toc-heading" xml:lang="ru">
     <subject>КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА</subject>
    </subj-group>
    <subj-group subj-group-type="toc-heading" xml:lang="en">
     <subject>COMPUTER ENGINEERING AND SOFTWARE</subject>
    </subj-group>
    <subj-group>
     <subject>КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА</subject>
    </subj-group>
   </article-categories>
   <title-group>
    <article-title xml:lang="en">Method for classifying software development tools  based on Stack Overflow survey data</article-title>
    <trans-title-group xml:lang="ru">
     <trans-title>Метод классификации средств разработки программного обеспечения на основе данных опроса Stack Overflow</trans-title>
    </trans-title-group>
   </title-group>
   <contrib-group content-type="authors">
    <contrib contrib-type="author">
     <contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-1675-8652</contrib-id>
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Кравец</surname>
       <given-names>Алла Григорьевна </given-names>
      </name>
      <name xml:lang="en">
       <surname>Kravets</surname>
       <given-names>Alla Grigorievna </given-names>
      </name>
     </name-alternatives>
     <email>allagkravets@yandex.ru</email>
     <bio xml:lang="ru">
      <p>доктор технических наук;</p>
     </bio>
     <bio xml:lang="en">
      <p>doctor of technical sciences;</p>
     </bio>
     <xref ref-type="aff" rid="aff-1"/>
    </contrib>
    <contrib contrib-type="author">
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Казьмин</surname>
       <given-names>Иван Витальевич </given-names>
      </name>
      <name xml:lang="en">
       <surname>Kaz'min</surname>
       <given-names>Ivan Vital'evich </given-names>
      </name>
     </name-alternatives>
     <email>hoghor2@mail.ru</email>
     <xref ref-type="aff" rid="aff-2"/>
    </contrib>
    <contrib contrib-type="author">
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Бондаренко</surname>
       <given-names>Артём Геннадьевич </given-names>
      </name>
      <name xml:lang="en">
       <surname>Bondarenko</surname>
       <given-names>Artem Gennad'evich </given-names>
      </name>
     </name-alternatives>
     <email>temdit01@yandex.ru</email>
     <xref ref-type="aff" rid="aff-2"/>
    </contrib>
   </contrib-group>
   <aff-alternatives id="aff-1">
    <aff>
     <institution xml:lang="ru">Волгоградский государственный технический университет</institution>
     <country>Россия</country>
    </aff>
    <aff>
     <institution xml:lang="en">Volgograd State Technical University</institution>
     <country>Russian Federation</country>
    </aff>
   </aff-alternatives>
   <aff-alternatives id="aff-2">
    <aff>
     <institution xml:lang="ru">Волгоградский государственный технический университет</institution>
    </aff>
    <aff>
     <institution xml:lang="en">Volgograd State Technical University</institution>
    </aff>
   </aff-alternatives>
   <pub-date publication-format="print" date-type="pub" iso-8601-date="2025-09-02T14:34:07+03:00">
    <day>02</day>
    <month>09</month>
    <year>2025</year>
   </pub-date>
   <pub-date publication-format="electronic" date-type="pub" iso-8601-date="2025-09-02T14:34:07+03:00">
    <day>02</day>
    <month>09</month>
    <year>2025</year>
   </pub-date>
   <volume>2025</volume>
   <issue>3</issue>
   <fpage>102</fpage>
   <lpage>111</lpage>
   <history>
    <date date-type="received" iso-8601-date="2025-04-19T00:00:00+03:00">
     <day>19</day>
     <month>04</month>
     <year>2025</year>
    </date>
    <date date-type="accepted" iso-8601-date="2025-07-23T00:00:00+03:00">
     <day>23</day>
     <month>07</month>
     <year>2025</year>
    </date>
   </history>
   <self-uri xlink:href="https://vestnik.astu.ru/en/nauka/article/103804/view">https://vestnik.astu.ru/en/nauka/article/103804/view</self-uri>
   <abstract xml:lang="ru">
    <p>Исследование посвящено разработке и апробации нового подхода к классификации средств разработки программного обеспечения (ПО), основанного на анализе набора данных (датасета) опроса разработчиков Stack Overflow 2024 г., с целью решения актуальной проблемы выбора оптимального технологического стека в условиях разнообразия технологий. Целью исследования является выявление востребованных инструментов разработки ПО, их классификация по областям применения и актуальности для формирования базы знаний, которая может быть использована при создании рекомендательных систем. В качестве примера для демонстрации метода были использованы языки программирования (ЯП). Процесс включает подготовку данных из датасета Stack Overflow, а именно отбор признаков, таких как тип разработчика и используемые им инструменты; очистку, обработку пропусков, сокращение типов разработчиков и применение количественного метода классификации. Разработанный метод основан на расчете и нормализации частоты использования каждого языка в разрезе различных типов разработчиков для устранения дисбаланса в выборке. Для каждого ЯП вычисляются два ключевых показателя: максимальное нормализованное значение частоты использования (Cmax) и коэффициент вариации (CV), отражающий равномерность его использования. Классификация на 3 категории – «общего назначения», «отраслевые» и «нишевые» – производится путем сравнения индивидуальных показателей Cmax и CV языка с их медианными значениями по всему набору ЯП. Результаты, представленные в виде гистограммы, наглядно демонстрируют разделение языков: общего назначения (например, Python, JavaScript), отраслевые, востребованные в конкретных сферах (например, Swift, Kotlin, R), и нишевые (например, Crystal и Delphi). Предложенный метод формирует структурированное, основанное на данных представление о технологическом ландшафте, что может быть полезно разработчикам при выборе инструментов и закладывает основу для создания рекомендательных систем.</p>
   </abstract>
   <trans-abstract xml:lang="en">
    <p>This study is devoted to the development and testing of a new approach to the classification of software de-velopment tools (ST), based on the analysis of the dataset from the Stack Overflow 2024 developer survey, in order to solve the urgent problem of choosing the optimal technology stack in the context of a variety of technologies. The purpose of the research is to identify the required software development tools, classify them by application areas and relevance to form a knowledge base that can be used to create recommendation systems. Programming languages (PL) were used as an example to demonstrate the method. The process includes the preparation of data from the Stack Overflow dataset, namely, the selection of features such as the type of developer and the tools used by him; cleaning, processing gaps, reducing the types of developers and applying a quantitative classification method. The developed method is based on calculating and normalizing the frequency of use of each language in the context of different types of developers to eliminate the imbalance in the sample. Two key indicators are calculated for each PL: the maximum normalized frequency of use (Cmax) and the coefficient of variation (CV), reflecting the uniformity of its use. Classification into 3 categories – “general purpose”, “industry” and “niche” – is performed by comparing individual indicators of Cmax and CV of the language with their median values for the entire set of languages. The results, presented as a histogram, clearly demonstrate the division of languages: general-purpose (for example, Python, JavaScript), industry-specific, in-demand in specific areas (for example, Swift, Kotlin, R), and niche (for example, Crystal and Delphi). The proposed method forms a structured, data-based view of the technological landscape, which can be useful to developers when choosing tools and lays the foundation for creating recommendation systems.</p>
   </trans-abstract>
   <kwd-group xml:lang="ru">
    <kwd>технологический стек</kwd>
    <kwd>подбор датасета</kwd>
    <kwd>программное обеспечение</kwd>
    <kwd>анализ данных</kwd>
    <kwd>язык программирования</kwd>
    <kwd>коэффициент вариации</kwd>
   </kwd-group>
   <kwd-group xml:lang="en">
    <kwd>technology stack</kwd>
    <kwd>dataset selection</kwd>
    <kwd>software</kwd>
    <kwd>data analysis</kwd>
    <kwd>programming language</kwd>
    <kwd>coefficient of variation</kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <p>ВведениеВ настоящее время наблюдается значительное разнообразие технологий разработки программного обеспечения (ПО). Важной задачей является определение оптимального технологического стека для решения конкретных задач разработки. Для эффективного решения данной проблемы необходим всесторонний анализ современной индустрии разработки ПО, основанный на новых данных. Актуальность данного исследования обусловлена возрастающей потребностью в систематизации и анализе быстро развивающегося технологического ландшафта в области разработки ПО. Настоящая работа предлагает структурированный подход к анализу новых технологических тенденций на основе обработки данных, полученных из опросов сообщества разработчиков. Ключевым аспектом исследования является классификация языков программирования (ЯП) по области применения и актуальности. В отличие от существующих рейтингов, таких как индекс TIOBE, который оценивает общую популярность языков на основе количества поисковых запросов, данный метод фокусируется на анализе реального использования технологий различными категориями разработчиков. Такой подход позволяет не просто констатировать популярность, а выявлять специализацию инструментов. Результаты исследования позволят сформировать базу знаний для разработки рекомендательных систем для выбора технологического стека и способствующих повышению эффективности разработки ПО. Целью настоящего исследования является классификация востребованных в данный момент инструментов разработки ПО, включающих ЯП, и их классификация по областям применения. Результаты анализа предполагается использовать для алгоритма подбора оптимальных технологических стеков. В качестве источника данных был выбран набор данных (датасет) ежегодного опроса пользователей веб-ресурса Stack Overflow (SO). Он выступает ключевым ресурсом для разработчиков, оказывая значительное влияние на выбор и применение технологических стеков в процессе разработки ПО. Многочисленные исследования подтверждают роль этого сервиса как обширной базы знаний, используемой для решения конкретных задач, обучения и обмена опытом [1, 2], состоящей преимущественно из текстовых данных, для анализа и категоризации которых применяются современные технологии классификации текстов [3]. В частности, SO предоставляет ответы на технические вопросы, код-сниппеты и примеры использования API, что значительно ускоряет процесс разработки и позволяет обходить «лексический разрыв» между запросом и решением [4, 5].Анализ данных сервиса позволяет выявить актуальные технологические тренды и предпочтения разработчиков, что важно для определения оптимального технологического стека для решения конкретных задач [2, 6]. Исследования показывают, что SO вносит значительный вклад в различные области разработки ПО, включая системы рекомендаций [7]. Однако важно учитывать ограничения, связанные с использованием SO. Исследования показывают, что качество информации на платформе может варьироваться, и требуется валидация предложенных решений [8]. Кроме того, при выборе технологического стека важно учитывать не только популярность технологий на сервисе, но и особенности проекта, доступность специалистов и долгосрочные перспективы. Разработчики часто прибегают к повторному использованию кода из форума, что поднимает вопросы лицензирования и качества кода [9]. Также, несмотря на полезность сервиса для поиска контекстно-зависимой информации и предложений по решению проблем [10], следует учитывать социальные взаимодействия на платформе, поскольку они могут влиять на принятие ответов и, следовательно, на восприятие разработчиками определенных решений [11]. Новый метод классификацииОпираясь на проведенный анализ, подтверждающий значимость SO как ключевого ресурса, отражающего актуальные технологические тренды, предпочтения и опыт сообщества разработчиков,и учитывая необходимость структурированного подхода для извлечения ценных знаний из большого и разнородного массива данных опроса, было решено разработать новый метод классификации средств разработки. Данный метод предназначен для систематизации анализа информации, содержащейся в датасете SO, с целью объективной оценки востребованности и областей применения различных инструментов. Общая блок-схема предложенного метода, иллюстрирующая последовательность этапов – от загрузки и предобработки данных до группировки, анализа актуальности и визуализации результатов, – представлена на рис. 1.   Рис. 1. Блок-схема метода классификации средств разработки ПО Fig. 1. Flow diagram of the ST development classification method  Подготовка данных для классификацииДатасет представлен в виде файла формата csv и имеет название survey_results_public. Объем файла составляет 155 787 килобайт.Для анализа данных, пример которых  приведен в табл. 1, и выявления возможных проблем с их качеством был разработан модуль подготовки данных с применением специализированных библиотек: Pandas, Numpy, Seaborn и Matplotlib.  Таблица 1Table 1Фрагмент содержания исходного датасетаSource dataset content fragmentResponseIdMainBranchAgeEmploymentRemoteWorkCheckCodingActivitiesEdLevel…1I ama developer by professionUnder 18 years oldEmployed, full-timeRemoteApplesHobbyPrimary/elementary school…2I ama developer by profession35-44 years oldEmployed, full-timeRemoteApplesHobby; Contribute to open-source proj..Bachelor&amp;#39;s degree (B.A., B.S., B.Eng)…………………………65436I am learning to code18-24 years oldStudent, full-timeNaNApplesNaNSome college/university study without earning...…65437I ama developer by profession18-24 years oldStudent, full-timeNaNApplesNaNSecondary school (e.g. American high school… Из-за большого количества столбцов была разработана специальная процедура, позволяющая отобрать несколько релевантных для цели этого исследования атрибутов, содержащих, в частности, информацию о типе разработчика (DevType) и используемых ЯП (LanguageHaveWorkedWith). После определения списка необходимых столбцов DataFrame фильтруется, оставляя только указанные атрибуты, что способствует уменьшению объема данных и повышению эффективности дальнейшего анализа. Далее полученный датасет был проанализирован на предмет наличия пропущенных значений. Количество пропущенных значений варьируется от колонки к колонке. Важными для дальнейшего анализа и классификации являются колонки DevType и LanguageWorkedWith. Количество пропущенных в них значений – 5 992 и 5 692 соответственно. Строки с пустыми значениями в этих столбцах были удалены. Затем датасет был проверен на количество уникальных значений функцией df.nunique(). Большое количество уникальных значений обусловлено типом хранимых данных. Разработчики указывают сразу несколько инструментов, с которыми работали. В результате данные в колонке приобрели следующий вид: Bash/Shell (all shells); Go; HTML/CSS; Java; JavaScript; Python; TypeScript. Это касается всех колонок, кроме DevType. Далее был проанализирован список уникальных значений колонки DevType с целью определить роли разработчиков и исключить неподходящие. Список довольно обширен и содержит записи как областей, непосредственно связанных с разработкой, так и косвенно относящихся к ней. Для исключения выбраны следующие типы: Developer Experience, Developer Advocate, Database administrator, Research &amp; Development role, System administrator, Senior Executive (C-Suite, VP, etc.), Data or business analyst, Educator, Product manager, Scientist, Engineer, site reliability, Marketing or sales professional, Other (please specify). В результате количество уникальных записей сократилось с 34 до 20 (табл. 2), число разработчиков представлено на рис. 2. Таблица 2Table 2Описание типов разработчиковDescription of developer typesТип разработчикаОписаниеDeveloper, full-stackВеб-программист, который освоил полный стек технологий для реализации проектаStudentСтудент или обучающийсяAcademic researcherАкадемический исследователь или ученый-исследовательDeveloper, back-endСпециалист, который занимается серверной частью веб-сайтовDeveloper, front-endСпециалист, который создает интерфейсы веб-сайтов и приложенийDeveloper, desktopor enterprise applicationsСпециалист по разработке настольных или корпоративных приложенийCloud infrastructure engineerИнженер облачной инфраструктурыData scientist or machine learning specialistСпециалист, который использует статистические методы, машинное обучение, анализ данных и прогнозирующую аналитику для превращениянеобработанных данных в полезные выводыDeveloper, embeddedapplications or devicesСпециалист, который пишет управляющее ПО для различных устройстви гаджетовDevOps specialistУниверсальный IT-специалист, который работает над запуском ПОEngineering managerСпециалист, который планирует, организует и управляет инженернымипроектами, обычно для создания продуктов или системDesignerДизайнерSecurity professionalСпециалист в области компьютерной безопасностиDeveloper, mobileРазработчик мобильных приложенийDeveloper, game or graphicsРазработчик игрDeveloper, QA or testТестировщикDeveloper, AIРазработчик искусственного интеллектаBlockchainСпециалист, который создает и поддерживает приложения на основеблокчейнаHardware engineerИнженер, который занимается разработкой физического оборудования,необходимого для компьютерной системыData engineerСпециалист, ответственный за разработку, поддержку и управлениеинфраструктурой данных в организации  Рис. 2. Количество разработчиков по областям деятельности Fig. 2. Number of developers by fields of activity Чтобы определить разработчиков по типу, были отображены все уникальные значения колонки DevType. Этим значениям были присвоены определения, раскрывающие предметную область работы конкретного специалиста. Большинство респондентов заняты в области веб-разработки.С наибольшим показателем расположились full-stack разработчики – 17 500 человек. За ними следуют back-end специалисты с показателем менее 10 000. Далее, по убыванию, за ними следуют студенты и front-end-разработчики. Самыми малочисленными группами оказались дизайнеры, hardware engineer, блокчейн-разработчики и специалисты в области компьютерной безопасности.В последующем разделе будет представлен анализ ЯП. Для каждой категории сформированы тепловые карты, отражающие следующие параметры: название инструмента, метрика Count (частота упоминания DevType) для соответствующих типов специалистов. Классификация языков программирования Приступая к классификации ЯП, необходимо выявить наиболее характерную область применения для конкретной технологии в текущем датасете, а также определить ее популярность по состоянию на 2024 г. Так как технологий в датасете несколько, в этом разделе будет подробно описан метод для категории ЯП.  Далее были осуществлены следующие изменения: преобразованы списки словарей колонки LanguageWorkedWith, созданы строки для каждого языка, сгруппировано и посчитано их количество, транспонирована таблица, чтобы DevType стали колонками (табл. 3). Таблица 3Table 3Фрагмент таблицы языков программированияProgramming language table fragmentDevTypeLanguageAcademic researcherBlockchainCloud infrastructure engineerData engineerData or business analyst…0Ada25.017.010.06.014.0…1Apex8.07.010.011.011.0…2Assembly114.024.019.019.013.0…3Bash/Shell511.079.0400.0471.0116.0…4C428.040.0110.0105.052.0…5C#122.035.0123.0172.082.0…6C++468.051.096.0119.059.0……………………… Каждая строка представляет собой данные о количестве разработчиков, использующих конкретный ЯП. Однако эти данные могут быть искажены преобладающей выборкой веб-разработчиков. Исходя из цели анализа, следует учитывать долю от количества разработчиков каждого типа в таблице напротив каждого из языков. Нормализуем данные, присвоив вместо количества разработчиков их долю от максимального количества:           (1)где Mnorm(L, D) – нормализованное значение метрики для ЯП L  и типа разработчика D; M (L, D) – исходное количество разработчиков, использующих язык L  в области D; Mmax(L, D) – максимальное количество разработчиков среди всех языков для данного типа разработчика D .Формула (1) приводит значения к диапазону [0; 1], позволяя сравнивать относительную популярность ЯП среди различных категорий разработчиков (табл. 4). Таблица 4Table 4Фрагмент таблицы с нормализованными значениямиTable fragment with normalized valuesDevTypeLanguageAcademic researcherBlockchainCloud infrastructure engineerData engineerData or business analyst…0Ada0.0262610.1338580.0232560.0065360.038781…1Apex0.0084030.0551180.0232560.0119830.030471…2Assembly0.1197480.1889760.0441860.0206970.036011…3Bash/Shell0.5367650.6220470.9302330.5130720.321330…4C0.4495800.3149610.2558140.1143790.144044…5C#0.1281510.2755910.2860470.1873640.227147…6C++0.4915970.4015750.2232560.1296300.163435………………………  Далее была построена тепловая карта для каждого ЯП (рис. 3).    Рис. 3. Тепловая карта языков программирования (фрагмент) Fig. 3. Heat map of programming languages (fragment) Результаты показывают распределения значений для выбранного языка относительно группы разработчиков и позволяют оценить его востребованность.На рис. 3 представлен фрагмент этой тепловой карты, демонстрирующий распределение для 6 языков. На этом фрагменте заметно, что некоторые языки, например язык C++ или Bash/Shell, показывают относительно высокие значения для нескольких групп разработчиков, в то время как другие, например Ada или Assembly, имеют в целом более низкие показатели среди представленных на фрагменте типов специалистов. Это иллюстрирует общую тенденцию разной степени популярности и специализации ЯП.Оценка «Актуальность» заключается в классификации инструментов по трем типам: общего назначения, нишевые и отраслевые. Чтобы определить, является ли язык нишевым, был построен график (рис. 4) распределения  максимальных  значений и найдено медианное:                                (2)где Сmean – среднее значение Count; N – количество типов специалистов; Сi – значение Count для i-го типа специалистов.   а                                                                                                                                               б Рис. 4. Диаграмма распределения максимального значения Count (а) и коэффициента вариации для языков программирования (б) Fig. 4. Distribution diagram of maximum Count (а) and coefficient of variation (б) for programming languages  Медианное значение для Cmax  ЯП равно 0,21 (см. рис. 4). Это означает, что почти половина языков используется редко или в очень ограниченных контекстах. Такой высокий процент языков с низкой максимальной популярностью логично выделяет категорию «нишевых». Возьмем Cobol. У него Cmax  = 0,03, что значительно ниже порога 0,21. Cobol известен как устаревший язык, применяемый преимущественно в старых банковских системах (legacy-системах).Далее были определены стандартное отклонение и коэффициент вариации, исходя из формул                     (3)                           (4) где Cstd  – стандартное отклонение для каждого инструмента с долями использования x1, x2, x3, ..., xN по N ролям; CV  – коэффициент вариации для ЯП.Коэффициент вариации (см. рис. 4) показывает, насколько максимальная популярность языка в какой-то одной области превышает его среднюю популярность по всем областям. Если это значение больше медианного (в данном случае 0,78), то он, скорее всего, сосредоточен в узкой сфере. Если значение меньше медианы, язык используется равномерно в разных сферах.Для оценки актуальности (relevance) были определены 3 класса актуальности {0, 1, 2}, которые интерпретируются на лингвистической шкале {«общего назначения», «нишевые» и «отраслевые»}.Итоговая формула оценки актуальности выглядит следующим образомгде Сmax – максимальное значение Count для инструмента; Cmax, med – медианное максимальное значение Count для инструмента. Результаты исследования актуальности инструментов представлены в виде гистограммы на рис. 5: инструменты классифицированы и сгруппированы по трем категориям, обозначенным разными цветами в соответствии с легендой: универсальные (черный цвет), узкоспециализированные (темно-серый) и непопулярные (светло-серый).    Рис. 5. Гистограмма актуальности языков программирования по группам Fig. 5. Bar chart of programming language relevance by group Высота столбца каждой технологии на диаграмме коррелирует с уровнем ее актуальности, рассчитанным на основе анализа данных о количестве упоминаний (Count) в различных источниках, как описано в формулах (2)–(5). Языки программирования на оси X отсортированы по убыванию этого показателя для каждой группы. Наиболее крупные, выделенные черным цветом, такие как Python, JavaScript и С++, представляют собой самые популярные языки общего назначения. Темно-серым цветом отмечены отраслевые языки, например R, Kotlin и Swift, востребованные в конкретных областях. Множество ЯП в последней группе, изображенных светло-серым цветом, демонстрируют значительно меньшую актуальность, например Crystal и Delphi. Таким образом, визуальное представление наглядно демонстрирует относительную популярность и востребованность каждого инструмента, а также его принадлежность к одной из трех выделенных групп, в рамках проведенного исследования. ЗаключениеПроведен анализ востребованности технологических стеков, применяемых современными разработчиками. На основе датасета опроса «Stack Overflow 2024» рассмотрены языки программирования (ЯП). Анализ включает выявление наиболее популярных языков и оценку их «актуальности», которая определяется на основе распределения частоты упоминания конкретных ЯП среди различныхтипов специалистов. Научная новизна работы заключается в разработке и применении количественного метода классификации ЯП, основанного на анализе распределения их популярности среди различных типов специалистов. Метод использует данные опроса SO и статистические метрики, что позволяет объективно классифицировать языки как инструменты общего назначения, отраслевые или нишевые. Такой подход формирует структурированное представление об актуальном технологическом ландшафте и может использоваться для поддержки решений в области стратегического планирования разработки программного обеспечения. Ключевым результатом работы является формирование комплексного представления о текущих технологических трендах и областях применения различных инструментов. Были выявлены как инструменты общего назначения, широко используемые специалистами разных профилей, так и отраслевые решения, востребованные в конкретных сферах разработки. Полученные данные позволяют получить структурированное представление о технологическом ландшафте и могут быть полезны как начинающим, так и опытным разработчикам для выбора оптимального набора инструментов. Дальнейшие исследования будут направлены на разработку рекомендательных систем, позволяющих автоматически подбирать оптимальный стек технологий для решения конкретных задач.</p>
 </body>
 <back>
  <ref-list>
   <ref id="B1">
    <label>1.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Yang Wenhua, Shen Chaochao. Understanding the Role of Stack Overflow in Supporting Software Development Tasks: A Research Perspective // International Journal of Software Engineering and Knowledge Engineering. 2023. V. 33 (07). P. 1119–1148. DOI: 10.1142/S0218194023500274.</mixed-citation>
     <mixed-citation xml:lang="en">Yang Wenhua, Shen Chaochao. Understanding the Role of Stack Overflow in Supporting Software Development Tasks: A Research Perspective. International Journal of Software Engineering and Knowledge Engineering, 2023, vol. 33 (07), pp. 1119-1148. DOI: 10.1142/S0218194023500274.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B2">
    <label>2.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Giwangkoro G. G., Nugroho Y. S. Unveiling Research Trends in Stack Overflow: A Comprehensive Analysis of General Discussion Theme // 2024 International Conference on Smart Computing, IoT and Machine Learning (SIML). Surakarta, Indonesia, 2024. P. 130–136. DOI: 10.1109/SIML61815.2024.10578280.</mixed-citation>
     <mixed-citation xml:lang="en">Giwangkoro G. G., Nugroho Y. S. Unveiling Research Trends in Stack Overflow: A Comprehensive Analysis of General Discussion Theme. 2024 International Conference on Smart Computing, IoT and Machine Learning (SIML). Surakarta, Indonesia, 2024. Pp. 130-136. DOI: 10.1109/SIML61815.2024.10578280.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B3">
    <label>3.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Kravets A., Semenochkin D. Text Classification Technologies in Document Categorization Systems. A Survey // Advances in Systems Science and Applications. 2024. V. 24. N. 2. P. 133–165.</mixed-citation>
     <mixed-citation xml:lang="en">Kravets A., Semenochkin D. Text Classification Technologies in Document Categorization Systems. A Survey. Advances in Systems Science and Applications, 2024, vol. 24, no. 2, pp. 133-165.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B4">
    <label>4.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Silva R., Roy Ch., Rahman M. M., Schneider K., Paixão K., Dantas C., Maia M. CROKAGE: effective solu-tion recommendation for programming tasks by leveraging crowd knowledge // Empirical Software Engineering. 2020. V. 25. P. 1–52. DOI: 10.1007/s10664-020-09863-2.</mixed-citation>
     <mixed-citation xml:lang="en">Silva R., Roy Ch., Rahman M. M., Schneider K., Paixão K., Dantas C., Maia M. CROKAGE: effective solu-tion recommendation for programming tasks by leveraging crowd knowledge. Empirical Software Engineering, 2020, vol. 25, pp. 1-52. DOI: 10.1007/s10664-020-09863-2.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B5">
    <label>5.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Rubei R., Di Sipio C., Nguyen Ph., Rocco J., Di Ruscio D. PostFinder: Mining Stack Overflow posts to support software developers // Information and Software Technology. 2020. V. 127. P. 106367. DOI: 10.1016/j.infsof.2020.106367.</mixed-citation>
     <mixed-citation xml:lang="en">Rubei R., Di Sipio C., Nguyen Ph., Rocco J., Di Ruscio D. PostFinder: Mining Stack Overflow posts to support software developers. Information and Software Technology, 2020, vol. 127, p. 106367. DOI: 10.1016/j.infsof.2020.106367.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B6">
    <label>6.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Dada O. A., Obaido G., Sanusi I. T., Aruleba K., Yunusa A. A. Hidden Gold for IT Professionals, Educators, and Students: Insights From Stack Overflow Survey // IEEE Transactions on Computational Social Systems. 2023. V. 10.N. 2. P. 795–806. DOI: 10.1109/TCSS.2022.3151130.</mixed-citation>
     <mixed-citation xml:lang="en">Dada O. A., Obaido G., Sanusi I. T., Aruleba K., Yunusa A. A. Hidden Gold for IT Professionals, Educators, and Students: Insights From Stack Overflow Survey. IEEE Transactions on Computational Social Systems, 2023, vol.  10, no. 2, pp. 795-806. DOI: 10.1109/TCSS.2022.3151130.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B7">
    <label>7.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Minaoar Hossain Tanzil, Shaiful Chowdhury, Somayeh Modaberi, Gias Uddin, Hadi Hemmati. A systematic mapping study of crowd knowledge enhanced software engineering research using Stack Overflow // Journal of Systems and Software. 2025. V. 226. P. 112405. https://doi.org/10.1016/j.jss.2025.112405.</mixed-citation>
     <mixed-citation xml:lang="en">Minaoar Hossain Tanzil, Shaiful Chowdhury, Somayeh Modaberi, Gias Uddin, Hadi Hemmati. A systematic mapping study of crowd knowledge enhanced software engineering research using Stack Overflow. Journal of Systems and Software, 2025, vol. 226, p. 112405. https://doi.org/10.1016/j.jss.2025.112405.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B8">
    <label>8.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Meldrum S., Licorish Sh., Savarimuthu B. T. R. Ex-ploring Research Interest in Stack Overflow -- A Systematic Mapping Study and Quality Evaluation // arXiv:2010.12282. URL: https://arxiv.org/abs/2010.12282 (дата обращения: 17.02.2024).</mixed-citation>
     <mixed-citation xml:lang="en">Meldrum S., Licorish Sh., Savarimuthu B. T. R. Ex-ploring Research Interest in Stack Overflow -- A Systematic Mapping Study and Quality Evaluation.arXiv:2010.12282. Available at: https://arxiv.org/abs/2010.12282 (accessed: 17.02.2025).</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B9">
    <label>9.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Yuan Huang, Furen Xu, Haojie Zhou, Xiangping Chen, Xiaocong Zhou, Tong Wang. Towards exploring the code reuse from stack overflow during software develop-ment // In Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension (ICPC '22). NY: Association for Computing Machinery, 2022. P. 548–559. https://doi.org/10.1145/3524610.3527923.</mixed-citation>
     <mixed-citation xml:lang="en">Yuan Huang, Furen Xu, Haojie Zhou, Xiangping Chen, Xiaocong Zhou, Tong Wang. Towards exploring the code reuse from stack overflow during software development. In Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension (ICPC '22). New York, Association for Computing Machinery, 2022. Pp. 548-559. https://doi.org/10.1145/3524610.3527923.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B10">
    <label>10.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Vadlamani S. L., Baysal O. Studying Software Developer Expertise and Contributions in Stack Overflow and GitHub // 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME). Adelaide, SA, Australia, 2020. P. 312–323. DOI: 10.1109/ICSME46990.2020.00038.</mixed-citation>
     <mixed-citation xml:lang="en">Vadlamani S. L., Baysal O. Studying Software Developer Expertise and Contributions in Stack Overflow and GitHub. 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME). Adelaide, SA, Australia, 2020. Pp. 312-323. DOI: 10.1109/ICSME46990.2020.00038.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B11">
    <label>11.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Zhang Z., Mao X., Lu Y., Wang S., Lu J. An Empirical Study on the Influence of Social Interactions for the Acceptance of Answers in Stack Overflow // 2020 27th Asia-Pacific Software Engineering Conference (APSEC). Singapore, 2020. P. 425–434. DOI: 10.1109/APSEC51365.2020.00051.</mixed-citation>
     <mixed-citation xml:lang="en">Zhang Z., Mao X., Lu Y., Wang S., Lu J. An Empirical Study on the Influence of Social Interactions for the Acceptance of Answers in Stack Overflow. 2020 27th Asia-Pacific Software Engineering Conference (APSEC). Singapore, 2020. Pp. 425-434. DOI: 10.1109/APSEC51365.2020.00051.</mixed-citation>
    </citation-alternatives>
   </ref>
  </ref-list>
 </back>
</article>
