УДК 004.032.26
Современные тенденции в программировании
Личман А.А., Чередникова О.Ю.
ФГБОУ ВО «Донецкий национальный технический университет», г. Донецк
Кафедра компьютерной инженерии
Аннотация
Личман А.А., Чередникова О.Ю. Современные тенденции в программировании. В статье рассматриваются составные части программирования, кодинг и алгоритмизация, а также их будущее, в условиях бурно развивающейся нейросетевой автоматизации процессов. Проанализирована эволюция инструментов программирования за последние 20 лет, в том числе современный период. Рассмотрены основные различия в подходе к автоматизации кодинга и алгоритмизации. На основе предиктивного анализа современных реалий сформированы выводы о будущем кодинга и алгоритмизации, а также о том, какую роль в их будущем будут играть нейронные сети.
Ключевые слова: Кодинг, Нейросеть, Алгоритмизация, Прогноз, Алгоритмы интеллектуализации.
Lichman A.A., Cherednikova O.Yu. Modern Trends in Programming. The article discusses the components of programming, coding and algorithmizing, as well as their future, in the context of rapidly developing neural network automation of processes. The evolution of programming tools over the past 20 years, including the modern period, is analyzed. The main differences in the approach to automation of coding and algorithmizing are considered. Based on the predictive analysis of modern realities, conclusions are formed about the future of coding and algorithmizing, as well as about the role neural networks will play in their future.
Keywords: Coding, Neural network, Algorithmizing, Prediction, Algorithms of intellectualization.
Введение
Объект исследования данной статьи – программирование, прошло долгий путь развития [1], от неуклюжей древней машины, вычислительной машины Чарльза Бэббиджа (рис. 1), и манипуляций с ней, еще в первой половине 19 века, до современных сложнейших систем.
Кодинг и алгоритмизация, являясь неотъемлемой частью программирования, интересны, как объект исследования. Целью данной статьи является статистический анализ влияния современных факторов на составляющие программирования, и изложение выводов, исходя из результатов анализа.
Рисунок 1 – Вычислительная машина Чарльза Беббиджа
Тенденции в программировании
За последние 20 лет развитие именно кодинга предсказуемо продолжается в направлении простоты освоения языка и наличия в нем популярных фреймворков. По этой причине лидирующие позиции в последние 3 года занимает Python, согласно статистике американского ежемесячного журнала, издаваемого Институтом инженеров электротехники и электроники за 2022 [2] (рис. 2) и 2024 (рис. 3) годы.
Рисунок 2 – Статистика по популярности языков программирования в 2022 году
Рисунок 3 – Статистика по популярности языков программирования в 2024 году
Также в начале 2016 года никто и не мог предположить, что спустя несколько лет нейросетевой бум захватит множество сфер, от копирайтинга, творчества, безопасности, работы с данными, до кодинга. В связи с этим многие профессии и ответвления начали увядать за ненадобностью, но также открылись новые возможности.
Развитие кодинга
Кодинг в 21 веке существенно преобразился. Если ранее умелый кодер был очень востребованным и редким специалистом, а языки программирования были сложнее в освоении, то сейчас основные языки программирования делают упор на простоту. Именно языки программирования высокого уровня, то есть те, которые более понятны пользователю, сейчас лидируют на рынке. Эта тенденция сформировала огромное количество кодеров, однако их профессиональные навыки заметно снизились.
Использование нейронных сетей в кодинге
Значительно лучше многих людей код пишут, как ни странно, нейронные сети. Работа, которая ранее требовала усилий нескольких человек, теперь может выполняться парой человек и нейросетью.
В связи с этим кодеры, работа которых заключалась в наборе строчек кода в соответствии с техническим заданием (ТЗ), оказались в очень невыгодном положении, уже сейчас заметно, что ведутся разработки в направлении автоматизации кодинга.
В связи с этим можно сделать предположение, что кодеры как явление вскоре перестанут существовать в том виде, в котором мы их знаем.
Используя нейронные сети, специалист вынужден крайне точно формулировать запрос. Просто предоставить нейронной сети алгоритм, по которому следует писать, недостаточно, необходимо максимально подробно расписать требования, ведь нейросеть не способна творчески осмыслить задачу. С таких позиций пока что выгоднее и проще использовать для кодинга человеческий труд. Ведь каким бы неприглядным специалистом ни был человек, он с большей вероятностью поймет необходимую задачу.
Однако скорость, с которой нейросеть пишет код, и отсутствие ошибок, свойственных человеку порождает новые возможности.
Сейчас становится востребован кодер-посредник. Данный специалист знает основы алгоритмизации, а также хорошо владеет кодингом и является специалистом по работе с нейросетями. Кодер-посредник может курировать работу нейросети и задавать необходимые запросы для генерации кода, а при необходимости править полученный результат в соответствии с ТЗ. Работа даже одного такого специалиста значительно ускорит разработку приложений, а также их поддержку.
Развитие алгоритмизации
Алгоритмизация в 21 веке также претерпела изменения [4]. Увеличение мощности вычислительных средств дает возможность относиться к оптимизации менее дотошно, однако задачи, стоящие перед кибернетиками, также многократно возросли по сложности.
Попытки научить нейронные сети писать алгоритмы, конечно, были, и были достаточно успешные [5], однако создать кардинально новое решение, обычно стоящее перед программистами, нейросети пока не способны.
Нейросеть лишь может помочь принять решение по выбору определенного алгоритма из имеющихся, однако именно тут вскрывается главная проблема нейросетей. Нейросети не способны к творчеству. А алгоритмизация – творческий процесс.
Развитие и внедрение алгоритмов интеллектуализации
Будущие 10-20 лет не ожидается скачков в производительности ЭВМ, лишь плавное развитие, в связи с этим внедрение алгоритмов интеллектуализации, основанных на пермутационном или сегментационном методе в кодинг, является оптимальной деятельностью для поддержки стабильного развития.
Использование нейронных сетей позволяет значительно превосходить человека в сфере улучшения программ. Однако использование Алгоритмов интеллектуализации поможет в работе нейронных сетей, которые в свою очередь будут выполнять работу по улучшению имеющихся программ.
Вывод
Нейронные сети лавинообразно меняют действительность, в том числе и программирование. Благодаря вмешательству нейронных сетей монотонные действия, в том числе кодинг стали быстрее. Исходя из статистических данных (рис. 4) кодинг стал быстрее примерно на 47% благодаря вмешательству нейросетей.
Монотонные действия, требующие лишь умения, такие как кодинг, под угрозой уничтожения или полного изменения сути, а творческие профессии, например алгоритмизация, все еще остаются человеческой работой.
Рисунок 4 – Процент влияния нейросетей на прикладные задачи
Комбинирование нейронных сетей и человеческого труда в области программирования позволит быстро и просто поддерживать требуемые сферы, будь то АСУ или Экономика, до тех пор, пока техническое развитие человечества не выйдет на качественно новый уровень.
Список источников
- Развитие языков программирования // Cyberleninka [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/razvitie-yazykov-programmirovaniya/viewer.
- Top Programming Languages 2024 // SpectrumIEEE [Электронный ресурс]. – URL: https://spectrum.ieee.org/top-programming-languages-2024.
- Top Programming Languages 2022 // SpectrumIEEE [Электронный ресурс]. – URL: https://spectrum.ieee.org/top-programming-languages-2022.
- Об одной тенденции развития алгоритмов, реализуемых в системах поддержки принятия решений // Cyberleninka [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/ob-odnoy-tendentsii-razvitiya-algoritmov-realizuemyh-v-sistemah-podderzhki-prinyatiya-resheniy/viewer.
- Нейро-ГАФ: метод и программная реализация // Казанский федеральный университет [Электронный ресурс] – URL: https://kpfu.ru/staff_files/F1493580427/NejronGafGal.pdf.