Чтобы вместо бездумного копирования кода было реальное изучение того, как он работает, нужна революция в UI/UX. Чтобы кругозор не ограничивался только тем, что есть в данном куске кода, тоже нужна революция UI/UX
Даже если и работает сразу (что уже далеко не всегда), то с добавлением правок в какой-то момент все равно всплывают баги. И длиннее чат, тем их больше. Как ему не скидывай ошибки, он либо не правит баг но говорит что правит, либо правит баг но порождает новый, либо правит новый баг, но при этом опять выскакивает старый. А если чат уж очень длинный, то он начинает допускать даже синтаксические ошибки, которые определяются IDE еще на этапе копирования кода в файл. И это не какой-то там старый GPT, это самая последняя модель GPT-4,5. И это с учетом того, что изначально при постановке задачи был приложен весь необходимый контекст (диалог велся не в веб-версии, а в IDE, где сразу можно приложить конкретные файлы либо symbols в качестве контекста). А ошибки скидывались скринами. Сколько не писал с помощью ChatGPT, все равно в конечном итоге с какого-то момента приходилось делать самому.
Нет, не так. "Хочу чтобы не нужно было знать теорию, и чтобы обо всем можно было догадаться на месте" и "хочу чтобы заниматься практикой можно было в 100 раз быстрее"
Вот еще аргумент, помимо того что я описал в комментарии, зачем он нужен. Чтобы преодолеть "порог лени" и не уйти, когда вы хотите добавить функцию/языковую конструкцию в свой код, но боитесь допустить ошибку и в итоге ее не пишете. Необходимость писать самому может просто многих остановить
Я не совсем правильно выразил мысль - когда увидел функцию в списке - удобнее перетащить ее (писать самому будет лень). Когда функция часто используется - о ней и так помнишь безо всякого списка, поэтому тогда удобнее написать ее вызов самому (тем более что есть автокомплит).
И даже для ИИ-ассистента тоже может потребоваться Drag-n-Drop - если я захочу, чтобы он сгенерил не абы какой код, а именно из того, что я увидел в списке - то передать ему названия увиденного будет удобней тоже через Drag-n-Drop. Визуально список переданных названий скорее всего будет выглядеть так, как список файлов, приложенных как контекст в чате с ИИ
Я пользуюсь всем что вы перечислили. ChatGPT уже два года как. И вопросы ему задавал, и код он тоже для меня писал. Вот только я к тому моменту, как начал им пользоваться, уже не был новичком в программировании. А новички на одном ИИ далеко не уедут. Были истории о том, как ChatGPT помогал людям с улицы устроиться программистом, выполняя за них тестовое задание, но что-то не слышно историй о том, чтобы эти люди удержались в должности
А кто сказал что не будут? Будут, но не по каждому чиху. То что вокруг ИИ большой хайп, это не значит, что он применим вообще везде. Нельзя например у людей забрать карту города и сказать: "Теперь спрашивайте у ИИ, где вы находитесь". Хотя ИИ и может стать дополнением к тем же навигаторам.
А пользователи потенциально бесполезны как раз в том случае, если они отвалятся. А если нет, то не такие уж они и бесполезные
Кстати, можно было бы и библиотеки вывести списком, и возможно с возможностью установки при клике. Но только список не весь, а допустим первые 10-20 наиболее популярных, с возможностью подгрузки. Ну и поиском, чтобы отфильтровать результаты. Ну в общем, сделать примерно как на сайтах репозиториев этих самых библиотек - только уже встроить в IDE. Конечно, могут быть сложности с реализацией - у каких нибудь языков может не быть центрального репозитория для этого, но думаю что проблемы можно будет решить при желании. Если будет список, то хотя бы можно будет узнать о том, что библиотеки вообще есть. А если уж нужно понять, какая библиотека нужна для решения конкретной задачи, то тут уже конечно лучше ИИ спросить.
Если эти самые возможности попадают в автокомплит, значит в и в списке они окажутся. Но как минимум можно будет пройтись по стандартным возможностям. И вообще предполагается, что кастомные классы/функции, и из фреймворков, тоже могут попасть в список
А дальше вы просто спросите у ИИ — что вам дальше делать, если не знаете. Или зададите какой-то другой интересующий вас вопрос.
Что сделает 1 человек из 10, а остальные развернутся и уйдут. А главное, из ответа ИИ все также нельзя будет получить общую картину о языке, ведь он приведет 2-3 примера. И то это будут даже не примеры кода, а примеры того, что можно сделать, примеры придется выпрашивать дополнительно. Пройтись по возможностям языка не получиться, ведь каждый раз нужно будет по кругу задавать ИИ цепочку вопросов ради каждого нового действия.
Если вам просто хочется знать возможности стандартной библиотеки какого-либо языка, то лучше и проще будет обратиться к документации по этой библиотеке.
До которой опять доберется один человек из 10, кто-то не найдет, а кто-то даже искать не будет. Помимо того, что нет гарантии, что ее найдут, также нет и гарантии, что она разложена иерархически, как я уже писал в другом коменте. Встроенная документация на то и нужна, чтобы не гуглить ее.
Вот вы опять приводите пример, когда уже известно что-то конкретное, что хотелось бы сделать, а я просто чисто ради интереса заходил. На этом этапе я не обязан знать, для чего там язык предназначен. Какой я список хотел бы увидеть, это и так описано в начале статьи, не думаю, что у Python вместо функций, языковых конструкций и операторов какие-то другие сущности (а если они и есть, то тоже должны присутствовать по тем же принципам).
Но допустим я даже и знаю, какое конкретно назначение меня интересует, но только назначение, без конкретной идеи. И допустим это назначение - сайты, и вот я делаю то что вы и описали:
Мало того, что ИИ вам даст начальный код, так он и проинструктирует, как именно его нужно запустить и что дальше с ним делать.
И в этом самом коде будет та самая заветная строчка-комментарий "//Ваш код начинается здесь". А дальше что? А дальше снова начинается та же самая история, которую я уже описал
Выискивать это уже скорее другой случай, список больше нужен чтобы было с чем поиграться, когда из любопытства зашел в IDE произвольного языка. И зашел из любопытства - это не тоже самое, что зашел с конкретной идеей и попросил ИИ ее реализовать. Тут как раз случай когда такой идеи нет. Я вот пробовал ради интереса зайти в рандомную IDE (вроде это PyCharm был) и попросил ИИ-помощник что-то написать. Так он взял и написал hello world. А дальше все по старому - по прежнему непонятно что делать. Просить его что-нибудь добавить - ну он может и добавит еще одну строчку, но свою фантазию проявить явно не получиться - для нее список и нужен
И упомянутая вами фича не является более совершенной хотя бы потому, что содержит в себе элемент рутины - само написание промпта, тогда как обращение к ИИ может быть уже встроено в тот же Drag-n-Drop, без необходимости написания. Да и сам ИИ в данном случае нужен далеко не всегда
То, что человек будет знать о функции, не означает, что он будет использовать её правильно.
Если он ее будет писать в IDE, а не в блокноте, то сам вызов функции он уже напишет правильно, поскольку IDE (как минимум те, что от Jetbrains) подсвечивают все необходимые параметры уже сейчас, а также указывают их типы.
ИИ может пригодится уже на следующем этапе - получение значений параметров, если там допустим параметры сложных типов (но это больше актуально для для кастомных функций). Тогда ИИ напишет код для получения этого значения. И то это будет актуально только для языков с нестрогой типизацией - для языков со строгой типизацией скорее всего можно будет сгенерировать код безо всякого ИИ (если только экземпляр класса не зависит от параметров, которые заполняются не в конструкторе, и то возможно что не пригодится). К ИИ нужно обращаться только тогда, когда без него уже не обойтись
С этой точки зрения написать комментарий для ИИ: «Сделай вот тут мне такое» даст больше эффекта.
Вот только написание промптов само по себе может стать рутиной, особенно если пробовать за день по 100 функций. А тот же Drag-n-Drop может в случае необходимости обратиться к ИИ автоматически, имея заранее заготовленный шаблон промпта. И в итоге будет тот же сгенерированный ИИ код, но без необходимости ручного обращения к ИИ
Ага, удачи освоить С++ за один день по подсказкам IDE :)
Подсказки это теория, а программирование изучается через практику, и главная задача - ускорить эту самую практику на порядки. Подсказки это уже дополнительный фактор, нужный больше при изучении готового кода
Любой язык так или иначе изучается опытным путем. Если вдруг появляется возможность ускорить проведение экспериментов в 100 раз, значит и язык будет освоен в 100 раз быстрее. И главная фича, которая должна это обеспечить - это фичи выполнения кода из REPL GUI. Ну и список, если изучение начинается не с готового куска кода, а с пустого проекта. Остальные фичи по большей части нужны для того, для того чтобы компенсировать отсутствие знаний при изучении готового куска кода/проекта.
Оно зависит от того, нужно ли ради этого танцевать с бубнами или нет. Если нужно, то многие предпочтут не копать, им будет просто лень
Чтобы вместо бездумного копирования кода было реальное изучение того, как он работает, нужна революция в UI/UX. Чтобы кругозор не ограничивался только тем, что есть в данном куске кода, тоже нужна революция UI/UX
Даже если и работает сразу (что уже далеко не всегда), то с добавлением правок в какой-то момент все равно всплывают баги. И длиннее чат, тем их больше. Как ему не скидывай ошибки, он либо не правит баг но говорит что правит, либо правит баг но порождает новый, либо правит новый баг, но при этом опять выскакивает старый. А если чат уж очень длинный, то он начинает допускать даже синтаксические ошибки, которые определяются IDE еще на этапе копирования кода в файл. И это не какой-то там старый GPT, это самая последняя модель GPT-4,5. И это с учетом того, что изначально при постановке задачи был приложен весь необходимый контекст (диалог велся не в веб-версии, а в IDE, где сразу можно приложить конкретные файлы либо symbols в качестве контекста). А ошибки скидывались скринами. Сколько не писал с помощью ChatGPT, все равно в конечном итоге с какого-то момента приходилось делать самому.
Нет, не так. "Хочу чтобы не нужно было знать теорию, и чтобы обо всем можно было догадаться на месте" и "хочу чтобы заниматься практикой можно было в 100 раз быстрее"
Я не совсем правильно выразил мысль - когда увидел функцию в списке - удобнее перетащить ее (писать самому будет лень). Когда функция часто используется - о ней и так помнишь безо всякого списка, поэтому тогда удобнее написать ее вызов самому (тем более что есть автокомплит).
И даже для ИИ-ассистента тоже может потребоваться Drag-n-Drop - если я захочу, чтобы он сгенерил не абы какой код, а именно из того, что я увидел в списке - то передать ему названия увиденного будет удобней тоже через Drag-n-Drop. Визуально список переданных названий скорее всего будет выглядеть так, как список файлов, приложенных как контекст в чате с ИИ
Я пользуюсь всем что вы перечислили. ChatGPT уже два года как. И вопросы ему задавал, и код он тоже для меня писал. Вот только я к тому моменту, как начал им пользоваться, уже не был новичком в программировании. А новички на одном ИИ далеко не уедут. Были истории о том, как ChatGPT помогал людям с улицы устроиться программистом, выполняя за них тестовое задание, но что-то не слышно историй о том, чтобы эти люди удержались в должности
А кто сказал что не будут? Будут, но не по каждому чиху. То что вокруг ИИ большой хайп, это не значит, что он применим вообще везде. Нельзя например у людей забрать карту города и сказать: "Теперь спрашивайте у ИИ, где вы находитесь". Хотя ИИ и может стать дополнением к тем же навигаторам.
А пользователи потенциально бесполезны как раз в том случае, если они отвалятся. А если нет, то не такие уж они и бесполезные
Кстати, можно было бы и библиотеки вывести списком, и возможно с возможностью установки при клике. Но только список не весь, а допустим первые 10-20 наиболее популярных, с возможностью подгрузки. Ну и поиском, чтобы отфильтровать результаты. Ну в общем, сделать примерно как на сайтах репозиториев этих самых библиотек - только уже встроить в IDE.
Конечно, могут быть сложности с реализацией - у каких нибудь языков может не быть центрального репозитория для этого, но думаю что проблемы можно будет решить при желании. Если будет список, то хотя бы можно будет узнать о том, что библиотеки вообще есть. А если уж нужно понять, какая библиотека нужна для решения конкретной задачи, то тут уже конечно лучше ИИ спросить.
Если эти самые возможности попадают в автокомплит, значит в и в списке они окажутся. Но как минимум можно будет пройтись по стандартным возможностям. И вообще предполагается, что кастомные классы/функции, и из фреймворков, тоже могут попасть в список
Что сделает 1 человек из 10, а остальные развернутся и уйдут. А главное, из ответа ИИ все также нельзя будет получить общую картину о языке, ведь он приведет 2-3 примера. И то это будут даже не примеры кода, а примеры того, что можно сделать, примеры придется выпрашивать дополнительно. Пройтись по возможностям языка не получиться, ведь каждый раз нужно будет по кругу задавать ИИ цепочку вопросов ради каждого нового действия.
До которой опять доберется один человек из 10, кто-то не найдет, а кто-то даже искать не будет. Помимо того, что нет гарантии, что ее найдут, также нет и гарантии, что она разложена иерархически, как я уже писал в другом коменте. Встроенная документация на то и нужна, чтобы не гуглить ее.
Список как раз и будет решением, к примеру увижу в нем функцию - захочу попробовать запустить ее
Список структурированный, что относится к такому-то разделу - то там и будет
Вот вы опять приводите пример, когда уже известно что-то конкретное, что хотелось бы сделать, а я просто чисто ради интереса заходил. На этом этапе я не обязан знать, для чего там язык предназначен.
Какой я список хотел бы увидеть, это и так описано в начале статьи, не думаю, что у Python вместо функций, языковых конструкций и операторов какие-то другие сущности (а если они и есть, то тоже должны присутствовать по тем же принципам).
Но допустим я даже и знаю, какое конкретно назначение меня интересует, но только назначение, без конкретной идеи. И допустим это назначение - сайты, и вот я делаю то что вы и описали:
И в этом самом коде будет та самая заветная строчка-комментарий "//Ваш код начинается здесь". А дальше что? А дальше снова начинается та же самая история, которую я уже описал
Выискивать это уже скорее другой случай, список больше нужен чтобы было с чем поиграться, когда из любопытства зашел в IDE произвольного языка. И зашел из любопытства - это не тоже самое, что зашел с конкретной идеей и попросил ИИ ее реализовать. Тут как раз случай когда такой идеи нет. Я вот пробовал ради интереса зайти в рандомную IDE (вроде это PyCharm был) и попросил ИИ-помощник что-то написать. Так он взял и написал hello world. А дальше все по старому - по прежнему непонятно что делать. Просить его что-нибудь добавить - ну он может и добавит еще одну строчку, но свою фантазию проявить явно не получиться - для нее список и нужен
И упомянутая вами фича не является более совершенной хотя бы потому, что содержит в себе элемент рутины - само написание промпта, тогда как обращение к ИИ может быть уже встроено в тот же Drag-n-Drop, без необходимости написания. Да и сам ИИ в данном случае нужен далеко не всегда
Если он ее будет писать в IDE, а не в блокноте, то сам вызов функции он уже напишет правильно, поскольку IDE (как минимум те, что от Jetbrains) подсвечивают все необходимые параметры уже сейчас, а также указывают их типы.
ИИ может пригодится уже на следующем этапе - получение значений параметров, если там допустим параметры сложных типов (но это больше актуально для для кастомных функций). Тогда ИИ напишет код для получения этого значения. И то это будет актуально только для языков с нестрогой типизацией - для языков со строгой типизацией скорее всего можно будет сгенерировать код безо всякого ИИ (если только экземпляр класса не зависит от параметров, которые заполняются не в конструкторе, и то возможно что не пригодится). К ИИ нужно обращаться только тогда, когда без него уже не обойтись
Вот только написание промптов само по себе может стать рутиной, особенно если пробовать за день по 100 функций. А тот же Drag-n-Drop может в случае необходимости обратиться к ИИ автоматически, имея заранее заготовленный шаблон промпта. И в итоге будет тот же сгенерированный ИИ код, но без необходимости ручного обращения к ИИ
Подсказки это теория, а программирование изучается через практику, и главная задача - ускорить эту самую практику на порядки. Подсказки это уже дополнительный фактор, нужный больше при изучении готового кода
Проще изучать опытным путем, а к документации обращаться уже по мере необходимости
Любой язык так или иначе изучается опытным путем. Если вдруг появляется возможность ускорить проведение экспериментов в 100 раз, значит и язык будет освоен в 100 раз быстрее. И главная фича, которая должна это обеспечить - это фичи выполнения кода из REPL GUI. Ну и список, если изучение начинается не с готового куска кода, а с пустого проекта. Остальные фичи по большей части нужны для того, для того чтобы компенсировать отсутствие знаний при изучении готового куска кода/проекта.