Почему прогресс AI не заменит программистов (инженеров), а LLM порождает шестеренки
Предисловие
Всем ку, я программист и я живу во время, когда люди не учатся на ошибках и опыте прошлого.
Тут будет небольшой дисклеймер. В статье я буду говорить про пространство разработчиков, поскольку я сам себя больше позиционирую именно как разработчик. Однако я имею ввиду всех инженеров/физиков/математиков/химиков, которые реально горят и любят свое дело.
О чем и почему
О чем? Очередное бесполезное рассуждение на тему того, заменит ли LLM-ки/ИИ разработчиков или нет.
Почему? Я до сего момента сам метался из стороны в сторону. Имея свой опыт использования LLM думал, как это чудо может нас заменить. Читая бесконечные статьи про вайбкодинг, боялся, что вот-вот не смогу заниматься своим любимым делом зарабатывая себе на жизнь. В последнее время я все чаще использую ИИ для разработки и вижу в этом реальное преимущество, что склонило меня в сторону «Сворачиваемся и готовимся работать сварщиком». Однако в связи с моей текущей работой, я изучаю не только сферу разработки, но и DevOps-like темы. На определенном этапе я решил углубиться в Linux на теоретическом уровне. Прочитав про POSIX я наконец-то сформировал свое мнение.
Причем тут POSIX?
Так сложилось, что я больше всего разбираюсь в Java и чаще всего применял Spring. Я с самого начала пути взаимодействовал с высокоуровневыми абстракциями и наглядно видел, что я всего лишь использую предоставляемый мне API.
Тут я использовал аннотацию и в объекте непонятным образом появился объект-зависимость. Тут я использую аннотацию и получаю нужную мне реализацию а не рандомную. Тогда это вызывало сильный синдром самозванца. Я вроде изучаю программирование, а вроде все что мне надо, использовать магию и писать бизнес-логику.
Этот синдром меня двигал изучать более низкоуровневые вещи. Так я дошел до Си, линукса и Rust. Но даже так я видел, что я всего лишь взаимодействую с API. Увидев ассемблер и поняв, что ничего я на нем не напишу, даже если вникну (банально потому, что это уже просто скучно, ничего глобального-прикольного я не сделаю кроме колеса для велосипеда (и то не факт)) синдром самозванца затаился.
Я вернулся к написанию высокоуровневого ПО на высокоуровневом языке, оставляя в своем хобби языки без магии Go и Rust. Через время я заметил, что мое неуглубленное погружение в низкоуровневый мир сделало из меня нормального думающего разработчика. Что произошло? Я не развивал свои навыки в бекенд сфере, не изучал глубже спринг, но чувствовал себя увереннее. Произошло осознание, что все так или иначе используют абстракции. Никто не пытается создать свою ЭВМ из палок. После осознания пришло умение абстрагироваться. Это самый главный навык любого инженера. Как тумблер срабатывающий когда словесная перепалка в секунду превращается в драку.
Разработчик чаще всего сталкивается с абстракциями и лучше всех умеет их использовать. Абстракции есть и в других сферах, и даже могут встретиться вне рабочей жизни, однако они исчерпаемы и в основном статичны. В случае разработчика, каждый день ты узнаешь о новых абстракциях, которым нет конца.
И наконец-то возвращаемся к POSIX. Это вообще базовая абстракция (если вы зумер-разработчик и не хотите копать прямо в дебри) к которой так или иначе приходит ваше ПО. Вы можете даже о нем не знать, разрабатывая аппку, но это лишь потому что ваше место текущее находится на другом этаже (и далеко не по развитию, это просто ваша «обязанность»).
POSIX открыл мне глаза на устройство мира, потому что раньше мой кругозор не выходил за рамки ЯП и фреймворков. Увидеть, что абстракции — не привилегия разработчиков, а общая инженерная реальность, сильно меняет мировоззрение. Очевидно? Да, как и всё гениальное.
Кульминация
Мир всегда будет состоять из абстракций. Лучше всего с ними взаимодействуют инженеры, я в этом убежден. Ни одна сфера так сильно не прикасается ко множеству абстракций как инженеры. Инженеры сами строят эти абстракции, о чем речь.
Мало взаимодействий и построений? Да. Но ключ в другом… Кто кроме инженеров осознаёт, что работает с абстракцией? Рядовой гражданин, живущий в стране, безусловно, взаимодействует с абстракцией «государство». Но часто ли он задумывается о ней? Я очень сомневаюсь.
LLM - очередная абстракция
Есть люди, которые понимают, что такое абстракция, и видят реальное положение дел. Вайбкодер — потребитель. Да, он взаимодействует с абстракцией, но не видит сквозь неё. Для него это просто инструмент. Здесь очень тонкая грань, разжёвывать которую я не буду — при желании можно неоднозначно додумать.
LLM - очередной POSIX
Творите, друзья. Используйте, понимайте, осознавайте. Никогда не замыливайте взгляд.
Абстракция не может заменить человека, взаимодействующего, осознающего и строящего абстракции.
Поскольку текущие LLM не имеют воистину настоящего интеллекта, они так и останутся абстракцией.