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

Эволюция языков программирования

С появлением первых языков программирования, таких как Фортран и Кобол, программисты смогли перейти от написания машинного кода к использованию более понятных и структурированных инструментов. Однако, несмотря на значительный прогресс, разработка программного обеспечения оставалась сложным и трудоемким процессом, требующим глубоких знаний и опыта. Высокоуровневые языки программирования, такие как C, C++, Java и Python, упростили разработку и позволили создавать более сложные и масштабируемые системы, но по-прежнему требовали значительных усилий.

Введение Agile методологий

В начале 2000-х годов популярность набрали Agile методологии, которые предложили новые подходы к управлению проектами и взаимодействию в командах. Эти методы фокусировались на итеративной разработке, гибкости и адаптивности к изменениям, что позволило сократить время разработки и повысить качество продуктов. В сочетании с инструментами для непрерывной интеграции и доставки (CI/CD) это значительно улучшило процесс разработки и взаимодействие между заказчиками и разработчиками.

Роль библиотек и фреймворков

С развитием технологий программисты начали использовать библиотеки и фреймворки для ускорения и упрощения разработки. Эти инструменты предоставляли готовые решения для распространенных задач, таких как работа с базами данных, создание пользовательских интерфейсов и обработка сетевых запросов. Однако, несмотря на все улучшения, процесс разработки оставался трудоемким и требовал значительных знаний и навыков.

Переход к естественному языку

С развитием искусственного интеллекта и языковых моделей, таких как ChatGPT от OpenAI и Gemini от Google DeepMind, начинается новая эра, где взаимодействие с компьютерами становится более естественным и интуитивным. Компьютеры могут понимать и генерировать текст на человеческом языке, что позволяет создавать программные продукты через диалог с машиной, а не через кодирование. Этот переход к использованию естественного языка для создания и управления программными системами открывает новые возможности и меняет подход к разработке.

Языковые модели и их влияние

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

Появление низкокодовых и безкодовых платформ

Одним из самых значительных шагов в этом направлении стало появление низкокодовых и безкодовых платформ. Эти инструменты предоставляют визуальные интерфейсы для создания логики приложений, интеграции различных сервисов и автоматизации процессов без необходимости писать код. Пользователи могут создавать сложные приложения, просто перетаскивая элементы и настраивая параметры, используя логическую последовательность действий. Такие платформы, как Microsoft Power Apps, OutSystems и Appian, уже завоевали популярность благодаря своей доступности и простоте использования.

Влияние на рынок труда

Как следствие, роль традиционных программистов начинает трансформироваться. Программисты уже не только пишут код, но и становятся архитекторами систем, интеграторами технологий и специалистами по взаимодействию с AI. Спрос на специалистов, способных работать с новыми технологиями и адаптироваться к изменениям, будет только расти. В будущем нас ждут новые виды специалистов, которые будут играть ключевую роль в IT-индустрии:

Специалисты по взаимодействию с AI

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

Архитекторы систем

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

Специалисты по данным и аналитике

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

Этика и ответственность

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

Заключение

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

Комментарии (14)


  1. FurySeer
    17.07.2024 10:10
    +3

    Забыли ссылку на свой ТГ-канал в конце поставить


  1. ganqqwerty
    17.07.2024 10:10
    +3

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


    1. piton369
      17.07.2024 10:10

      Согласен. Скорее будут отдельные инструменты для отдельных IDE, систем, устройств и языков.

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


      1. ganqqwerty
        17.07.2024 10:10
        +1

        Это то, что обещали нам в сири в феврале 2010го года, 14 лет назад. Выросло целое поколение, а у нас до сих пор нет базовых юзкейсов.


        1. janvarev
          17.07.2024 10:10

          Почему нет? Сири отлично ставит таймер, рекомендую :))


          1. Tyusha
            17.07.2024 10:10

            ... у 3D-телевизора


  1. Batalmv
    17.07.2024 10:10

    Мне кажется, что уже сейчас, при правильном подходе это все достижимо

    Генерация типового кода типа контролер, entity, repository і т.д. працює на ура

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

    ------------

    Т.е. в целом да, все это уже есть, просто надо начать пользоваться


    1. sshikov
      17.07.2024 10:10

      контролер, entity, repository і т.д

      Это потому что у вас типовое (более чем) веб приложение. И то, бизнес логику свою вы модели доверять не собираетесь, как я вижу?

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


      1. Batalmv
        17.07.2024 10:10

        Ну да, но ведь и подход описывается для типовых (== массовых приложений). Понятно, что с нишевыми не очень

        Обучать же модель - а смысл? Бизнес логика то разная. Тут как раз и проблема, так как шаблон скормить легко и он 99% рабочий. По сути тим лид через модель диктует правила "как надо"

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

        -------------------

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

        Но у всех опыт разный


        1. sshikov
          17.07.2024 10:10

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


      1. stracca
        17.07.2024 10:10

        До этого пока что далековато

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

        При желании и достаточном времени для обучения можно скармливать ей информацию и тем самым подстраивать её под себя, в том числе в таком виде:

        можно будет объяснить, что вот такие конструкции - это неэффективно по памяти, например, или у них такие-то преимущества


        1. sshikov
          17.07.2024 10:10

          Что такое LoRA? Мне только одна такая аббревиатура попадалась, и она не про модели и обучение.


          1. stracca
            17.07.2024 10:10

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


            1. sshikov
              17.07.2024 10:10

              Да, идея понятна. Практически не очень понятно, насколько оно дообучится само, или же нужен специалист (или два специалиста - один в области ML, а второй в прикладной).