Комментарии 15
Основную проблему вижу в обучении. Возможность генерации кода позволяет людям пропустить решение базовых задач типа кручения циклов и вместо принципа "от простого к сложному" получаем "сразу к сложному": лёгкие задачи порешал ЛЛМ, на сложных задачах буксует, а сами люди их решить не могут, потому что им программирование заменило промптописание.
Из моего опыта с ИИ ассистентами. Использую, но как упрощенный доступ к справочной информации по языкам. Удобно когда в одном месте плюсы и питон. Но тут новичков ждет засада в виде чуши которую ИИ выдает в примерах использования фичи про которую ты просишь рассказать. Тут надо обладать опытом и интуицией которая позволит усомнится и отфильтровать мух от котлет.
На мой скромный взгляд начинающего, всякое облегчение именно рутинного, тупого труда - это во благо и повышает эффективность и персональную, и командную. Однако, меня лично тревожит этический момент. Представляется, что было бы честно авторское право и личную профессиональную репутацию делить с ассисентом, поскольку за ним - работа поколений программистов, которую ассистент "цап-царапнул")) Я все пытаюсь придумать некую оговорку для таких случаев, метку подобную (С) - элегантную и короткую. Нечто похожее на (GHC) - Global Humans Copyright, или вроде того.
Люди в любом случае делят свою репутацию с авторами учебников и статей, которые (возможно) отравили свои тексты идеологической войной, так что в этом принципиальной новизны нет.
Либо человек постоянно ловит шишки, либо разделяет собственный опыт и информацию от внешних источников (которая может оказаться ложной или втягивать в проблемы).
Да, но впрямую используя тексты учебников или статей вы их именно цитируете, и ссылаетесь на первоисточник, не так ли? И выступаете в роли, в лучшем случае, переработчика чужих идей, а не продавцом своих собственных. Я вот о чем, об этике и правовых нормах, а не о идеологии вовсе))
Похоже, люди крайне редко создают принципиально новые идеи, которые бы не были переработкой чужих в разных комбинациях. При этом им нужно тратить кратно больше усилий, чтобы объяснить другим людям, что за хтонь они вырвали из области непроизнесённого и принесли в вопящий от ужаса мир.
Благодарен за ваше мнение и с удовольствием его использую в заметках об этических аспетах ИИ. Для поддержания дискуссии - гипотетически, но и весьма реально. Предположим, прописанный ассистентом код вы отправили на "прошивку" микроконтроллера светофорных объектов от Красногорска до Волоколамска, получили свой скромный или нескромный гонорар (за лично ваш, как вы полагаете и объявили, девелоперский труд). Но, впоследствии, светофор пустил машины со встречных потоков на зеленый свет – иски пострадавших и регрессные иски страховых компаний будут обращены именно к вам, вы же скромный автор кода? И страховой защиты у вас нет – вы отказались от страховки ответственности за работу с ИИ. И авторское право вы себе присвоили ради денежки)) И вопящие от боли калеки (после ДТП) с вас получат по полной. Потому я и рассуждаю о том, что неплохо бы найти баланс между новыми технологиями и пыльными правовыми нормами. Не для того чтобы прижать программеров, а чтобы гармонизировать интересы в бушующем от алчности мире))
И еще один момент, разговорился, простите. Мне посчастливилось в уходящем году побывать на лекции Eddie Aftandilian (GitHub Copilot, led development of Copilot for Docs, and currently leads development of Copilot Workspace). И на мой тупой вопрос (переданный через ведущего) он развернуто ответил. Вопрос, конечно же, о том - заменят ли машины и ИИ разработчиков или нет. Процитирую по расшифровке записи, возможно, это многих и утешит, и порадует - мнение далеко не последнего человека в разработке:
«[Eddie Aftandilian] 19:32:40
Спасибо, что пришли на мою лекцию, и я с удовольствием отвечу на вопросы.
[Rahul Pandita] 19:32:47
Хорошо. Спасибо, Эдди.
[Рахул Пандита] 19:32:49
Copilot - это наш помощник или наш конкурент? Или другой вариант того же вопроса: как вы думаете. Или как вы думаете, будет ли когда-нибудь уровень, когда машины будут разрабатывать код самостоятельно. Уменьшение зависимости от разработчиков программного обеспечения когда-нибудь достигнет ноля?
[Eddie Aftandilian] 19:33:44
Хм. Я имею в виду. Так что я имею в виду, во-первых, мы очень далеки от этой точки прямо сейчас, но модели улучшаются. И кто знает, что будет дальше, может быть, у нас будет AGI. Может, и нет. Кто знает?
Мое личное мнение здесь таково. Есть много программного обеспечения, которое не просто связано с написанием кода, верно? Так что это связано с выяснением того, что мы должны создать, или что вы знаете? Если у вас есть клиент, который просит что-то, чего он на самом деле хочет, а не того, что он просит. Верно? Здесь есть набор навыков и своего рода выявление правильных требований и выяснение того, что создать.
Кроме того, вы знаете, пока что с моделями, к которым у нас есть доступ сейчас, очень сложно создать каркас целого, как существенное приложение. Так что вы – это вы.
Несложно построить модель, как небольшое, вы знаете, однофайловое приложение или несколькофайловое приложение, но знаете, когда вы попадаете в сотни файлов или тысячи файлов со многими компонентами, неясно, как это сделать. И я думаю, что это потребует значительной работы.
Я предполагаю, что в ближайшем будущем появится некий класс задач по программной инженерии с которыми модели смогут справиться в значительной степени сами по себе. Но я думаю, что будет некий класс более сложных проблем, проблем проектирования систем. И такого рода вещи, где человек, более мягкий разработчик с опытом и интуицией, все еще будет нужен.»
Фактически он сказал - да, заменят, как только достаточно разовьются. Пока только люди могут решать комплексные сложные задачи.
Согласен, но лично я всё-таки использую ИИ для генерации кода если он срочно нужен. тоесть сейчас я изучаю плюсы, но если вдруг мне понадобится какой-то скрипт для автоматизации чего либо на моей системе (Arch) то почему бы и нет. ИИ пишет мне то что мне нужно возможно на один раз, но некоторые скрипты у меня используются уже больше месяца..
Имхо ии плох для начинающих скорее тем, что это чат, где беседу инициирует пользователь. Т.е. сам начинающий, который просто не знает, как начать учиться программированию.
Обычно, при обучении, мы получаем базис по наработанной спецами базе, а потом начинаем задавать вопросы. Т. е. курс лекций + ии вполне себе рабочий вариант.
Для опытного разработчика, напротив, чат большое подспорье, беря на себя рутину и подкидывая решения, даже не всегда верные(анализ+исправление = повышение уровня разработчика), существенно ускоряет разработку.
Ещё калькулятор надо прекращать использовать, а то мозги заржавеют... Oh, wait!..
Если серьёзно, то, наверное, я плохой программист. Ну вот не хочу писать код - хочу разрабатывать и поддерживать программные системы, и в этом деле написание кода это всего-лишь одна из многих вспомогательных задач. Удалять код по ходу службы тоже приходится нередко, и даже эта задача бывает не менее трудна, чем написание - напр., в случае адского легаси, написанного настоящим гением.
Вообще, если следовать духу статьи, то надо срочно отказаться от использования IDE, и переходить в блокнот или vi (не vim, т.к. там по умолчанию есть подстветка синтаксиса!). Ну такое себе.. Тем временем, на работе провели видеоконференцию с демонстрацией возможностей Cursor и призывом пробовать. Что ж, мозги уже убиты калькулятором, почему бы и не попробовать...
И, кстати, чем плохо, если у человека много интересов? Почему программист должен обязательно упарываться по программированию так, чтобы это было всей его реальностью? Иногда нравится писать код, иногда не нравится - это нормально. И работа тоже не обязана всегда быть удовольствием (меня, напр., сильно раздражает периодическая необходимость микроменеджмента тикетов в Jira). А рутинные задачи, решённые уже кучу раз, но не запомненные наизусть - чем плохо, если можно быстро решить их с помощью подсказок "из зала" - через Гугл, ЧатЗПТ, и что угодно ещё?
Я начинающий Front-end NextJs и много не знаю, например у меня нет насмотренности когда стоит выносить код в отдельные компоненты, когда не стоит, плюсы и минусы в конкретных ситуациях, примеры. Лично я использую ИИ для советов, стоит ли выносить в отдельный компонент, плюсы, минусы, стоит ли выносить допустим анимации в интерфейс (когда использую Framer Motion, так как они во многом повторяются и держать их в компоненте нет особого смысла), так плюсы и минусы этого. Считается ли это тем, что ИИ думает за меня? Я считаю, что нет, так как код я пишу сам, а у ИИ прошу совета и на основе его ответа уже анализирую плюсы и минусы. Мне кажется это на оборот помогает в обучении, посмотреть на код с разных сторон.
Я использую ИИ чаще для более рутины задач. Например у менять C# классы и ENUM и мнетнудно тоже самое продублировать в proto контакте - оно генерирует.
Мы по TDD не работаем и иногда есть серьёзная логика. Прошу сгенениролвать тест на класс. Потом редактирую код, потому что получается не прям идеально. Иногда что то допишу, но основная масса сгененирована быстро и нормально.
Генерация кода при помощи ИИ сделает вас плохим программистом