Почему программисты никогда не вымрут

от автора

Привет, Хабр!

Буквально 20 минут назад прочел статью — Сгенерированный ИИ код сделает вас плохим программистом. И у меня созрела мысль, которую я до этого нигде не читал. Может я невнимательный, а может и действительно кому то дам новый взгляд. Так что, прям с пылу с жару несу это вам.

Итак, о чем статья то. Я ни в коем случае не обесцениваю труд автора, но я прочел ее краткое содержание примерно так:

Почему нельзя писать код с помощью нейросетей:

  1. Вы станете тупым

  2. Вас никто не будет уважать

  3. Это вообще не дело

Лично я вообще не переживаю насчет того, что скоро скайнет захватит мир, потому что:

  1. Зачем зря переживать

  2. У меня есть работа

  3. Я уверен, что ближайшие десять лет моих знаний хватит, чтобы не оказаться в нищете.

Эту уверенность отчасти мне дал отрывок из очень избитой книги Роберта Мартина «Чистый код». Обратите внимание, что книжка аж 2008 года, и хотя может быть конкретно этот отрывок и из редакции 2013го, но это не отменяет того факта, что Chat GPT & Co еще даже не появились на свет.

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

Итак, глава 1, отрывок под тезисом «а поговорить?»:

Возможно, кто-то скажет, что книга о коде отстала от времени — код сейчас уже не так актуален; вместо него внимание следует направить на модели и требования.

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

Ерунда! Код никогда не исчезнет, потому что код представляет подробности требований. На определенном уровне эти подробности невозможно игнорировать или абстрагировать; их приходится определять.

А когда требования определяются настолько подробно, чтобы они могли быть выполнены компьютером, это и есть программирование.

А их определение есть код. Вероятно, уровень абстракции наших языков продолжит расти.

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

В самом деле, все определения, написанные на этих высокоуровневых, предметно-ориентированных языках, станут кодом!

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

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

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

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

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

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

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

Подумайте над этим отрывком, я пока отвлекусь на чтение комментариев статьи от ruvds — итак, подборочка:

@Cyrus

Много идей рождается в процессе написания рутинного кода. В какой-то мере даже умный автокомплит и генерация кода иногда мешают – не происходит такой нужной прогрузки кода в мозг, которая помогает находить неочевидные решения

@Abyss777

Простите, но я честно не понимаю хайпа вокруг ИИ. Это же всё просто галлюцинации либо «вода».

Картинки это бред с 7 пальцами или рунами вместо букв.
Ответы на бытовые вопросы это просто вода.
Код нерабочий, за ним всё надо перепроверять, а нах тратить время если всё равно придётся разбираться.

100 % моих попыток его использовать были провальными.

@vlmonk

Борьба будет. Между вами и вашим коллегой, который активно использует условный copilot / chatgtp / claude.

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

@mclander

Может ещё и автодополнение и автоподстановку отключить в редакторе? Я не пользуюсь ИИ, но просто потому, что лень разбираться. Да и не вижу пока(?) особого профита по скорости. Всё равно надо будет прочитать и разобраться, что оно мне в код подкинуло.

Но если это ускоряет разработку, то это уже не остановить. Как бы не стыдили халявщиков)

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

  • Первые: да с этим чатом гпт у вас сгниют мозги!

  • Вторые: пусть гниют, мы то хотя бы не умрем в нищете!

Для меня утверждение — «люди с чатом гпт — лучшие работники, чем без него» — просто бред.

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

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

Тоже самое, что сказать — «код на C++ говно, на python гораздо лучше. Кто пишет на python, за тем будущее». Ах, да… Такой тезис периодически звучал последние несколько лет.

Хороший программист — это профессионал, финальный продукт деятельности которого удовлетворяет заказчика. Если тебе надо выбивать дырки на перфокарте и написание «hello, world!» отнимает у тебя неделю, то это не удовлетворит ни одного заказчика. Если вносить правки в систему умеет 2 человека в мире, такой продукт ни одного вменяемого человека также не устроит.

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

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

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

Но если голова потенциального разработчика не способна перенести теоретические знания и понимание принципов работы своей предметной области на практику — он просто плохой специалист, вот и все. Дело не в инструментах.

Дальше что-то не идет мысль, вроде сказал, все что хотел. Всем спасибо за внимание!


ссылка на оригинал статьи https://habr.com/ru/articles/854164/