Ответ на пост «Программисты, чо реально?»2
Ну и мой заголовок…
Доступно об АйТи: Вайбкодер с дрелью
Вкратце исходный пост. Вайбкодинг — это якобы переход с коловорота на дрель, когда сверлить стало проще и приятнее, и теперь всё вокруг в дырках.
Я долго думал, какой элемент инструментария программиста сравнится с переходом с коловорота на дрель. И придумал.
Дрель = система программирования (IDE)
Дело в том, что работа программиста во многом состояла из запуска из командной строки таких программ, как компилятор, линкер, библиотекарь и отладчик. Если программа состоит из пяти модулей, приходилось отслеживать, какие модули мы задели, и запускать компилятор только для задетых.
Сначала программисты сделали автоматизатор всех этих запусков — систему сборки. Наиболее известная из них — Make, сейчас моден CMake. Make просто низкоуровневый, CMake сложен как чёрт, но вся эта чёрная магия позволила заменить несколько вызовов командной строки одним.
А лучшим автоматизатором оказалась система программирования (integrated development environment = IDE) — большая программа, объединяющая программистский редактор, компилятор, линкер, отладчик, систему сборки и ещё ХЗ что.
Кто разработал первую систему программирования — говорят, некто Softlab Munich в 1974. Сначала она называлась PET, но когда компания Commodore создала одноимённый компьютер, её переименовали в Maestro I. Работала эта система с ассемблером и Коболом. Но в наших палестинах больше всего известен Turbo Pascal (знаменитая версия 5.5 вышла в 1989 году).
А что тогда представляет собой вайбкодинг?
Дело в том, что программист не столько пишет код, сколько собирает сложную конструкцию из чистой мысли. И вайбкодинг занимается примерно этим, и он больше всего похож на…
Вайбкодинг = гастарбайтер, делающий проект по собственному разумению
Не сверлящий, а именно делающий проект. Мы ему не говорим «просверли тут», мы ему говорим «повесь бойлер» — и он прикидывает, где, каким диаметром и на какую глубину сверлить. А если видим, что проект плохой, поправляем: «нет, бойлер так не встанет, просверли диаметром 10, зато поглубже». И всё равно обычно выходят косяки, как то:
досверлиться до соседей;
пробить проводку;
не рассчитать нагрузку;
с другой стороны на этот же болт повесить картину — а как ещё передать сильную связность кода, когда попытка подтянуть один модуль тянет за собой ещё кучу;
повесить бойлер посреди гостиной — как ещё назвать некорректное именование объектов?
Лучше всего он делает системы, имеющие типовой проект, продиктованный конструкцией используемых библиотек: большинство сайтов, часть консольного ПО. И то я видел, как ИИ написал настолько изощрённую методику входа на сайт, что я долго ругался.
(UPD. Вспомнил, что именно ИИ сделал не так. Некорректно разделил ответственность между основной страницей и формой входа.)
Хуже всего — настольное ПО, которое фактически проектируется по месту. Ибо если мы пишем настольное ПО, то все остальные методы написания ПО негодны — из-за сложной модели данных, которая делает веб-ПО избыточно сложным, запредельных объёмов данных, отзывчивого интерфейса. А в настольном ПО связывать данные с визуальным приходится по месту.













