В современном компьютерном и интернет-мире всё взаимодействие, не только пользователей, а в общем со структурой выстраивается с помощью различных программ, интерфейсов, и подобных им оптимизированных для простого человека сложных разработках. Но кто же занимается непосредственно разработкой различного вида software? Первый ответ, который придет в голову обывателю – это конечно же ПРОГРАММИСТ. Если обобщить в понятие программист всевозможные виды и подходы к разработке, можно согласиться с ответом обывателя. Давайте рассмотрим всех инженеров, backend, frontend разработчиков как единое понятие – программист.

Что делает программист для того, чтобы создать приложение, сайт или какую-то иную сущность для взаимодействия в сети Интернет или просто в компьютерах? Правильно, пишет код! Кодов в современном «программировании» – это бесчисленное количество. Языков программирования для написания этих кодов уж точно не меньше… Как помочь программисту в этой нелегкой задаче, что может существенно облегчать или способствовать его работе? Ведь огромный проект даже в руках умелого разработчика может занимать дни, месяца, года, века… Для создания компьютерных игр у огромных компаний, где работают буквально тысячи высококвалифицированных профессионалов, уходят годы… Конечно же, можно напрямую поспособствовать программистам в их нелегкой задаче – сделать массаж, приготовить им покушать, включить приятную музыку для атмосферы, но это практически никак не повлияет на производительность, разве что ускорит выполнение ими естественных биологических потребностей.

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

В своей статье я не только расскажу вам о шаге в будущее, об идеальном применении «Трёх законов робототехники» (по Айзеку Азимову) и настоящем IT прогрессе, а даже покажу это чудо на практике! Речь пойдет о «GitHub Copilot». Настоятельно рекомендую ознакомиться со всем, что здесь будет написано, я уверен, что вы не пожалеете и обязательно воспользуетесь возможностью, которую я вам покажу!

Краткий экскурс в само понятие GitHub Copilot для гуманитария. Существует такой сайт – github.com, представляющий из себя открытый репозиторий, а проще говоря онлайн-сервис хранения и синхронизации кода для программистов и разработчиков приложений. Главной целью этого сервиса и является поддержка совместной разработки проектов и контроля версий.

Летом 2021 года один из крупнейших IT-гигантов компания Microsoft совместно со своей дочерней компанией GitHub объявила о запуске системы Copilot («второй пилот») – нейросети, способной правильно писать код за разработчиков. Давайте попробуем выяснить, как это всё работает, на что способен искусственный интеллект, как получить доступ к сервису, а также сможет ли компьютер написать программу за того, кто думает, что Python это английское название одного из видов змей.

Что такое Copilot?

Генеральный директор GitHub Нэт Фриндман в своём блоге говорит о разработке просто:

«GitHub Copilot — ваш искусственный напарник-программист».

Система в реальном времени анализирует код, который пишет пользователь, а затем предлагает варианты его продолжения в виде отдельных фрагментов или целых функций. Напоминает подсказки к запросам в интернет-поисковике, не так ли?

Самая интересная способность “Copilot” — превращать обычные человеческие слова и предложения в программный код. Расширение работает на базе нейросети Codex компании OpenAI, которая способна переводить английский язык в язык программирования. По крайней мере, так кажется пользователю.

Получается, программа просто берёт подходящий под контекст код из хранилища данных GitHub. Разве она не ошибается? Может он только мешает своими глупыми вставками!

Давайте проанализируем: В последнем исследовании разработчики сервиса обнаружили, что пользователи приняли в среднем 26% всех подсказок, показанных GitHub Copilot. Также было подсчитано, что GitHub Copilot создает в среднем более 27% файлов кода разработчиков, а на некоторых языках, таких как Python, этот показатель достигает 40%. Однако GitHub Copilot не пишет идеальный код. Он предназначен для создания наилучшего возможного кода с учетом контекста, к которому у него есть доступ, но он не проверяет предлагаемый код, поэтому программа не всегда может работать без дополнительного вмешательства человека или вовсе иметь смысл… Для предлагаемого кода некоторые языки, такие как Python, JavaScript, TypeScript и Go, могут работать лучше, чем другие языки программирования, ведь база для нейросети формируется из анализа разработок других людей, а другие люди пишут на том, что имеет спрос и популярность. Как и любой другой код, варианты, предложенные GitHub Copilot, должны быть тщательно протестированы и проверены. Как разработчик, вы всегда несете ответственность.

GitHub GOpilot

Давайте же применим наш искусственный интеллект на практике. Ниже демонстрируется работа на языке программирования Java. Попросим нашего робота создать программу, перемножающую две матрицы размера 3х3. Писать такой код руками вышло бы 5–10 минут в руках умелого программиста, ведь нужно не только написать, но и продумать алгоритм, как будет происходить умножение.

Первым делом создадим класс, отвечающий за перемножение двух заданных матриц.

Для этого напишем программе прямым текстом то, что мы от нее хотим: «multiply matrix A and B and return the result». Перемножь матрицы А и Б и верни результат. Примечательно то, как вы можете заметить, что программа выдает подсказки даже в написании ей задачи… Далее просто нажимаем Enter, ждем буквально одну секунду, и программа выдает нам готовый код для поставленной задачи, нажимаем Tab и код интегрируется в нашу программу! Великолепно, идем дальше. Следующим шагом просто создаем экземпляр нашего класса-калькулятора, задаем две матрицы для работы (даже с этим программа помогла, но я решил увеличить матрицы с 2х2 до 3х3 вручную), а затем просто нажимаем Tab, Tab, Tab, Tab и запускаем программу!

Результатом работы данной программы служит такая матрица:

Теперь давайте обратимся к обычному онлайн калькулятору, передадим ему наши исходные матрицы и проверим, не ошибся ли наш помощник???

Невероятно! Результаты идентичны, но вы можете сказать: «Пфф, ну это легко, с нормальными задачами то он не справится, умножать любой может». А давайте проверим!

Типичная задачка на алгоритмы в Java. Написать программу, сортирующую положительные числа методом Cocktail Sort (ниже описан принцип работы этого метода сортировки)

Скопируем задание и вставим его в среду разработки для нашей нейросети:

Запускаем с данными, которые используют в примере составители задачи:

Итог:

Смотрим решение составителей:

import java.util.Arrays;
class cocktailSort
{
    void cocktailSort(int nums[])
    {
	  boolean swapped;
	  do {
		swapped = false;
		for (int i =0; i<=  nums.length  - 2;i++) {
			if (nums[ i ] > nums[ i + 1 ]) {
				//test if two elements are in the wrong order
				int temp = nums[i];
				nums[i] = nums[i+1];
				nums[i+1]=temp;
				swapped = true;
			}
		}
		if (!swapped) {
			break;
		}
		swapped = false;
		for (int i= nums.length - 2;i>=0;i--) {
			if (nums[ i ] > nums[ i + 1 ]) {
				int temp = nums[i];
				nums[i] = nums[i+1];
				nums[i+1]=temp;
				swapped = true;
			}
		}
	} while (swapped);
}
    // Method to test above
    public static void main(String args[])
    {
        cocktailSort ob = new cocktailSort();
        int nums[] = {7, 5, 3, 2, 1, 12, 45};
        System.out.println("Original Array:");
        System.out.println(Arrays.toString(nums));
        ob.cocktailSort(nums);
        System.out.println("Sorted Array");
        System.out.println(Arrays.toString(nums));
    }
}

Смотрим ответ:

Сверяем:

Безупречно.

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

Отдайте мне…

Наверняка вам стало интересно, а как получить это добро и использовать в своих целях? Поспешу разочаровать всех, кто не является студентом или работником Университета ИТМО – с 21.06.2022 сервис GitHub Copilot стал платным, что по мне очень логично, такой функционал не мог долго существовать в свободном доступе… Но если вы всё же студент или сотрудник ИТМО, GitHub Copilot принадлежит вам по праву, и не только он…

GitHub Student Developer Pack

«Learn to ship software like a pro. There's no substitute for hands-on experience. But for most students, real world tools can be cost-prohibitive. That's why we created the GitHub Student Developer Pack with some of our partners and friends».

Для получения привилегий сервисов GitHub, в том числе и Copilot, достаточно зарегистрироваться на сайте GitHub и подать заявку на получение статуса PRO по студенческой «льготе». Для этого будет необходимо прикрепить фото студенческого билета и прикрепить почтовый ящик на домене университета.

Подробная информация, конечно: тут

Установка

Установка сервиса в вашу интегрированную среду разработки тоже до невозможности проста. Покажу на примере PyCharm от компании JetBrains.

Summary.

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


xhackerino. 2022

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


  1. JordanCpp
    01.07.2022 23:27
    +3

    То есть шутка про написать doom за вечер, становиться явью? Ничоси:)


    1. WillisHW
      04.07.2022 09:58

      Моему другу который ещё в бета тесте учавствовал copilot вообще яп на питоне написал ахах


  1. JordanCpp
    01.07.2022 23:35
    +4

    Эту штуку разрабатывает Microsoft, а они разрабатывают windows. Подождите, то есть...


  1. Xadok
    01.07.2022 23:37
    +4

    А причем тут C++? В статье о нём ни слова. Хотя было бы очень интересно увидеть, как это работает как раз на примере самого сложного варианта.


  1. mOlind
    01.07.2022 23:43

    Для go Copilot умеет генерить пристойные заготовки функций или циклов. Порой подсказывает вызовы и параметры системных функций и алгоритмы.


  1. staticmain
    02.07.2022 01:03
    +34

    Тем временем опенсорсные сообщества призывают отказаться от github именно из-за того, что Copilot по сути ворует куски кода из других проектов не обращая внимания на лицензию, под которой был написан проект. Мало того, даже MIT лицензия требует указания авторства. Т.е. microsoft создала продукт, который игнорирует любые опенсорсные лицензии, а теперь продает его за деньги.

    https://habr.com/ru/news/t/674574/


    1. mwc-lord
      02.07.2022 01:43
      -13

      На самом деле проблема го-о-о-раздо глубже.

      Это же натурально, искуственный штрэйкбрехер!

      Подобная система за пару лет способна заменить 95% ИТ-специалистов. И покончить с перманентным дефицитом оных.

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


      1. alexshipin
        02.07.2022 05:26
        +9

        Подобная система не способна заменить 95% ИТ-специалистов.

        Что такое Copilot? Это по сути своей поиск похожего по тем решениям, что опубликованы в OpenSource, вашему с целью уточнить у вас "Слушай, я нашёл подобное. Может оно тебе подойдет, чтобы ты не писал сам?". И, слово "copilot" является производным от "co-pilot", которое в свою очередь переводится как "второй пилот".

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

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

        PS: Кстати, прятать код из репозиториев не надо, достаточно сделать его не публичным и с доступом только определенному кругу лиц :) И, в этом случае, если Copilot уже не будет использовать решение, которое было в данном репозитории, но будет искать похожее :)


        1. halfworld
          02.07.2022 05:50
          +30

           "copilot" является производным от "co-pilot"

          С моим слабым английским слышится "copy a lot".


        1. Jian
          02.07.2022 12:42
          +1

          прятать код из репозиториев не надо, достаточно сделать его не публичным и с доступом только определенному кругу лиц :) И, в этом случае, если Copilot уже не будет использовать решение

          Вы сами хоть в это верите?


          1. alexshipin
            02.07.2022 14:02
            -1

            более скажу, это именно так и работает :)


            1. KanuTaH
              02.07.2022 21:18
              +1

              Откуда такая уверенность в том, как именно это работает?


            1. tregor
              03.07.2022 19:06
              +1

              Copilot это искусственный интеллект, который обучался на больших объемах тестовых данных.

              Уверен, что Microsoft без зазрения совести скормила своей сеточке все имеющиеся репозитории не обращая внимания на лицензии!

              Нейросеть нельзя обучать на плохих данных, а хороший код в паблике не лежит


            1. Alequez97
              04.07.2022 09:42

              Откуда такая уверенность, что заявление об использовании в обучении кода только из публичных репозитеориев это правда?


      1. MAXH0
        02.07.2022 08:35
        +8

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

        Copilot, даже находясь в общественном достоянии, не способен заменить 95% программистов просто потому, что на 2000% он вашу эффективность не повысит. Каждый, кто сталкивался с новомодным Зеро-кодингом, понимает границы применимости подобных решений. Работа программиста не писать код, а думать!

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


        1. nikolas78
          02.07.2022 13:01

          Но ведь и задач абсолютно уникальных не 100%! Потому сойдемся на 50/50. Похоже останутся только умные сеньоры и глупенький (но продуктивный) ИИ.


          1. Jian
            02.07.2022 14:19
            +2

            останутся только умные сеньоры и глупенький (но продуктивный) ИИ

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

            https://habr.com/ru/post/458224/ "Софт для Boeing-737 Max писался аутсорсерами, зарабатывающими $9 в час"

            Copilot резко повышает "производительность" именно индусов, делая их на гораздо более привлекательными, чем те кто за работу просит больше.


            1. nikolas78
              02.07.2022 14:35

              Так вроде наоборот — Copilot целится именно в «индусов».


              1. Jian
                02.07.2022 14:50
                +3

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


            1. me21
              02.07.2022 21:49

              Не. Копайлот пишет мелкие функции типа "перемножить две матрицы и вернуть результат". Индусы и джуны на такие мелкие куски задачу не разобьют.


              1. Jian
                04.07.2022 08:05

                Индусы умеют разбивать a = 2 * 5 на

                a = 0
                a = a + 2
                a = a + 2
                a = a + 2
                a = a + 2
                a = a + 2


          1. 0x131315
            02.07.2022 16:13

            Так это не ИИ, оно само ничего не пишет


      1. playermet
        02.07.2022 10:59
        +1

        Подобная система за пару лет способна заменить 95% ИТ-специалистов

        Пока еще не может. Но даже если когда-то сможет, это не значит что 95% ИТ-специалистов потеряют работу. Это значит что у ИТ-специалистов станут требовать в 20 раз большей эффективности.


        1. Jian
          02.07.2022 13:54
          +1

          не значит что 95% ИТ-специалистов потеряют работу. Это значит что у ИТ-специалистов станут требовать в 20 раз большей эффективности

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


          1. playermet
            02.07.2022 15:05
            +1

            Как показывает реальная история с рухнувшим Боингом

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

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


            1. Jian
              02.07.2022 16:59
              +4

              У того кто вдумчиво проверяет написаннное копайлотом, производительность практически не вырастет

              На порядок вырастет "производительность" индуса, который ничего проверять не станет, а постарается написать побольше ради высокого KPI.


      1. yokotoka
        02.07.2022 16:10
        +5

        Да просто очередная экспертная система, которая подсказывает специалисту и помогает экономить время. Давно там IBM Watson заменил всех врачей и сам делает операции по RDP?


    1. Alexey2005
      02.07.2022 07:40
      +2

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


      1. MAXH0
        02.07.2022 10:49
        +3

        Всё хитрее. Авторское право на творчество нейросетей не распространяется и пока эта сфера не определена в правовом поле. НО рано или поздно определенность наступит. И тут возможны варианты:
        1. Признать творчество нейросетей общественным достоянием.
        2. Признать собственностью владельца алгоритма нейросети
        3. Признать собственностью разработчика определившего параметры нейросети для творчества.
        Будет неприятным сюрпризом если соавтор-бот предъявит авторские права на совместно разработанный с Вами код, не так ли?


        1. dyadyaSerezha
          02.07.2022 11:31
          -1

          Не про этап творчества речь, а про этап обучения.


        1. Alexey2005
          02.07.2022 12:15
          +3

          Речь о другом.

          1. Нейросеть обучается на огромном количестве проприетарщины, и с формальной точки зрения после этого вся нейронка является производным произведением, пользоваться которым нельзя без разрешения всех тех, чья интеллектуальная собственность использовалась для обучения. Вот только доказать, что конкретно ваша ИС была в датасете, практически невозможно.
          2. Что, если нейронка использует в качестве рефа-«затравки» чью-то ИС? Скажем, вы копируете кусок проприетарного кода и просите нейронку его дописать, потом начало выкидываете, оставляя только дописанное. Формально получается тоже производное произведение, но тут доказать нарушение копирайта ещё труднее.
          3. Нейронки вида «перефразировать текст», «перерисовать ту же картинку в другой стилистике» — это опять же создание производных произведений, причём ещё более близкое к плагиату. Но доказать факт плагиата опять же непросто, особенно если переделано достаточно сильно.


        1. lxsmkv
          04.07.2022 00:52

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

          А вот получить обратно данные которые были отправлены на обработку думаю нереально. Ведь в плане GDPR они в принципе не являются персональными данными.


    1. Jian
      02.07.2022 13:56

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

      Уговоры не помогут никак.

      Могут подать в суд, если хотят, что не помешает появлению пиратских версий колпайлота.


    1. DeepFakescovery
      02.07.2022 15:24

      меня больше волнует сколько багов в конечном продукте получится из этих кусков кода


      1. staticmain
        02.07.2022 18:12

        Просто корпорации думают, что если взять джуна с копайлотом - то он напишет код на уровне сеньёра. Количество багов всё равно зависит от джуна.


  1. snobit
    02.07.2022 09:25
    +10

    Для этого напишем программе прямым текстом то, что мы от нее хотим: «multiply matrix A and B and return the result»

    Теперь, вместо того, чтобы использовать библиотеку для работы с матрицами у нас будет куча копипасты? Еще и не известного качества


    1. xcono
      02.07.2022 10:43

      К слову, библиотеки Copilot предлагает тоже.


    1. rdo
      02.07.2022 11:34
      +11

      Зачем вам годами отлаживаемые и проверяемые библиотеки от Apache Foundation, вот вам наш проприетарный черный ящик, его выучили на миллиардах Laba1 пользователей гитхаба, теперь он будет писать код за вас. Фюче из нау, олд мэн.


    1. Sipaha
      04.07.2022 09:58

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


  1. dyadyaSerezha
    02.07.2022 11:40
    +3

    Благо искусственный интеллект умеет выполнять рутинные действия в считанные секунды, не допуская при этом ни одной ошибки!!!

    Абсолютный бред. Допускают приемлемое количество ошибок.

    И насчет того, что не могло оставаться долгое время в свободном доступе - почему не может? Линукс может, Андроид может, даже Facebook, поиск Google и Gmail могут ли ещё десятки глобальных систем), а тут не может? Бред.

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

    В общем MS захотела еще больше бабла.


  1. static_cast
    02.07.2022 15:28

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

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


    1. 0x131315
      02.07.2022 18:28
      +1

      Нет, в течении десяти лет такое недостижимо.

      Да, работа с ast-деревом доступна уже сейчас. Сейчас большое количество софта именно на этом уровне с кодом и работает.

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

      Даже у человека дойти до уровня этих приказов займет 3-5 лет.

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


      1. static_cast
        02.07.2022 19:33

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

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


  1. KvanTTT
    02.07.2022 17:04
    +3

    Тем кто топит за копирайт. Ну так ведь программисты тоже являются нейросетями, они тоже могут запомнить проприетарный код, который они когда-то увидели и на основе него что-то писать. С другой стороны, нейросеть предлагает не точные куски, она тоже может "переваривать" свой опыт. Так что границы авторского права размываются.


  1. OlegZH
    02.07.2022 18:07

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

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

    Необходимо работать над проверкой этих гипотез чтобы делать наш мир лучше!

    Да-да. Конечно!

    Пишите нам и помните, что Microsoft компания всегда думает о том, как вас лучше сделать.


  1. denis-isaev
    03.07.2022 00:10
    +1

    Интересно, предлагает ли copilot куски кода из исходников продуктов MS?