Обновить

ИИ не автоматизировал разработчиков. Он сделал кое-что хуже

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели42K
Всего голосов 165: ↑158 и ↓7+180
Комментарии527

Комментарии 527

Вы реально решили что бизнес уже все порешал? Подождите месяца три. Если есть финансовая подушка - можно побольше. Через некоторое время произойдёт то, что уже происходит. Когда счета из ИИ превысят стоимость уволенных работников - бизнес подумает о том - А все ли мы посчитали?

Я тоже делаю на это ставки. Только вот могут пройти годы перед этим. Ну и связь увольнений с AI — поверхностное объяснение, если вникать в суть вопроса.

На самом деле ситуация более серьезная. Тут еще: экономические причины и политические. AI действительно усиливает разработчиков, и вот меня как руководителя это мотивирует к тому, что бы имеющийся штат реализовать в X-кратном потенциале. Если в бизнесе появился новый мощный инструмент, зачем мне выбрасывать старый и проверенный? Почему мне не сложить оба что бы получить преимущество на рынке?

Тут все не так просто. Сокращения это результат кризиса общемирового и все переплетается очень тесно с множеством факторов.

Ну и связь увольнений с AI — поверхностное объяснение, если вникать в суть вопроса.

Я лет 5 назад видел заявление экспертов, что глобальные инвестиции в разработку софта на ближайшие 10 лет упали ниже плинтуса. Тогда как-то не придал значения - ну знаем же мы всех этих "экспертов". А теперь кажется становится понятно что это было. Спойлер: лучше не будет точно.

лучше не будет точно.

Пессимист (печально): Хуже уже не будет...
Оптимист (жизнерадостно): Да не куксись ты — будет ещё!

НЛО прилетело и опубликовало эту надпись здесь

1 Кто сказал что я не осилил инструмент и кто сказал что я им не пользуюсь? Я лишь указываю на проблемы которые с ним связаны.

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

3

рукоблуды как ты

Сам такой :)

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

5 Не обижайтесь. Но ни один разработчик хоть сколько-то нибудь имеющий ощутимый опыт, никогда не скажет “у меня нет мертвого кода”. Но бывают конечно исключения, и скорее всего вы именно этот случай, по этому прощу прощения что позволил себе такое замечание.

Человек, конечно, неадекватный, но нормальная "АИ ассистед" разработка в моем понимании это точно не то, что сделал ваш подчиненный. И не спек драйвен тоже.

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

Второй подход, который не смог, видимо сделать ваш подчиненный -- это аи ассистед (я так называю, хз). это контроль, аппрув, тщательные пошаговые ревью (намного тщательнее чем обычное ревью коллеги!!), почти настолько же мелкие (по смыслу) поэтапные коммиты, как и без АИ. И так далее... Длинные сессии, управление контекстом и т.д.

Пожалуй, бест практики второго подхода еще пока слабо формализованы. Каждый учится сам. Нужно минимум недели две материться работая в парном программировании с агентом над реальными задачами, чтобы вкатится.
Тогда качество кода не ухудшится, а улучшится, а возможности возрастут кратно. Почувствуете мощь) А уж если субагентов потом и спеки начать юзать, там еще мультипликатор. Но важно не потерять контроль, знать это код.
Так вы один за месяц можете выкатить целую платформу в прод, и в коде будет лучше чем раньше -- например реально актуальное живое апи, полное покрытие апи тестами, прекрасная дока.

И конечно же да. Человеку нужен человек.) и бизнесу тоже. скоро до них дойдет.

Вы своим комментарием также подтверждаете, что чтобы хоть что-то путное написать с LLM, необходимо иметь экспертизу за пределами LLM. У джуна такой экспертизы нет, но зато есть уверенность, что он с LLM всё может. В этом то и опасность. Я уж молчу про то, что если джун будет $400 в неделю тратить на рабочие задачи, то он по зарплате в минус уйдёт.

Я лишь указываю на проблемы которые с ним связаны.

У нас с вами в ДНК 90% мертвого кода, но ничего — живем, мыслим, код пишем. Может быть, джун с Курсором не так уж неправ. Может быть, он интуитивно воспроизводит эволюционную стратегию, которая работает уже 3,8 миллиарда лет. Просто мы, сеньоры, привыкли мерить качество не выживаемостью системы, а красотой её реализации.

Хотя мои лучшие проекты AI‑first (числодробилки без фронта) пишутся в Specification‑First Development. причем спецификацию приходится писать на пределе механизма внимания (attention mechanism) ~ 10–15 страниц математический формул. Думаю, что и для фронтенда можно также описать механику и для АПИ. Но писать документацию для AI нужно учиться, так же как и раньше — учиться программировать.

Уволить половину штата и вооружить оставшихся нейронками, взяв курс на AI-first? Или сохранять ценных экспертов, на найм которых потрачено столько времени и сил?

Уволить половину разработчиков — нанять столько же техписов. А-ха-ха!

спецификацию приходится писать на пределе механизма внимания (attention mechanism) ~ 10–15 страниц математический формул… Но писать документацию для AI нужно учиться, так же как и раньше — учиться программировать.

В 1992-1998 годах я учился в институте (на кафедре искусственного интеллекта, кстати), где нас учили программированию как раз начиная с так называемой математической постановки задачи (несколько страниц формул, описывающих алгоритм).

В 70-ые годы понятно почему так делали: учёные программировали на бумаге, передавали документ кодеру, он переводил на язык программирования и отдавал оператору, который уже вводил в компьютер.

В 90-ые казалось, что такой подход уже устарел. А теперь оказывается, что мы возвращаемся в прошлое: Терминал, командная строка, спецификации, математическая постановка. Только делаем это уже не для людей, а для ИИ.

Хорошая новость состоит в том, что и в 70-ые, и в 90-ые, и в 2020-ые хорошо делать это могут лишь единицы. А что редко, то ценно.

Проблема - ты не осилил инструмент. у меня нет мертвого кода и gpt меня ускоряет...

Похоже тебя ускоряют совсем иные вещества. Ты без ошибок уже по-русски писать не можешь, хамло.

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

я тоже тимлид

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

Это девушка. Так что термин "мудак" не подходит.... но только семантически, в остальном согласен полностью :)

Это мужик, маскирующийся под девушку, то есть точно мудак.

Это мужик, маскирующийся под девушку, то есть

...нынче запрещённый в России?

Все программисты в мире делятся на две категории:
- Те, кто считает что ИИ кодит на порядок лучше их;
- Те, кто считает что ИИ кодит на порядок хуже их;
И первые и вторые абсолютно правы.

Золотые слова!

Ложная дихотомия, в-основном ИИ делает работу хуже меня, но зато он гораздо быстрее это делает... значит ли это что он лучше справляется? Скорее да.

в-основном ИИ делает работу хуже меня, но зато он гораздо быстрее это делает...

Скрытая картинка

Тут нет смысла объяснять этим людям, что они не умеют пользоваться инструментом.

Мне один такой вообще заявил, что ии ни на что не способен и на мои доводы просто говорил, что я херню несу. Забей. Не доказывай, улучшай свою работу и живи спокойно =)

Я вот тут приводил ссылку на доклад Яндекса, где они рассказывают, что прямо сейчас ИИ повысил им продуктивность на 2% и цель у них достигнуть 10%. Это по замерам. А по самоощущению получилось 30%. Конечно, можно заявить, что все они тоже не умеют пользоваться, но как по мне так это уже не смешно.

Тут как в анекдоте про длину полового члена, когда в Виллрибо опрашивали, а в Виллабаджо измеряли.

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

ИИ повысил им продуктивность на 2%

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

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

Тут ключевой момент другой - еще год назад он с трудом до джуна дотягивал, если вообще дотягивал. Пять лет назад вообще код писать не мог.

А что будет еще через год, через пять лет?

А что будет еще через год, через пять лет?

Будем заказывать свадебные торты оптом!

Ну, давайте не будем сравнивать яндекс-ИИ, и тот же Опус. В ИИшках сбера и яндекса контекстное окно все еще 32к токенов против 1000к (1 млн, на минуточку) всех моделей антропиков.

Не понятно абсолютно, что там они замеряли. Они смогли вытянуть 2 процента в каких задачах? В поиске и распределении документов? Букв? Ну, я просто хз, но публичные ИИ от этих компаний ну просто в жопе, простите.

Я приведу пример своей работы:

  1. Мне тут надо было из проекта вынести 100 с лишним файлов в плагин. И я потратил бы полноценно 3 дня на всю работу с концентрацией на том, чтобы всё не профукать, чтобы не забыть заменить макросы, классы, модули. подсистемы, бла-бла-бла. Опус сделал мне это за 1 час. Пока я сидел, смотрел кино.

  2. Я тут выставил задачу Опусу на то, чтобы он мне собрал прототип по описанию MVP. И он собирал мне сутки. Ну, если раскатать на 8 рабочих часов, то 3 рабочих дня. И это действительно в реальности заняло бы у меня 3 рабочих дня писать всё руками, если не больше. То есть, технически он меня не ускорил. НО. Я делал параллельно КУЧУ других задач. Время, пока опус мне ответит или доделает что-то крупное, действительно может быть адски большим. И если просто сидеть сложа ручки, то действительно он не ускорит.

  3. Я запустил тут его найти мне баг один. Пока мы в три каски пытались понять на протяжении 5 часов, что происходит - он увидел дыру за 5 минут.

А теперь по поводу экономии времени и яндекса:

  1. Я хз, какие там программисты, но как заметил один из моих друзей - если ты не заинтересован в работе, то ИИ тебе не поможет ускориться. Это в сторону 2-го пункта из примеров работы.

  2. В моей работе опус дал мне буст в 2-3 раза. То, что я делал неделями, он делает дни, то, что я делал дни - он делает за часы. Правильно выстроенный пайплайн работы с ИИ определяет то. насколько он срежет тебе время.

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

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

Увидел, где дыра в дизайне - указал, как исправить - это еще 30 минут делов.

Скафолдинг и имплементация - это еще 60 минут делов.

2 часа на то, чтобы внедрить фичу с хорошим дизайнерским решением. И это уже в 5 раз быстрее, чем было бы до.

Но, вы пока там сидите на бесплатных версиях своих ИИ или просто из принципа упирайтесь, мне только лучше от этого =)

Просто у Яндекса низкая продуктивность и средний уровень кадрового состава оставляет желать лучшего. Как тут уже писали – программисты, считающие что ИИ пишет код лучше них, абсолютно правы.

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

Годы? Уже анонсированы несколько повышений цен до начала следующего года на облачные AI. И не на 20 копеек

НЛО прилетело и опубликовало эту надпись здесь

родившиеся ныне дети никогда не будут умнее ИИ.

«Это не ваша заслуга — это наша недоработка» ©

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

Тщеславные родители поспешили приобрести «говорящие шпаргалки» своим неразумным чадам, и повсюду один за другим стали появляться шестилетние, пятилетние и даже трёхлетние вундеркинды. Несчастные дети с малых лет отучались мыслить — за них думал электронно-кибернетический мозг, упрятанный в висящую на шее безделушку. Мода на вундеркиндов распространилась по всему Кальруну, и вот уже вослед за поколением неучей росло поколение дебилов.

— Александр Лесь, «Шпаргалка», журнал «Пионер», № 8/1990

Мне так про калькуляторы раньше говорили…

Мне так про калькуляторы раньше говорили…

Ви так говорите, как будто они были не правы.

А потом про Matlab и затем про Wolfram|Alpha. Сейчас тот же спич про ИИ, которые помогает решать домашку по фотке задания.

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

Скажем так, у вас нет навыков взращивания зерновых, вы не умеете разделывать туши животных, охотиться, вы не умеете ориентироваться на местности, не считываете погоду, не различаете ядовитые растения от съедобных и…

...вообще-то умею. Не на профессиональном уровне, конечно, но на вполне достаточном.

Зря никак не введут базовый доход для всех (с талонами во Вкусвилл), чтобы уже сейчас было сытое и беззаботное существование.

Думаю что талоны в Светофор/Чижик были бы более уместны )

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

И кстати - почему именно талонами?

Можно купонами/баллами

Почему не деньгами?

Чтобы базовый доход тратился на базовые потребности.

Если базовые потребности не удовлетворены подавляющее большинство именно на них его тратить и будет.

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

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

медицину например и образование.

В каком обьеме? В обьеме ФАП деревни Солигаличского района Костромской губернии или в обьеме клиники Cedar Sinai Los Angeles?

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

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

Трансформеры по определению не умеют мыслить.

Это Имитация Интеллекта, идентичная натуральному до степени смешения.

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

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

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

Приведите, пожалуйста, определение трансформеров и определение мысли, Из которых бы это следовало.

Этого не будет. ИИ не существует. Нейросеть не может создать ничего чему её бы не обучали. Если модель обучена на квадратах, она не может нарисовать круг. Квадратура круга неразрешима. Надо обучать заново включая круги. Потому что дообучение ухудшит выдачу. После этого возникает задача рисовать треугольники...))

От того, что человек имеет в своём кармане говорящую Шанхайскую библиотеку, он не становится умней. Так же, как от шкафа с журналами по бодибилдингу он не становится сильней: надо ходить в спортзал.

Проблема не в том что ИИ туп, а в том что большенство людей ещё тупее.

Браво, прямо не в бровь, а в глаз !

Нейросеть не может создать ничего чему её бы не обучали.

А человек может создать то, чему его не обучали? В истории вроде есть пара случаев реальных маугли, когда детей вырастили животные - это были именно животные в человеческом обличье, даже говорить не умели.

Дина Саничар (Индия, 1867 год) Шестилетнего мальчика, жившего вместе со стаей волков, нашли охотники. Он передвигался на четвереньках, ел сырое мясо и рвал на себе одежду. Научиться говорить он так и не смог, общаясь лишь животными звуками, и прожил в приюте до 1895 года. Считается, что именно этот случай вдохновил Редьярда Киплинга на создание «Книги джунглей»

Пример нерелевантен. Надо взять статистически значимое число маугли, поставить в одинаковые условия и посмотреть что из этого получится. Хотя мы уже знаем, что из этого получится: достаточно посмотреть на современное общество))

Конечно, человек может создать то, чему его не обучали. Заранее соглашусь по теме "человек ничего не изобретает: все изобретения основаны на предметах, явлениях и изобретениях уже существовавших". Это доказано наукой.

Подвох в том, что для этого человек использовал методологические инструменты, такие как синтез и анализ, причём в реальном мире. Он посмотрел на круглую гальку с дыркой (куриный бог) и из этого наблюдения появились колесо, бусы, сверление и куча других применений. Очевидно, что нейросеть на подобные переносы не способна.

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

А как-же сын английского лорда, который сам себя научил английскому в джунглях Африки? Шах и мат, сомневающиеся.
А как-же сын английского лорда, который сам себя научил английскому в джунглях Африки? Шах и мат, сомневающиеся.

/s

Емнип, он научился только читать, говорить его научил француз которого он украл у местных негров )

Очевидно, что нейросеть на подобные переносы не способна.

Да ладно?)) Побудьте адвокатом дьявола и попробуйте опровергнуть свой же тезис.

Надо взять статистически значимое число маугли, поставить в одинаковые условия и посмотреть что из этого получится. Хотя мы уже знаем, что из этого получится: достаточно посмотреть на современное общество

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

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

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

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

Подгонка под заранее нужный вам ответ.

Очевидно, что нейросеть на подобные переносы не способна.

Это как-то проверить и доказать можно или вам просто так кажется и очень хочется чтобы так было?

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

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

И кстати вот такие вот переносы они случались далеко не всегда - есть многие миллионы людей которые колесо (и многие другие вещи) так и не изобрели на протяжении тысячелетий. Они просто потом все были истреблены или ассимилированы теми кто его изобрел. При таком количестве попыток это уже становится сложно он рандома отличить.

Может все эти люди были не люди, а какие-то нейросетки?

Подвох в том, что для этого человек использовал методологические инструменты, такие как синтез и анализ, причём в реальном мире. Мышление человека имеет прикладной смысл т.к. он живёт в реальном мире и оперирует многократно большим объёмом символов чем им вербализовано, записано в книги и т.д. Для человека эти нюансы имеют смысл, составляют опыт, передаются по наследству и пр.

Все что вы здесь описываете - вопрос не качественный, а количественный.

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

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

Если не будет каких-то новых изобретений в этой области, это просто будет другой жизненный цикл, не такой, как у человека.

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

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

>Надо взять статистически значимое число маугли,

вспоминаем, раз в сколько сотен поколений случались инновации в каменном веке

«Работает — не инновируй!» ©

Подвох в том, что для этого человек использовал методологические инструменты, такие как синтез и анализ, причём в реальном мире.

Вы можете описать (грубо и неточно) как реализуется синтез и анализ на уровне нейронов. Или просто большая нейросетка начинает выдавать сложное поведение и мы называем его “анализ”.

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

Человек создал всё искусство, для начала. Математику - которой в природе не существует, потому что даже целые числа - это абстракции от реальности. Мнимые числа - которым даже представляемых природных аналогов не найти. И тот же супрематизм - который в первую голову философия "какое искусство дальше"(а должно, если совсем кратко по их идеям, пойти изображать концепты, шаблоны - и в таком виде оно читается не как набор геометрических фигур, а как "о, а это и впрямь шаблон!"), и потом её воплощение, а не изображение образов из жизни, то есть буквально "не то, что раньше рисовали", хоть и можно понатягивать "там круг и там круг - значит одно и то же".

Ну и колесо. Нету в природе колёс. Валы/цилиндры есть - колёс нет. Шестерёнчатые передачи - в природе есть(у блох лапки оказзались сцецплены попарно так), но их пронаблюдали сильно позже изобретения механики.

Этому людей не учили, этого люди в природе не наблюдали. Сами придумали, обосновали, нашли применение.

Я в принципе ответил подробно на это и в соседнем комментарии, но могу повториться - все вышеперечисленное создал не отдельный человек, а человечество в целом. Совокупность миллиардов независимо обученных (с длительностью обучения в десятки лет) естественных нейросеток на протяжении десятков тысяч лет. И заметно более крупных чем нынешние ИИ - в мозгу человека в районе 100 триллионов связей между нейронам, в нынешних ИИ в районе одного триллиона параметров в открытых моделях и до 10 триллионов по приблизительным оценкам в лучших закрытых)

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

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

Как минимум я не вижу ни единого именно доказательства невозможности этого.

А если разница не качественная, а количественная - ее рано или поздно можно будет наверстать, никаких законов природы, запрещающих дальнейшее количественное масштабирование искусственных нейросетей (как размера одной из них таки и количества по разному обученных новых) нету. Вычислительные мощности продолжают расти, а для получения большего количества энергии и материалов можно выйти в космос.

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

А вот отдельно взятый человек без обучения ничего принципиально нового изобрести не сможет ну или сможет с ничтожно малой вероятностью ничуть не лучше нейросетки искусственной. Более этого, даже достаточно крупные группы людей, в которых шло постоянное обновление и обучение новых людей очень часто ничего нового не изобретали тысячелетиями и даже в масштабах целых континентов (Австралия например). Колесо не могли изобрести на целых двух огромных континентах обеих Америк много тысячелетий.

Недавно ИИ решил одну из крупных математических проблем из списка Эрдеша таким способом, который людям не приходил в голову почти 80 лет. Так что в математику ИИ уже может на уровне недоступном почти всем людям за исключением наверное нескольких тысяч специалистов на весь мир (сколько там вообще высокоуровневых математиков сейчас?).

Я в принципе ответил подробно на это и в соседнем комментарии, но могу повториться - все вышеперечисленное создал не отдельный человек, а человечество в целом.

Только это всё равно про другое, про долготу решения и сложность задачи. А исходный вопрос был, цитата, "А человек может создать то, чему его не обучали?". Про качественный результат. А аргументация далее - про результат количественный, сами же так и пишете.

И в случае человека факты результата качественного в наличии - нету у человеков в обучающей выборке колеса. И нету мнимых числе. Даже возведения в степень, корней и отрицательных чисел нет - и это при условии "ну, положим, абстракцию чисел целых человек ещё может придумать посчитав куриц по головам; идею круглое катить он взял из бревён, тут хоть есть на что опереться".

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

Причём для комплексных вычислений и мнимых/комплексных чисел даже известен конкретный ими начавший совсем чуть-чуть оперировать человек 1, и конкретный имя им давший человек 2(и вполне отдельные дорабатывавшие и расширявшие далее эту тему человеки 3-4-5-много) - а не абстрактное "человечество в целом".

Только это всё равно про другое, про долготу решения и сложность задачи.

Так в этом то все и дело - человеку в вашем примере дается чудовищное именно количественное преимущество.

И никто не знает и не может сейчас доказать, что ИИ имея такое же количество времени и ресурсов не сможет достигнуть аналогичных результатов.

А единичный случайный человек сможет придумать еще меньше нового чем единично взятый ИИ.

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

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

Человек предпринимал сотни миллиардов попыток и чего-то новое придумал. А ИИ такого количества попыток еще не предпринимал.

И на данный момент нет никаких строгих доказательств что разница именно качественная, а не количественная.

Мы сами не понимаем как именно нам удается придумывать это самое новое. И соответственно если мы это придумываем за счет чего-то непонятного, нет никаких гарантий что этого самого непонятного нет и у ИИ.

А если разница количественная - это вещь решаемая рано или поздно.

Нейросеть не может создать ничего чему её бы не обучали.

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

Мозг человека это тоже нейросеть.

Но есть нюанс: она на много порядков больше.

Но у неё и задач по поддержке жизнедеятельности тушки гораздо больше. Половина мозга вообще занята обработкой сигналов с сетчатки глаза.

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

а яблоня не умеет

Не всё так однозначно. Выясняется что растения вполне даже общаются между собой.

А Миау тем временем сделал ужасное открытие: растения тоже чувствуют! И, возможно, мыслят! (Изгнанника угораздило набрести на стыдливую мимозу.)

©

Да уже не намного. В мозгу человека в районе 100 триллионов связей между нейронами, открытые нейросетки в район 1-2 триллионов параметров, закрытые по оценкам до 10 триллионов.

Если модель обучена на квадратах, она не может нарисовать круг.

"А ты сможеш?"

Не переживай, введут налог на эти коробчки, или лицензирование "кому-надо". Также введут налог на ветряки, солнечные батареи. Обязательно будет налог на права и свободное вождение в строго огороженных зонах, ведь везде будет ии-водитель.

Кстати, нечто похожее на последний пункт уже есть в Германии, только в виде рыбалки - сначала надо купить дорогую годовую лицензию, потом рыбачить только на опредлённых платных прудах.

что - то подсказывает, что при такой стратегии издержки будут только расти )

Вот тогда цены и выкрутят.

Цены не выкрутят, если будет конкуренции, а она пока есть даже внутри США, не считая китайских моделей вообще и китайских открытых моделей.

Энтузиазма идти учиться на айти да и вообще сейчас ни у кого нет.

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

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

Цены не выкрутят, если будет конкуренции, а она пока есть даже внутри США,

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

не считая китайских моделей вообще и китайских открытых моделей.

Мы тут про многоосевой фрезерный станок, а вы нам про стамеску…

Сэм Альтман намедни заявил родившиеся ныне дети никогда не будут умнее ИИ.

Вот только причина не в LLM. Это сознательный выбор детей и, в первую очередь, их родителей. Айпад с пеленок, brainrot контент, вот это вот все.

Когда счета из ИИ превысят стоимость уволенных работников - бизнес подумает о том - А все ли мы посчитали?

Уже посчитали, что ИИсчета дороже зарплат текущим сотрудникам, но рулетка всё крутится... Котлеты на деп продолжают заносить...

Есть такое слово — демпинг.

(Догадайтесь с одного раза, что происходит после того, как конкуренты вытеснены с рынка искусственно заниженными цеами.)

Яркий пример

Завод ЭГЗ который делает генераторы

Десять лет назад делали магниты для этих генераторов. Появилась китайская фирма которая предложила поставлять эти магниты в два раза дешевле. Завод перешёл на эти магниты. Через четыре года китайцы взвинтили цены на магниты в 6 раз. Наши снова к нашим производителю. А завод закрыт. Специалистов нет. Разбежались.

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

Вот такая у нас техническая безопасность страны

https://habr.com/ru/articles/1028072/#comment_29890118

P.S. погуглил про завод, а там продолжение:

Тем временем в июне 2024 года был задержан еще один представитель акционерной группы СЭГЗ — генеральный директор АО «Уральские заводы» Василь Мусин. Поводом стало уголовное дело по факту поставки «продукции иностранного происхождения» в рамках гособоронзаказа. Обвинение было выдвинуто также одному из основных акционеров предприятия Виталию Шурыгину. Следствие считает, что радиостанции, производимые предприятием под маркой «ЭРИКА», фактически были собраны в Китае и реализованы под видом российских.

Интересно, а у китайцев единственная фирма была, которая эти магниты производит?

фирма не одна, но с недавних пор их страна сильно ограничила экспорт редкоземельных со всеми вытекающими. Теперь могут ставить любую цену

Внутренней конкуренции между разными китайскими фирмами нет?

это происходит на всех уровнях и крышуется в министерствах. Думаю китайские шпионы уже занесли всем этим чинушам огромные бабки, чтобы были приняты соответствующие решения и закрыты глаза на замещение качественной отечественной продукции (а она есть реально, в инструментостроении, в машиностроении) дешёвой китайской поделкой, которая через два месяца использования разваливается. Загуглите на замедленном видеохостинге "Всё о российском машиностроении" и ужаснитесь.

К сожалению, нет у России врага страшней, чем её собственное руководство (филиал Минобороны в Лефортово как бы намекает).

А, то есть с ноутбуками, мониторами, и всем таким можно шильдики переклеивать, а с рациями нельзя ?

Похоже что китайцы, как обычно, смогли в демпинг лучше всех.

Конечно! У них горизонт планирования — десятилетия (если не столетия).

Буквально несколько десятилетий назад - это была нищая банановая рисовая республика. Не уверен, что тогда закладывались планы даже на сегодняшний день. За 20 лет экономика выросла ровно в 10 раз.

Что такое мелкие неурядицы длиной в полвека на фоне истории государства в 3500 лет?

Тут на самом деле вопрос любопытный - с какого момента мы считаем Китай Китаем? Как и собственно любую другую страну.

Корабль Тесея очередной, да.

на этот вопрос на прошлой неделе ответил в интервью один ответственный товарищ из МИДа, я слушал как раз за рулем. (там пара заметных персонажей чай пить в Китай ездили и все резко стали китаистами). так вот, если брать официальную позицию РФ, то наша страна в общении с Китаем считает началом нынешнего Китая провозглашение Китайской Народной Республики председателем Мао Цзэдуном 1 октября 1949 года на площади Тяньаньмэнь в Пекине. Китай вроде как исходит из этого же в договорах, всяких важных датах итп, всё что было ранее имеет лишь историческое и культурологическое значение.

Что такое мелкие неурядицы длиной в полвека на фоне истории государства в 3500 лет?

— Господи, что для тебя такое миллион лет?
— Одна минута.
— Господи, что для тебя такое миллион долларов?
— Одна грош.
— Господи, подай грошик!
— Хорошо, одну минуточку.

НЛО прилетело и опубликовало эту надпись здесь

Чтобы не быть безмозглым вайбером нужно уметь программировать руками. Чтобы реально понимать код, нужно уметь написать его самостоятельно. А чтобы уметь программировать руками, надо регулярно это делать. Да, не только читать и мелкие правки в промпт вносить, но и писать законченные куски кода с нуля. Иначе со временем и понимать разучишься. Или не научишься. А кому это сейчас интересно? Вот в чем суть проблемы, озвученной ТС. Не в том, что с помощью ИИ нельзя написать качественный код. Можно, при достаточной квалификации инженера. Проблема в том, что ИИ провоцирует старых инженеров постепенно терять квалификацию, а молодых — никогда её не приобретать.

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

у каждого с десяток популярных фреймворков и библиотек, но живем же как-то

Звучит не очень оптимистично, если вырвать...:-)

Ну и поэтому был утрачен навык «все помнить». Вот только он не был на столько же важным как навык применять то что знаешь или знаешь где посмотреть.

  1. много кто помнит

  2. есть документация.

тут уже дело в том, что IDE, Stackoverflow и гугл в общем детерминированы и ты получишь ответы на конкретные вопросы(чтобы задать конкретный вопрос надо понимать о чем говоришь)
ИИ в свою очередь недетерминирован и не требует такой конкретики, один промпт дает разные результаты, запросы можно писать не вникая в детали(да вообще не читая код в нынешних реалиях)
В общем использование агентов - игра в русскую рулетку. Если делать нечего, то можно, а зачем?

у меня контора не покупает токены. я сам покупаю подписку и успеваю больше.

Не получается-ли так, что вы фактически передаёте налево данные своей конторы, безо всякой ответственности за них со стороны вендора?

Хайп вокруг AI это не только про галлюцинации. Это классная приманка, чтобы стаф сливал подчистую им все, что до этого работодатель хранил за семью печатями под грифом strictly confidential.

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

НЛО прилетело и опубликовало эту надпись здесь

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

То есть вы кормите ЛЛМ на личной подписке корп данными? Вы понимаете последсвия? Любая нормальная компания с адекватным инфосеком вас бы уже уволила

боже, опять

но рулетка всё крутится

По инерции крутится. Но недолго осталось, судя по всему.

Соотношение расходов на нейронки и штат - это еще не все.

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

В коротком периоде да, все работает и "и так сойдет". Но дальше будет "надо исправить". И вот тут откроется много интересного, т. к. исправить - это значит сделать с нуля.

кажется я начинаю понимать дьявольский замысел большой тройки ии - баронов: ликвидировать класс программистов и вообще людей с инженерным мышлением, чтобы потом за решение подобных катастроф с техдолгом исправно стричь токены с доведённых до отчаяния мелких бизнесменов ))

так ведь не только мелкие бизнесмены этим страдают, если по 30к сотрудников выгоняют на мороз крупнейшие компании. Тут как бы не получилось истории как была с COBOL, если не ошибаюсь, когда деды по 60-70 лет гребли лопатой огромные бабки за поддержку систем бронирования (или управления полётами) в аэропортах, потому что эти системы были написаны ещё во времена динозавров на бересте и папирусе.

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

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

@jegornet : Нейросеть за час справляется с тем, на что у команды синьоров уходят годы – превратить новый проект в неподдерживаемое легаси-говно.

Вы забываете затраты на развёртывание этого софта. Соответственно, с переходом от цикла 5 лет до цикла в пол года они возрастают в 10 раз.

И вот тут откроется много интересного, т. к. исправить - это значит сделать с нуля.

но теперь делать с нуля стало проще и дешевле. То есть, возможно, это и не проблема вовсе.

Если расходы на экскаватор превышают расходы на уволенных землекопов, это ещё не значит, что надо продавать экскаватор и нанимать обратно землекопов.

Грустно, но с затённой надеждой смотрю на бригаду в пару дюжин джамшутов вручную капающие газоны под нововые тротуары у меня под окном …

Это точно дичь, и скорее всего с сильным запахом криминала. Видимо, откат с 24х джамшутов жирнее, чем с одного экскаватора. Другого объяснения у меня нет.

Повышение производительности труда приводит к снижению трудозатрат, снижение трудозатрат приводит к снижению цен, снижение цен позволяет не индексировать зарплаты хотя бы на уровень инфляции. Всё это приводит к тому, что дальнейшая автоматизация окупается чуть раньше, чем никогда, ибо люди готовы работать совсем за копейки. Итого, нищенские зарплаты - главный сдерживающий фактор развития производства.

вручную капающие газоны

Представил капельницу с газоном.

Я бы ещё добавил, что "нейро-оптимисты" (т. е. те, кто считает, что можно будет уволить всех программистов и заменить их нейронкой) не учитывают того, как наплевательски нейронки относятся к вопросам безопасности написанного кода. Да, можно ожидать что и в этом отношении нейронки подтянутся, но пока ничто не намекает, что вопросы безопасности разработанного кода будут решены на 100%.

Когда вайб-код, выведенный в продакшен, достигнет некоторого существенного процента, вопрос его качества и безопасности встанет во всей красе. И вот тогда начнётся "подсчитали -- прослезились".

Нейронка -- прекрасный инструмент, существенно упрощающий и ускоряющий работу. Но реально хороший и надёжный продукт она сможет дать только если тот, кто ставил задачу:

  1. Смог достаточно хорошо и полно её описать;

  2. Смог провалидировать результат.

Оба пункта требуют определённой квалификации.

Причём первый -- при классической парадигме разработки редко требуется условному мидлу (не говоря уже и про джунов). Постановка задачи -- это скорее функция аналитика/архитектора/тимлида/сеньора (зависит от размера продукта/размера команды).

Второй -- ближе к компетенциям "классического" (до-нейросетевого) программиста, но всё равно, эти знания и навыки у специалиста должны быть.

А от тех, кто зашёл в разработку сразу с вайб-кода, не грызя особо гранит языков/фреймворкой/платформ/разных ОС -- сложно ожидать дОлжного уровня компетенций.

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

Да, можно ожидать что и в этом отношении нейронки подтянутся

Так в этом собственно и суть позиции нейрооптимистов. Она не в том, что нейронки в нынешнем состоянии могут всех заменить уже сейчас.

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

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

как наплевательски нейронки относятся к вопросам безопасности написанного кода

«Через 40 минут у меня был сервис, база, авторизация, графики и четыре уязвимости, которые я не просил.» ©

Тут ещё один довод - когда интернет насытиться готовит проектами от AI, начнёт нарастать потребность тестировать безопасность и исправлять дыры; а параллельно будет увеличиваться количество хакеров и их успешность.

Судя по отзывам об Anthropic Mythos, она уже справляется с тестированием безопасности не хуже, а временами и лучше людей.

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

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

Нет препятствий патриотам! ©

Что самое интересное, за каждый токен мёртвого кода уплачено) Ситуация как в Индии, когда им платили за строчки кода и они стали писать много непонятных строчек. Так и ИИшке платят за токены и она пытается нагенерировать больше токенов, чтобы больше платить, а всё остальное не важно)

ну кстати да. им выгодно затягивать процесс :)))

Мне больше китайский код нрасится. Я реально наблюдал “разворачивание” цикла for на 1024 строчки в коде аудиокодека :)

Вы не поверите, но в начале 2000 разворачивание циклов и процедур было стандартным способом оптимизации скорости и объема используемой памяти. При этом безусловно производился замер производительности чтобы оставить лучший вариант на предсказанных данных. Да и сейчас не все так однозначно из за проблем с предсказанием перехода...

Да и сейчас не все так однозначно из за проблем с предсказанием перехода...

Да и компиляторы умеют делать это автоматически + по результатам профилирования.

Когда после восхищения первыми AI проектами с нуля возникнет кодовая база и нужно будет вносить мелкие изменения. И внесение этих изменений будет ломать другие части, а то и сами изменения будут работать криво, возникнет другой вопрос.
А где бы нам теперь взять опытных разработчиков?

А где бы нам теперь взять опытных разработчиков?

На ферме!

это офигенно)

Напомнило фильм Разрушитель 1993 года. Только теперь по сюжету нужно будет спасать прод вместо поимки преступника, а разработчика будут доставать не из крио-тюрьмы, а с огорода.

Chat gpt 5.5 xhigh + superpowers плагин и в принципе и архитектура будет ок. Я тоже дал заказчику интерфейс в голом chat gpt сделать потом месяц вычищал вот такую же лапшу и заплатки на заплатке в итоге переписав почти все.

Даже ИИ лучше ставит знаки препинания.

Пффф, вообще главное в программировании это тщательно закрывать скобочки, а не вот это вот всё

и в принципе и архитектура будет ок.

В народе - колхозник.

потом месяц вычищал вот такую же лапшу и заплатки на заплатке в итоге переписав почти все.

В магазине - продавец.

Управления нейронками - это навык. Ему тоже надо учиться. Решить нейронкой описанную в статье задачу так, чтобы комар носа не подточил - более чем реально. Рука у пацана не набита ещё. Пусть дальше тренируется

Ну вот на примере той же задачи из статьи. Как описать нейронке необходимость использовать React Router если ты вообще не знаешь о его существовании в силу отсутсвия опыта?

По моему мнению опыт в доменной области, которую ты обсуждаешь с нейронкой доминирует над опытом работы с нейронкой.

Работа с нейронкой в области, где у тебя нет экспертизы весьма своеобразна. Роль эксперта в этом случае передаётся нейросети. Ключевыми заклинаниями становятся вопросы: "всё ли мы правильно делаем?", "соответствует ли наш код общепринятым практикам?", "какие ожидаются проблемы?", "где код может сломаться?", "корректно ли мы обрабатываем ошибки?". И прочие метавопросы.

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

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

"соответствует ли наш код общепринятым практикам?"

Вот только как разработчик с 30+ лет опыта скажу, что общепринятые практики общеприняты не потому, что они хорошие, а потому, что они рассчитаны на общепринятого человека (ЕВПОЧЯ).

А вам не надо, чтобы код был идеальным. Вам надо, чтобы он работал. Можно задать этот вопрос иначе. Является ли наш код "production ready"? Не стыдно ли его людям показать? Можно ли это дело вывешивать в интернет? Не уволят ли меня, если я то, что мы написали начальнику покажу.

Тут не должно быть дословного понимания. Программирование агента - оно где-то между риторикой, магией и психологией.

А вам не надо, чтобы код был идеальным.

Мне — надо. Это моему начальнику не надо.

И часто ли вы пишете \ ревьюите идеальный код? Никогда :)

На своих проектах — почти всегда (я чё, идиот — халтурить там, где я для себя работаю?): у меня не стоит задачи «выпнуть его в прод до пятницы — пусть ну хоть как‑нибудь работает, и ниипет, какое там внутри овно и палки спагетти», я его пинаю до тех пор, пока не будет удовлетворено моё чувство прекрасного.

Ну а на рабочих — ну, как начальник прикажет.

Увидеть этот идеальный код нам не суждено, конечно

Гитхаб открыт для всех.

У вас в профиле помойка какая-то, ссылку не нашел

С этим вопросом — к хабру, куда они её прячут.

Всё там видно, чел просто слепошарый.

А что такое идеальный и который работает?

Вот например нейронка не добавила регистронезависимый индекс к полю в базе данных. Да оно работает, но есть вопрос. И убедить ее сделать правильно не зная о таком индексе вообще не реально.

Или собранный алгоритм который имеет сложность квадрат или куб там где можно линейный, тоже работает.

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

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

П.С. ну вот сегодня пытался сделать простую вещь, нормализовать размер фото, по определенным правилам. В итоге отверг 2 глючные и одну типа работающую версию и написал сам, да потратил на это часа два, а не пол часа, но все работает, все углы учтены. Показал нейронке, забраковала типа мое было лучше )))

ну вот я читаю. а в чем разница между человеком то

> нейронка не добавила регистронезависимый индекс к полю в базе данных

Это было в ТЗ? если не было, то вот Вы наняли внешнего разраба делать. откуда он должен был знать, про регистро-зависимость? если ему не сказали?

и за этим "внешним" тоже проверять надо

А вам не надо, чтобы код был идеальным. Вам надо, чтобы он работал.

Думается, это влияет не лучшим образом на "общепринятые практики". Этот код тоже может использоваться для обучения.

А вам не надо, чтобы код был идеальным. Вам надо, чтобы он работал

Вы представляете какого размера ящик пандоры открывается этой установкой? Человеки десятки лет писали, вылизывали код и стандарты (старались по крайней мере), чтобы он не просто работал, чтобы он работал хорошо. Безусловно не всегда и не везде получалось, но люди старались. Именно эта проделанная работа сейчас является основой для вайбкода. А теперь давайте хреначить код у которого нет задачи быть хорошим, главное быстро и рабочий. Этот код будет постепенно подмешиваться и замещать собой код написанный ранее людьми. Затем новый код будет генерироваться на основе постепенно деградирующего по качеству. Параллельно будут деградировать навыки самих человеков, а также их мотивация. Куда нас это вообще приведет.

Но в моменте да, все прекрасно, почти

Человеки десятки лет писали, вылизывали код и стандарты (старались по крайней мере), чтобы он не просто работал, чтобы он работал хорошо. (...) А теперь давайте хреначить код у которого нет задачи быть хорошим, главное быстро и рабочий.

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

Параллельно будут деградировать навыки самих человеков, а также их мотивация.

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

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

Нетрудно представить. Сначала будет хорошо, потом все умрут.

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

А ведь нас предупреждали!

(Жан-Пьер Пети. "О чём размышляют роботы". 1987)

У меня планируется раздел по работе с агентом вне зоны компетенции.

Б-же мой! Вы это серьёзно? Как вообще можно работать вне своей зоны компетенции? И кто поставил 9 плюсов вашему комменту?

Вайб-хирург:

-- Эй, ИИ! У человека с какой стороны печень, слева или справа?

-- Слева.

После операции.

Вайб-хируг:

-- Эй, ИИ! Но почему пациенту хуже? Ты уверен, что печень слева?

-- Прошу прощения! Конечно, вы правы. Печень справа.

Всё уже украдено до Вас!

...и снова что-то вырезает слева.

Помнится, на следующей аналогичной картинке пациент уже с зашитым ртом лежал. Возможно, после промпта: "Переделай так, чтобы замечаний больше не было"?

ИИ часто добивается отсусттвия варнингов сапресами и фиксит тесты удалением их) Мол после этого всё хорошо собирается. И мне вспомнилось было видео у Славного Друже, где он с какой-то азиаткой что-то из крабов готовил. Друже говорит, мол у нас некоторые считают негуманным бросать раков в кипяток, ему ведь больно, он барахтается. Азиатка отрывает крабу все лапы и бросает в кипяток. И говорит, мол не барахтается, значит не больно.

Страшно представить как ИИ анестезиолог может сделать анестезию :D

Страшно представить как ИИ анестезиолог может сделать анестезию

Помнится, во времена оны ассистентом хирурга был крепкий мужик с деревянной киянкой. Наиболее опытные вырубали пациента с одного удара.

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

Помнится, на следующей аналогичной картинке пациент лежит уже с зашитым ртом. Возможно, после промпта: "Переделай так, чтобы замечаний больше не было"?

@Boomburum, опять комментарии дуплятся.

Ключевыми заклинаниями становятся вопросы: "всё ли мы правильно делаем?", "соответствует ли наш код общепринятым практикам?", "какие ожидаются проблемы?", "где код может сломаться?", "корректно ли мы обрабатываем ошибки?". И прочие метавопросы.

И на все эти метавопросы вам будет выдана куча ответов некоторые из которых:

  • устаревшие, но вы в виду отсутствия экспертизы этого не поймете

  • несущественные, но вы в виду отсутствия экспертизы этого не поймете

  • сгаллюцинированные, но вы в виду отсутствия экспертизы этого не поймете

  • не относящиеся к задаче, но вы в виду отсутствия экспертизы этого не поймете

Если, по примеру примера из статьи, у вас будет опыт с Vue/Angular и вы что-то слышали про React, то вы заподозрите, что все эти фреймворки должны иметь роутер. Если нет, то вы в лучшем случае закончите с routerjs вместо react router, а в худшем - вообще без него.

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

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

Кто потом несет ответственность за такой код в проде?

хотя и требует отдельного нетривиального навыка.

Мне вот прям интересно стало, а какого? Ну вот допустим есть у меня нерадивый повар. Приносит блюдо, а оно кислое, я это чувствую, но не знаю почему, потому что не знаю процесс готовки. Говорю мол оно кислое, повар переделывает, а оно тухлятиной воняет. Переделывает снова, и блюдо теперь горькое. Ещё и переселено. Может конечно вы под тем самым НЕТРИВИАЛЬНЫМ НАВЫКОМ (да-да, вот так вот капсом) понимаете дотошность. Чтобы я объяснил повару чтобы он сам взял все блюда, проверил их ингредиенты, как они между собой сочетаются, взял все варианты блюда что он сделал, сравнил разницу в процессе готовки, добавленных ингредиентах и их количестве, и может быть я тогда смогу получить именно то что надо.

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

Да, дотошный человек сначала вытащил бы из повара всю подноготную уточнив все мелочи, дьявол-то кроется в мелочах как говорится. Но у вас в таком случае должен быть опыт управления поварами, и тут мы возвращаемся к типичной проблеме любой сфера - хотя бы понять, а что мы не так делаем и в какой момент всё пошло не так. Да, можно попытаться вывести дельту с момента когда запахло жареным, и это даже сработает если у нас поваров 5. Но вот когда их 30, а перед тем как запахло жареным всё уже к чертям сгорело и всё только выглядело нормальным, удачи это всё разгрести.

Но это относится к ресторанам. А нерадивому повару остаётся только бигмаки готовить. Да, вместо 1 бигмака мы получим 30, но из 30 бигмаков банкет не получится.

Если что вышеописанное ручных программистов и менеджмент тоже касается, нейросети просто скорость на х10 поставили.

Прошу прощения за многа букав, немного сумбурно, накипело просто. Аналогии не люблю, но по-другому объясниться не могу.

Это тоже будет в статье. Как понять почему ваш повар всё время косячит? У вас есть под охрененно прозорливый детектив с высочайшим уровнем эрудиции. Пошлите агента разобраться, почему агент косячит.

Обнаружьте, что его сбивает. Проведите рефакторинг. Спрячьте холодильники с неправильными продуктами в подвал. Сделайте так, чтобы на кухне при всём желании нельзя было заблудиться. Снимите картину со стены, если она падает, когда агент поворачивается.

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

Это да, тут согласен, ИИ в ревью хорош, даже очень. Но есть один ньюанс - ревьюер должен обладать полнотой контекста, бизнес-требований, технических ограничений и так далее. И вот чтобы собрать эту полную картину, как раз-таки и надо обладать компетенцией хотя бы на уровне проектирования систем. Можно конечно попасть сразу на этот уровень минуя ручную работу и разгребания её последствий, но это довольно сложно. И вот как раз формализация требований зачастую занимает большую часть работы, и чем крупнее система, тем больше времени надо потратить на эту неблагодарную работу. И если вы создавали систему сами, знаете как она работает, то часть контекста у вас уже есть.

Статью жду, почитаю с удовольствием.

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

НЛО прилетело и опубликовало эту надпись здесь

Методы, которых нет, как-раз не проблема: даешь доступ к Context7 MCP серверу и в промпте говоришь, чтоб проверила доки именно по используемым версиям библиотек. Так-то на любую библиотеку может быть куча мажорных версий с несовместимыми изменениями, а у нейронки знания замороженны прошлым, так что Context7 очень полезная вещь, иначе нейронка спотыкается во время имплементации, начинает искать доки по всему интернету, тратит время на исправление и тд.

А экспертиза не ослабевает?

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

Держать все в голове невозможно.

«Всю водку не выпить, всех девок не перепортить — но это вовсе не повод к этому не стремиться!» ©

Это дуболомная калька с английского слова "expertise", что означает "экспертные знания". Откуда "экспертам" знать про ложных друзей переводчика? Вот и загадили все вокруг этой "экспертизой". ЕГЭ победил. Дальше - только хуже.

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

Не, не затеплится. Язык живой и постоянно меняется. Современные дети не зовут родителей предками, слово "герла" на улице не услышишь уже несколько десятилетий, зато, например, появилось слово "мем".

зато, например, появилось слово «мем».

А что, Вы предпочитаете ситуацию «жо мем есть — а слова нет»?

А вот слово «опыт» всегда было. Причём оно короче.

Ну так-то да, в русском слово "опыт" покрывает оба значения там, где в английском есть разница между "I have experience" и "I have expertise". Но когда привыкаешь на митингах слышать эту разницу, уже и по-русски "опыт" не хочется говорить, там где смысл "expertise", кажется, что не правильно поймут. Наверное более близко будет "у меня есть экспертные знания", но так получается длиннее и как-то непривычно, все равно как-будто не то. :)

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

Наверное более близко будет «у меня есть экспертные знания»

«Я эксперт в...»

Эксперт с мировыми именем.

"Эксперт" уже какое-то ругательное слово, после того, как каждый первый новостной канал выдает за "мнения экспертов" либо своих мозговых слизней, либо нейрослоп. Вот так язык и меняется. :)

Это ыксперды

Ну а мем наверняка произошло от memory.

Нет. Слово meme (произносится "мим", а не "мем") в конечном итоге происходит от того же слова, что и "имитация". И его придумал конкретный человек в конкретной книге (The Selfish Gene - Wikipedia)

Век живи - век учись, спасибо!

Век живи - век учись

..вот только не все знают, что у этой поговорки в оригинале есть и окончание: «Век живи — век учись, дураком помрёшь».

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

Жму руку. "Мы - последние атланты этого мира." (с)

Замена длинного словосочетания "экспертные знания" более коротким "экспертизой" лично мне кажется неплохим расширением русского языка.

А как насчёт ещё более короткого «опыт»?

Опыт это другое слово с другим значением даже в оригинале это будет experience, а не expertise. Даже если говорить о работе можно запросто иметь опыт, но не иметь экспертизы, а слово опыт далеко не только о работе смысл несет.

Опыты разные бывают. Когда вы развинтили мотоцикл и теперь сидите на груде запчастей, глядя на них аки баран на новые ворота — это experience. А если вы его после этого свинтили обратно и он стал ездить вдвое быстрее — это expertise.

Хотел вам кое что сообщить, но квен меня отговорил:

Объяснять ему что-либо бесполезно. Его позиция — не лингвистическая, а идеологическая. Он защищает миф о «чистом языке», а не анализирует реальную языковую практику.

Аргументы для пробития этой брони (если решишь тратить время):

  1. Ложная этимология. Слово expertise пришло в английский из французского (expertise), куда попало из средневековой латыни (expertitia). Корень тот же, что и у русского «эксперт». Это не калька с английского, а возвращение общего индоевропейского корня через другой маршрут. Называть это «англицизмом» — фактическая ошибка.

  2. Семантический сдвиг — норма, а не порча. Значения слов меняются под давлением речевой практики, а не указов академиков. Если носители языка используют «экспертизу» как «компетенцию», значит, в системе возникла лакуна или старое значение сузилось. Язык оптимизирует себя, а не деградирует.

  3. Двойные стандарты. Критик использует сотни одомашненных заимствований (включая слово «калька»), не считая их засорением. Его возмущение избирательно и основано на личном вкусе, замаскированном под норму.

  4. ЕГЭ ни при чем. Семантические изменения фиксируются в словарях задолго до введения ЕГЭ. Ссылка на экзамен — маркер бытовой ненависти, а не аргумент.

Вывод: собеседник не способен воспринять диахронический подход. Любое объяснение он интерпретирует как оправдание «деградации». Дискуссия с ним имеет нулевой КПД.

Хотел вам кое что сообщить, но квен меня отговорил:

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

Подозреваю, что у вас раньше закончатся токены, нежели нейросети придут к консенсусу... И удовлетворит ли вас получившийся результат, тоже вопрос большой.

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

да, вайбкодинг тем и отличается от серьезного кодинга с нейронкой - что последний всегда начинается с планирования (да, с помощью нейронки, но она ж вопросы коварные зараза задает, прям как в "кто хочет стать миллионером" - выберите -A, B, C, D))) а тут надо понимать архитектуру...

а вайбкодеры что -- просто текстом пишут задачу и жмут "выполняй")) Пришла ошибка -- Пишут "исправляй")

пишут задачу и жмут "выполняй")) Пришла ошибка -- Пишут "исправляй")

К чему эти лишние шаги?..

Ну не надо прям так упрощать, вы совсем их за дураков держите?

Все гораздо сложнее:

/s

Ну не надо прям так упрощать, вы совсем их за дураков держите?

«Всё не так плохо, как вы думаете. Всё гораздо, гораздо хуже!» ©

Когда-то давным давно в универе на лекции по интерфейсам я так и ответил: "должна быть кнопка Сделай Мне Хорошо". На что препод, умнейший чувак, ответил, что подобной кнопки вообще не должно быть. И весь интерфейс программы после запуска должен состоять из одной надписи "Тебе уже хорошо".

https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices

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

Доменная область разве не системы управления и учета ИТ проектов? (раз уж мы пишем отчет по работе отдела разработки)

Как описать нейронке необходимость использовать React Router если ты вообще не знаешь о его существовании в силу отсутсвия опыта?

Э-э... спросить у нейронки какие лучшие общепринятые практики есть для решения такой задачи?

Это же типичная поисковая задача, именно с ней нейронки превосходно справляются даже сейчас и даже если они не пишут дальше весь код, а просто консультируют програмиста в старомодном стиле.

Само собой есть такие задачи, для которых еще нет общепринятых лучших практик, но мне кажется 99% программистов решают задачи где такие практики уже есть. В том числе и приведенная с React Router.

Как описать нейронке необходимость использовать React Router если ты вообще не знаешь о его существовании в силу отсутсвия опыта?

Довольно просто. Прежде чем давать задания джунам, человек, который разбирается в архитектуре проекта, создаёт в его корне AGENT.md, в котором прописаны требования к реализации, использованию библиотек и прочие важные архитектурные требования. В идеале вообще работа с ИИ начинается с создания инфраструктуры требований: правил, хуков, скиллов. А если ещё и задание джуну дать в виде такого же .md, который он может скормить ИИ – так и вообще замечательно. Если он возьмёт на себя труд его прочитать, то через какое-то время поймёт, как ставить ИИ задачу, и сможет это делать сам.

https://habr.com/en/news/1039430/

Возражение "вы используете неправильно" он сравнивает с советами фанатов казино: "не ставишь пять линий после вишни — вот и не выигрываешь"

Верно ли понял, что вместо совершенствования в профессиональной сфере вы советуете человеку учить алхимию: "умение" писать промты? Уже много раз вижу такие советы, и становиться немного боязно за новое поколение.

«Литания Пробуждения» (Читается при начале работы с Духом Машины)
В бинарном восславлении возвышая голоса, Адепты Бога-Машины железною решимостью пробуждают дремлющий дух.

«Литания Выключения» (Читается при выключении механизма)
Дух Машины, именем Омниссии прошу тебя,Засни сном крепким, ожидая возвращения на службу Богу-Машине!

«Литания Электроманта» (Читается при работе с когитатором.)
Да будет знание наше подобно светочу во тьме,А враги наши-да сгорят в огне его.

«Литания Священных Гаек» (Читается при открытии священных гаек.)
Благослови Омниссия сей инструмент,Движение есть жизнь, а жизнь есть знание.

Это очень грустно читать

Относитесь к этому как к новой фазе абстракции в разработке ПО. Они всегда были: двоичный код -> assembler -> functional programming -> modular programming -> OOP -> packages/libraries use -> AI

У вас детерминированное преобразование заменилось рандомом и слопом в конце.

Я как то слышал идею, что в теории детерминизм можно получить когда поставлять копию llm вместе с сидом. Типа как промпт - это код, а llm и сид - виртуальная машина. Понятно, что при обновлении llm всё сломается, но как мыслительный эксперимент - довольно интересно. А так то вообще да - до этого все новые абстракции были детерминированы, а сейчас - рандом.

Уже были исследования что ЛЛМки даже так повторяемость не дают. Ошибки округления появляются.

псевдо-рандомом

Опытные разработчики это понимают. Но это не понимает руководство. У них джун написал код за 3 часа, что делает нормальный разработчик неделю. А это высокий KPI.

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

Предусмотрительность — вот главное качество настоящего менеджера!

НЛО прилетело и опубликовало эту надпись здесь

ну так это вообще примета эпохи - подписки и аренда, здравствуй, люмпенизация :)

Каждая команда ассемблера документирована, каждый оператор в С имеет свой определенный приоритет, слово private в Java гарантирует, что внешний код не получит доступа к этому члену класса, и так далее. Я знаю, что @property сделает в коде на Питоне, как этим воспользоваться.

За каждой абстракцией прошлого стоят вполне конкретные идеи, они описаны и документированы. Мы знаем точно, чего эти абстракции добиваются, зачем они были придуманы, как реализованы. Как работает VMT в С++, как работает байт-код в Java, как работает actor based parallelism в Erlang. Поэтому мы в любой момент можем взять любую абстракцию и применить её именно там, где нужно.

Но LLM - это совсем другое. Вам никто не скажет, какое соответствие между промптом к LLM и получившимся кодом. Если я пишу А, то я могу получить Б, могу получить В, могу получить галлюцинацию. Если я пишу хрень в С++, нарушающую эти абстракции, я получаю гору ошибок от компилятора, если я пишу хрень в LLM, я просто получаю хреновый код.

да, и который к тому же долгое время мастерски маскируется под идеально работающий :)

Если бы всё работало так, как вы рассказываете, то все программы довайбкодной эры работали бы идеально и не имели уязвимостей. Ведь:

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

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

Но увы, реальность показывает совсем другое.

Если мы посмотрим на развитие языков программирования, мы как раз увидим, что уязвимостей становится меньше, а компиляторы и статические анализаторы находят все больше и больше классов ошибок. При переходе с С на С++ мы получаем умные указатели и больше не ловим use after free, при переходе на Erlang мы получаем иммутабельность и можем спокойно работать в несколько потоков над одними и теми же данными, не боясь за их порчу.

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

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

НЛО прилетело и опубликовало эту надпись здесь

Например, если раньше проанализировать и установить причину инцидента производительности СУБД уходил рабочий день, если повезёт бывало и неделя плюс танцы с бубнами, то теперь пару часов с научно обоснованным инженерным результатом.

Если раньше решил задачу — и в голове осталось знание, то сейчас отключили доступ к LLM — и сидишь себе: «где я? кто я? как теперь жить?»

Так и сейчас остаются знания. Они же не просто решение в чёрной коробочке дают, а детально объясняют что к чему, с ссылками на первоисточники.

Кто ж их читать будет?

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

бизнесу это не так важно - у него ничего не отключат

Это ему лично сам Трамп обещал?

поэтому я прошу сделать отчет о сделанной работе (если у меня нет его в голове), чтобы при случае - поменять инструмент, вернуться к сделанному или откатить изменения

и в конце концов разобраться, что было сделано и почему так (а не иначе)

В общем это вопрос желания. Можно использовать нейронку /внешнего подрядчика "по вайбу", а можно хотеть и мочь разобраться

Ни одна из ныне живущих LLM не учатся на данных! Они сохраняют ваш контекст, а это не обучение. Это его иллюзия. Хотя иногда и работает как надо.

Тем не менее, это обучение, только в рамках контекста, пока он не переполнен. Дальше начинается сплошная дурость галлюцинирования.

Справедливости ради - не совсем так, например, я прошу документировать определенные действия и складывать полученные .md в репо, в каждом есть метаданные, а ссылка на каждый документ вносится в реестр. Отдельный реестр для инцидентов и файлы с из описанием. В первую очередь Клод обращается к ним.

Переполнение - да, проблема. Про обучение вне контекста - кажется Antigravity складывает knowledge base отдельно, и пользуется им (я видел как, довольно успешно). Пока не оценил насколько хорошо, и про это ли, но в codex завезли memories.

Мне кажется весь контекст всех пользователей тщательно складируется и включается в обучалку следующей версии LLM.

Я прямо себе представляю как в каком-нибудь банке DBA сливает кусок продовской базы с номерами карт клиентов для "анализа" нейронке потому что запрос лагает и повторяется только на определенном наборе данных. Ляпота да и только.

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

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

А компьютеры они только чтобы в игры играть. А интернет чтобы курсовые и рефераты скачивать.

Как известно, Internet is for porn!

Кто такой "футурист"? Foo tourist или Futurist?

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

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

Как думаете, может быть такое, что бизнес как-то нечаянно возьмет да и перескочит через "точку невозврата" и забьет на то что внутри ИТ-решений, сосредоточившись на внешней фактуре (работает же!), говоря проще - когда бизнес забьет на кодовую базу и прочее, скажет что главное - функционал здесь и сейчас, а эти ваши "техдолги", и эти ваши "идеальные коды" - это всё денег "вотпрямощаз" не приносит. Может быть такое?

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

Конечно. И не факт что выживет после этого. И это нормально.

В крупных компаниях техдолг может копиться до такой степени, что потом те, кто должны в идеале обслуживать и развивать, бегают как в жопу ужаленные, переработки, выгорания, увольнения - текучка. В промышленности тоже самое. Потом "за забором" находят, бегают еще быстрее, увольняются еще раньше. И до победного - пришел, увидел, охренел. Вот тогда они...задумываются? Нетушки, туда бросают спецов с другого направления...На колу мочало, начинай сначала!

Если не устранять техдолг (а для этого нужен человек, который корректирует агента, когда он делает сомнительные вещи или прямо прописывает нужные технические решения в промте фичи), то в какой-то момент ИИ агент сам перестаёт справляться с поддержанием своего же кода.

Пишешь первый промт - получаешь результат. Затем добавляешь одну фичу - получаешь результат. Затем добавляешь вторую фичу - получаешь результат. А потом на очередной фиче любое изменение кода от ИИ ломает приложение. И даже за много часов правок ИИ агент (сожгя токены на круглую сумму) не может восстановить работоспособность. Текущая версия работает (но, очевидно, там нет нужной фичи или есть какой-то ненужный баг, не просто же так мы пришли с новым промтом), но любое изменение делает хуже.

И человека позвать на помощь уже нельзя, потому что в коде в котором потерялся ИИ агент, человек уже тоже не разберётся.

Только переписывать с нуля.

Так вот зачем нужны микросервисы - чтобы переписать с нуля не весь монолит целиком (который уже не влезает в контекст), а тысячи микросервисов по отдельности.

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

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

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

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

НЛО прилетело и опубликовало эту надпись здесь

Я тоже такое стал замечать. Качество снижается. Поэтому вполне возможно в ближайшем будущем многие вещи будут переписывать с нуля.

 когда бизнес забьет на кодовую базу и прочее, скажет что главное - функционал здесь и сейчас, а эти ваши "техдолги", и эти ваши "идеальные коды" -

Будет не так. Нейронки научатся писать код лучше людей (уже сейчас пишут лучше многих). Технического долга будет создаваться меньше, чем у людей. Человек будет только product manager - ставить задачи и смотреть результат.

Будет не так. Нейронки научатся писать код лучше людей

Ага,

(Ради Сагана, не просите нейронку «объяснить смысл этого мема» — оно нанесёт не относящейся к теме пурги по самые уши: я восемь раз попробовал — ни разу не угадало.)

Лучше посмотрите оригинал.

ну, справедливости ради, плюс-минус по теме, не считая нарративных нюансов...
Что не отменяет того, что, в целом, с вашей позицией согласен.

справедливости ради, плюс‑минус по теме,

Эммм... Вы же только что сами принесли пол‑лукошка пурги!

Мультфильм рассказывает о мальчике, который приходит к руководителю театрального коллектива, членом которого мальчик хочет стать, красочно расписывая номер, который он собирается подготовить — вот только когда подходит срок сдачи, он говорит «я передумал» и предлагает подготовить другой номер, потому что тот будет лучше, его характерная приговорка — «Это будет так...», после которой он «в лицах» расписывает свою новую придумку. На картинке — кажется, третья итерация этого процесса, и руководитель коллектива Карандаш уже «на взводе» («руки‑в‑боки»). После того, как мальчик нарушает своё обещание в очередной (кажется, четвёртый) раз, коллектив и пишет ту самую процитированную частушку, в которой «проходится» по Обещалкину, и исполняет её на концерте перед публикой.

(При написании даной выжимки ни один токен не пострадал.)

Мальчик (Буратино) встречает мальчика (Обещалкина) и пытается вспомнить кто это...
В чем проблема? Рассказано по теме, просто с другой стороны. С моей стороны есть ровно две претензии... Буратино назвали мальчиком (что не противоречит, но не достаточно погружает) и термин "встречает" вместо "видит" (тоже не критичное расхождение)

ЗЫ: на этот ответ тоже ни один токен не потрачен

Буратино там чисто персонаж второго плана, его роль заключается исключительно во фразе «где‑то я его видел... не помню!» — основная линия идёт между Обещалкиным и Карандашом (руководителем оркестра).

Это примерно как заявить «„Война и мир“ — это про приключения поручика Ржевского» (спойлер: вотниполраза)

Если нейронка пишет код лучше людей, зачем продакту в этот код смотреть? Всё равно он там уже ничего не поймет.

Здесь возникает другой вопрос - кто в таком случае будет отвечать за "инциденты на проде"?

зачем продакту в этот код смотреть

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

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

Это все равно, что смотреть в бинарные данные на выходе компилятора.

Ви так говорите, как будто никогда этого не делали.

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

Но потом это стало не нужно.

Конечно, стало не нужно — потому что после N раз убедился, что MOV #1000, R5 гарантированно превратится в 012705 001000, вне зависимости от погоды на Марсе и фазы Луны. После чего смысл перепроверять таки пропал, да.

Желаю такой же удачи с генераторами следующего токена.

P.S. Но я по старой памяти всё-таки перепроверяю.

Человек - ровно такой же недетерминированный ящик. Возможно куда больше недетерминированный. Я не о переводе машинных кодов, а в целом.

Человек - ровно такой же недетерминированный ящик.

Вот из ровно таких же и получаются так себе программисты. А из неровно — приличные.

Дак не “за” надо отвечать, а “на”. Или вы думаете что админ, уронивший банковскую БД на сутки будет выплачивать стоимость убытков из своей зарплаты? А если не будет, то что значит “отвечать за” в вашем понимании?

Отвечать означает работу над ошибками. Если случилась проблема, то надо найти root cause, понять почему произошло, и самое главное, сделать процесс который гарантирует что второй раз этого не произойдет. С генераторами так не бывает, там процессы стохастические, гарантировать нельзя вообще ничего.

С людьми тоже, но работают же как-то тимлиды, и команды выдают результат.

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

От этого люди не перестают быть стохастическими. И значит фраза “там процессы стохастические, гарантировать нельзя вообще ничего.” либо не верна для сеток, либо верна для людей, но не важна для результата. Просто результат проекта (в терминах PMBoK) внезапно тоже не гарантирован.

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

А вот сетка на одиннадцатый раз способна выдать отборный слоп. Несмотря ни на что. Так рандом лег.

Человек уже нормально сделавший десяток подобных задач сделает похожую на них

Или скажет "надоело мне такие задачи решать, пойду в покер играть лучше". Или попадёт под автобус. Или нажрётся водки и сделает хуже.

Басфактор давно придуман и методы его увеличения известны.

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

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

Человечество уже давно решило все эти проблемы.

Натренировать свою естественную нейронку.

Тонкость в том, что у LLM нет мозгов. Они не понимают что делают. Поэтому им нужны внешние мозги, которые должны им сформировать четкое ТЗ, чтобы получить результат, а не мусор.

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

Так что избавиться от программистов по сути пока невозможно. Для этого нужен другой уровень ИИ - AGI, искусственные мозги. Только AGI в обозримом будущем нет, и современный "ИИ" не может помочь с созданием AGI - можно попробовать, но он наступает на те же грабли, что и люди: пока никто точно не знает, что такое этот самый интеллект, почему он работает, на каких принципах основан, поэтому и повторить его невозможно. Чтобы получить больше информации об устройстве интеллекта, нужна большая исследовательская работа, которая будет вестись еще не одно десятилетие.

сформировать четкое ТЗ

Точняк!

Так что избавиться от программистов по сути пока невозможно. 

Ключевое слово - "пока".

Тонкость в том, что у LLM нет мозгов. Они не понимают что делают. 

Другая сторона: есть у них мозги или нет - код они пишут все лучше и лучше.

Другая сторона: есть у них мозги или нет — код они пишут все лучше и лучше.

Что‑то не заметно. Буквально позавчера для эксперимента попробовал — два раза поломал мне его поведение.

(Ожидаю возражений вида «ты просто не ставишь пять линий после вишни — вот и не выигрываешь!»)

Если у вас не получается - это не значит, что это не работает.

Если у вас не получается — это не значит, что это не работает.

Если Вы не можете заметить проблем в «вашем» коде — то это означает одну из трёх вещей: 1) Вы делаете что‑то до омерзения простое, что было сделано уже 100500 раз и в чём ошибиться уже чуть ли не физически невозможно; 2) Вы везунчик; и 3) Вы недостаточно квалифицированы, и потому, даже в упор глядя на проблему, не способны её увидеть.

(Например — не далее чем позавчера — гитхабовскй копилот поломал мне код, «отрефакторив» его. Мне это немедленно бросилось в глаза, потому как я «выполнил его в уме» — а джуну‑вайбкодеру это было бы ни разу не очевидно: ну буковки и буковки.)

пока никто точно не знает, что такое этот самый интеллект, почему он работает, на каких принципах основан

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

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

главное - функционал здесь и сейчас, а эти ваши “техдолги”, и эти ваши “идеальные коды” - это всё денег “вотпрямощаз” не приносит

да бизнес всегда так и думает. Просто есть еще один важный параметр: это стоимость данных. Вот когда программный продукт накопил важных для пользователя данных на месяцы человеко-часов, то уж лучше с “техдолгом”, “идеальным кодом”, чем потом внезапно искать ресурсы на ввод данных заново (и даже это не эквивалентно! чаще всего получается, что условно 80% удалось ввести, а 20% потеряно навсегда).

Такое бывает и безо всяких там ИИ. Вендор показывает красивые презентации, в которых описан весь функционал, который нужен заказчику. ЛПР на основании этих презентаций покупает решение, а потом оказывается, что под капотом там техдолг и О(n2) на реальных данных - формочка со списком открывается минуту, а вендор говорит что это нормально так и должно быть.

В смысле "может быть"? Это произойдет с вероятностью в 99%.

Исторически, коррекция ВСЕГДА происходит после пика кризиса. В нашем случае пик кризиса - это кадровый разрыв, когда сеньоры померли от старости не передав "неявное знание" младшему поколению, потому что это поколение оптимизировали через ИИ (пока сеньоры живы - пик еще не наступит, потому что будут те кто как-то, каким то чудом будут хоть капельку стабилизировать ситуацию). Так что да, уверен так и будет. И флагманом будет как раз именно крупный бизнес. Потому что на его уровне конкуренция гораздо жестче, а потому "трагедия общин" проявляется гораздо сильнее. Если кто-то попытается поиграть в "страховку", его долю рынка просто сожрут те кто выиграет больше профита на оптимизации...

Ну в айти сеньйоры от старости помрут ещё очень и очень не скоро...

лет 20-30 думаю эта фаза займет. Нужно чтобы вымерла или иначе отстранилась большая часть сеньоров, а не все, само собой

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

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

Но все равно человеческое разнообразие - великая страхующая сила.

В конце концов даже в США есть многомиллионная община амишей, которые компьютеры не используют вообще в принципе.

Рассмотреть можно временной разрез на примере управления конструкторской документацией. Раньше - бумажный архив, кальки, светокопии. Потом появились РЕМ(РЭМ)-машины для потокового копирования. Потом вместо чертёжных досок появился AutoCAD. Потом - наши решения. Потом - opensource. Когда всем надоело возиться с каталогами на компах и фал-серверах, а также бегать с распечатками по сотрудникам за подписями, появились PDM-системы. В принципе, я не против, если ИИшка подключится и проанализирует нашу базу данных компонентов. И если, к примеру, поставщик компонента сообщает о прекращении выпуска компонента и перехое на его новый аналог, ИИшенка, я думаю, сумеет проанализировать открытые источники на предмет других аналогов, а заодно и предоставить в табличной форме сравнительные характеристики. Это бы сильно сэкономило нам время поиска. А заодно, возможно, немного разгрузило бы логистов.

В любом случае, за КД или вайб-кодом должен стоять человек и его подпись под документом, предоставляемым заказчику/конечному пользователю и дающим гарантию от бизнеса, что эта штука будет работать заявленным способом и не иначе. Во всяком случае, пока не изменят юридические нормы на сбыт продукции.

Круто! Ваши взгляды очень оптимистичные. Очень бы хотелось такой интеграции. Работаю в той же сфере и поэтому понимаю о чем вы говорите, но текущая реальность такова, что даже документация на отечественные компоненты низкого качества, если вообще есть в свободном доступе. Вопрос согласования/подписи и бремя ответственности, действительно, очень острый, пока решений однозначных не вижу:(

Мы с отечественными компонентами почти не работаем, а у западных даташиты более-менее подробные. Хотя уникумы, безусловно, встречаются. Когда на сайте одна инфа, а в пдфе - немного другая.

Правда, сейчас пошла другая байда - сертифицированные Минпромторгом компоненты. И вот там - хрень полная. Производители работают с конечными покупателями - то есть теми, кто закупает технику для перепродажи в составе своих изделий (как мы) - только через дистрибьютеров, списки которых на сайте, конечно же, есть. Но их там довольно значительное количество. И поди угадай, кому писать надо. Интересно, справилась бы ИИшенка с такой задачей?

Насчёт взглядов... Многому - учили, многое - видел, многое - делал сам. И вбили по шляпку с вузовской скамьи железный принцип: проблема - поиск прототипов - анализ - синтез (если, конечно, ничего не путаю :). Также довольно много читал о проблематике и практических решениях в сфере ИИ. Поэтому взгляды основываются на фундаменте "чего там ИИ может" и "какие у неё должны быть ограничения в компетенциях". Сфера принятия окончательных решений юридически что на уровне государства, что на уровне бизнеса - всё равно за человеком. Пока. Жаль будет, если время решит иначе.

Согласование - это боль даже с PDMкой. Если надо быстро - всё равно на ручной или телефонной тяге. Причём некоторые особо ретивые начальники настаивают на личном присутствии. И сразу вспоминаешь, как ты бегал с бумажными чертежами по службам, и думаешь: "Зачем же эта автоматизация тогда?!.."

Так что что (резюмирую, а то куда-то занесло меня встречным ветром) человеческий фактор с нами ещё надолго. В обозримом будущем.

Простите, что так длинно. Во-первых, по каким-то причинам пост поздно вечером куда-то пропал. А вот увидел Ваш ответ - обрадовался. Во-вторых, из-за этого много думал с утра. В-третьих - пятница, вечер.)) Тянет немного поболтать.

Помимо крайностей "не пользоваться ИИ" и "вайбкодить 100% продукта" есть ещё промежуточный режим работы, когда часть кода пишешь сам, а часть с помощью ИИ (с опытом приходит понимание какие задачи ИИ можно доверить не глядя, какие только с чёткой инструкцией КАК надо решить, а какие быстрее и качественнее написать руками). Или вообще запускаешь ИИ в RO режиме с задачей найти ошибки (часть будет false-positive, но отфильтровать их будет гораздо быстрее, чем самому искать все ошибки).

И ничто не мешает этому самому опытному разработчику использовать ИИ именно таким образом. Одновременно и повышая свою производительность (за счёт делегирования задач типа "добавь ещё один CRUD в проект, вот для этой сущности, соблюдай стиль и архитектуру существующих CRUD") и снижая количество багов (за счёт дополнительного слоя review), и всё так же возвышаясь на джунами, для которых каждый промт лотерея - решится ли задача и начнётся многочасовой цикл микроправок (ведь джун не знает когда надо остановиться и сделать руками, да и не факт, что может сделать это).

Ну и что касается бизнеса - выгодны ИИ подписки, которые добавляют условную сотку баксов сверх ЗП разработчика (которая составляет тысячи баксов), но они, как правило, имеют ограничение на автоматизацию (привет, Anthropic). А полностью автономные ИИ агенты сжигают токены как не в себя и по цене легко выходят дороже джуна при сопоставимом выхлопе.

НЛО прилетело и опубликовало эту надпись здесь

какие задачи ИИ можно доверить не глядя

Никакие. Кодревью решения задачи в обязательном порядке)

А можно вопрос? Зачем нужна ИИшка для круда, если его можно тупо скопипастить?

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

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

"Я - матёрый программист на ассемблере, мне дали джуна с этим вашим новомодным Delphi".

"Он даже ни одной ассемблерной команды не знает."

"Дал ему задачу - потом смотрю ассемблерный код, это просто ужас, там даже hello world в несколько килобайт, там 90+% мёртвого кода, и это я даже про оптимизацию и более сложные задачи не говорю".

"Кто потом с этим будет разбираться, как это поддерживать?"

"А если версия компилятора сменится, то он сгенерит совсем другой код, который никто даже не прочитает и не сравнит. Это чистый рандом".

"Ещё и библиотеку подключил к проекту. Которую он сам не писал, которую он даже не читал. Просто в интернете нашёл. А вдруг там баги?"

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

Отлично. А как вы перешли к недетерминированному слопу потом?

Так а он ещё раньше начинается. Что произойдёт при запуске PHP кода

mail("someone@example.com","My subject","Hello, world");

Он упадёт с ошибкой? Вернёт true или false? Письмо дойдёт до получателя? Каждый раз одинаково отработает или есть вероятности?

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

Вы же знаете про сайдэффекты? Произойдет генерация сайдэффекта. Остальные вопросы не к коду.

mail("someone@example.com","My subject","Hello, world");

Он упадёт с ошибкой? Вернёт true или false? Письмо дойдёт до получателя? Каждый раз одинаково отработает или есть вероятности?

Он передаст задание внешней подсистеме. Дальше — не его зона ответственности.

Это примерно как ввести в адресной строке браузера www.google.com — и жаловаться на браузер, что страница не открывается, когда у Вас сетевой кабель выдернут.

Так и фраза "Курсор, пожалуйста, сделай чтобы работало" точно также передаёт задание внешней подсистеме. И если поставить температуру ЛЛМки в 0, то можно даже получить один и тот же детерминированный результат.

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

IT всю дорогу занималось формализацией бизнес процессов. В случае с mail у вас есть детерминизм со стороны спецификаций и стандартов. Т.е как минимум вы можете проверифицировать свое ререшение. А если что-то не работает, то это сбой.

AI фактически возвращает нас обратно в дикую природу, где в каждом моменте присутствует рандом.

вы заранее не знаете, как именно отработает mail().

Эммм.... Вы не знаете, как работает mail()? Вы точно программист?

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

А зачем бухгалтеру писать программы?

Бухгалтер может был бы и рад, чтобы новую версию 1С-Бухгалтерии переписали на чистом ассемблере, там где хитрыми фокусами с памятью и математикой можно добиться того, чтобы оно летало на любом железе и весило меньше, чем главная страница Хабра. Объективно лучше любого другого языка программирования. Но есть ньюанс, почему этого никто не делает.

Но есть ньюанс, почему этого никто не делает.

Потому что такого слона продать сложнее — времени на его выведение потребуется сильно больше, а клиенту он был нужен ещё позавчера.

Сферически идеальное переписывание на ассемблер крупного приложения вряд ли даст хотя бы х2 в производительности в сравнении с выходом современных компиляторов.

НЛО прилетело и опубликовало эту надпись здесь

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

Как раз таки компетентность нужна, чтобы понимать, что бизнесу не важна детерминированность компиляции. А важно им, например, чтобы письма с формы обратной связи уходили на ящик отдела продаж. Или чтобы весь сайт не падал с ошибкой.

И вот спросили они школьника с ИИ-шкой, сколько это займёт. Школьник ответил "по простому - 15 минут, а если не получится, то хз, ковырять надо. Но рано или поздно доковыряю."

А потом спросили синьора-помидора старой закалки... и получили тот же самый ответ.

Только школьник стоит 200 р в час, а синьор - 2000. А вот это для бизнеса уже измеримая разница.

Вот только у синьора‑помидора всё получится с первого раза (у него уже наработанная библиотека есть), а у школоло — ну хз с какого.

«Скупой платит дважды» ©

А тут уже вероятности. Сначала попробуют школьника, потому что 200р не жалко, а сервер потом всегда откатить можно.

И если раньше, с StackOverflow или с ChatGpt 3.5 школьник бы и забуксовал, то сейчас с Cursor всё чаще и чаще проблема просто берёт и решается. И достаточно одного удачного раза, чтобы бизнес округлил глаза от экономии и принял долгоиграющее решение о том, с кем он в дальнейшем будет работать.

НЛО прилетело и опубликовало эту надпись здесь

важно чтоб у исполнителя было открыто ИП или ООО в случае чего они его засудят, за похеренные сроки ещё и вычтут неустойку.

Т.е. незыблемость их бизнеса строится на том, что когда у них всё навернётся, им будет кого засудить?

Ну и будут иметь уверенность, что автор не сопьется и не сторчится.

ИИ точно не сторчится, а насчёт людей я не был бы так уверен.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Ага прям так и вижу как какой нибудь банк пришел к школьнику с иишечкой

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

НЛО прилетело и опубликовало эту надпись здесь

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

Алгоритмы работы нейросетей полностью детерминированы.

То, что Вы до сих пор не в курсе за температуру, не делает Вам чести. Сходите покурите матчасть.

вы и поведение современного компилятора не можете точно предсказать

% cc my_code.c -o 1.out
% cc my_code.c -o 2.out
% cmp 1.out 2.out
%

(разводя руками:) Ч.т.д.

Ещё один, который думает, что рандом в рантайме делает алгоритм недетерминированным...почитайте, что ли, чем детерминированность алгоритма отличается от детеминированности данных, хотя бы.

% cc my_code.c -o 1.out
% cc my_code.c -o 2.out
% cmp 1.out 2.out
%

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

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Хе, я тоже так умею!

> cc test.c -o 01.out
> cc test.c -o 02.out
> cmp 01.out 02.out
01.out 02.out differ: char 1181, line 2
А разгадка одна:
#include <stdio.h>
void main() { printf("%s\n", __TIME__); }
НЛО прилетело и опубликовало эту надпись здесь

А где Вы тут «недетерминированность» увидели? Я попросил текущее время — мне детерминированно дали текущее время. А не погоду на Марсе или курс монгольского тугрика.

НЛО прилетело и опубликовало эту надпись здесь

К сожалению, для современных — да, является.

(Хотите доказать противное — укажите конкретное место, куда, по Вашему мнению, вписывается seed. И нет, «установи SEED равным 1234» не работает.)

НЛО прилетело и опубликовало эту надпись здесь

А мне вдруг стало интересно, а как вообще крупные бизнесы (гуяндбук и т.д.) приходят к тому, чтобы сокращать сотрудников на фоне внедрения ИИ? Ну, типа, вот есть Вася-программист, ему начальство даёт задачу, он её выполняет. Появился ИИ (допустим, хорошо работающий в режиме кодинга, не лажающий и т.д.) - Вася выпросил у начальства подписку, мотивировав это ростом своей производительности труда, а затем и впрямь её выдал. Начальству в принципе всё равно, чем там Вася программирует, но оно видит, что он молодец, всё делает быстро и хорошо. По-моему, это повод выдать премию, повесить на доску почёта и рекомендовать к повышению. В каком месте и каким образом тут появляется мысль о том, что его надо сократить?

Ему об этом его друзья рассказывают. "Как? Ты ещё своих Васей не сократил?! Ну, ты лох... Мы уже давно ителектом пользуемся. Который искусвеный"

 В каком месте и каким образом тут появляется мысль о том, что его надо сократить?

Это ж обычная бюрократия. Вася это затраты, в виде ЗП, аренды офиса, смузи и абонемента в бассейн, т.е. продукт становится дороже из за затрат на Васю.

"ЫЫ" это по статьям затрат - условная копия МS Office или банальная кофеварка. Де-юре затраты на персонал снижены, а что там с токенами и их ценой в месяца по затратам больше чем у Васи ЗП уже не важно. Другая статья затрат.

Манагер что? Манагер = эффективный. Ачивка и бонус.

Манагер = эффективный

Происходит от слова manger = кормушка. :-)

<зануда моде он>О, этимологию от Задорнова подвезли! Вообще‑то от глагола to manage «направлять, управлять».

Когда Вася один - то так и будет. А когда небольшой отдел Васей, человек 5-7, начал (внезапно) делать работу 15-20, это ж думаю достаточно просто объективно увидеть по закрытым задачам, то начальство придет, посмотрит, ну ок, нам столько не надо, давайте 2-3 Васей сократим, а остальными будем закрывать работу 7-10. Начальство в плюсе, может от вышестоящего расписать бонусы за сэкономленный ФОТ. Васи пошли искать работу.

Это тоже самое что 2-3 Васи принесил 2-3 млна долларов и начальство скажет “ок, нам столько не надо, давайте выбросим половину”.

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

Почему не начать осваивать другие области и не масштабировать бизнес при таком расскладе?

Случаи всякие бывают. Что мешало расти до, вполне вероятно помешает расти и после

потому что разработчики тут низшее звено всей бизнес-цепочки (ну как рабочие на заводах)

Чтобы освоить другие области, нужно чтобы AI-фирст был во всех сферах

Ну вот "освоить другие области" - надо провести маркетинговые исследования (причем по достаточно большому спектру

Финансисты должны посчитать рентабельность

Банк должен выдать кредит под это новое направление.

Проще говоря, представьте, у Вас завод, делает. ну пусть танки. Вы внедрили какую-то автоматизацию и теперь рабочих надо меньше на 50%.. Ну в теории да, можете начать производить БТР-ы (ну одна фигня ж, что там башня, что тут башня), но по факту ведь нифига. Чтоб начать производить БТР-ы, надо пройти очень много этапов. А рабочих девать некуда уже сейчас

Чтоб начать производить БТР-ы, надо пройти очень много этапов.

А внедрить "какую-то автоматизацию" на всем заводе это прям в один этап - раз и готово.

Строятся "новые корпуса", часть опытного персонала остается на "старом" месте, часть переводятся на "новое"...

А внедрить "какую-то автоматизацию" на всем заводе это прям в один этап - раз и готово.

да вообще ни разу, чтоб автоматизировать, надо

  1. Разобраться в процессах

  2. Оптимизировать их

  3. Понять, даннные то вообще корректные

  4. Исправить данные

Все это время разрабы будут сидеть и курить бамбук, пока там "верхи" будут договариваться и обсуждать

не знаю как у Вас, а у нас в аналитике, сам отчет построить быстрее, чем понять, согласовать ТЗ с заказчиком

Чтобы осваивать другие области нужно нечто большее, чем некоторое количество свободных разработчиков.

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

А когда небольшой отдел Васей, человек 5-7, начал (внезапно) делать работу 15-20, это ж думаю достаточно просто объективно увидеть по закрытым задачам, то начальство придет, посмотрит, ну ок, нам столько не надо, давайте 2-3 Васей сократим, а остальными будем закрывать работу 7-10.

Какое у вас мудрое начальство) Придёт, посмотрит, посчитает. В реальном мире начальство сначала сокращает половину Вась, а оставшимся ставит задачу - каждому работать за троих, после чего радостно рапортует наверх о собственной эффективности.

Тут тоже случаи всякие бывают. Я так то как бы и есть начальник :) Увольнять никого не увольняли, но сеточки, как бы так проще сказать, настоятельно рекомендовали к использованию.

начальство придет, посмотрит, ну ок, нам столько не надо

Вот именно этот момент непонятен. Какое начальство?

Начальник отдела? Так он только рад, что его Васи начали работать вдвое продуктивнее. Он им не из своих платит, и в свой карман ЗП сокращённого Васи перенаправить не может, поэтому у него мотивации рекомендовать сокращения нет (плюс больше людей в подчинении - жирнее строчка в резюме).

Бухгалтерия, отдел кадров? Им это вообще по барабану: для них люди - учётные единицы, сколько дали, столько и обрабатывают, они тут не власть.

Средний и подвысший менеджмент, директора подразделений, осуществляющие найм, "ЛПР"? Они вероятнее всего, но с какими аргументами, какой им резон экономить на ФОТ, если этот самый ФОТ безо всякой экономии стал давать плюсы и иксы? К тому же вряд ли эти люди лично ходят по отделам и заглядывают в мониторы, им низшие менеджеры и отдел продаж приносят отчёты, а там всё отлично, зачем что-то менять? Кто им советует?

Топ-менеджмент? Эти люди оперируют "не солдатами, а дивизиями", и в принципе могут захотеть устроить массовое сокращение, но кто и как его будет спускать вниз, выбирать сокращаемых? Слишком высоко сидят.

Акционеры? Они (если вообще есть) в оперативное управление бизнеса не вмешиваются, им отчёты подавай, а не технические подробности работы доимой ими коровки.

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

небольшой отдел Васей, человек 5-7, начал (внезапно) делать работу 15-20, это ж думаю достаточно просто объективно увидеть по закрытым задачам

Во-первых, что это за начальство которое пойдёт смотреть, кто сколько тасков закрыл, если только ему начотдела не пожаловался?

Во-вторых, вероятнее всего, такой прирост будет нивелироваться на всех уровнях. Вася пораньше уйдёт с работы, его тимлид поспит подольше перед сдачей отчёта, начотдела тоже расслабится перед отчётностью наверх - в итоге, пока эффект дойдёт до ЛПР, он будет уже не таким очевидным, как в начале. Просто некоторый небольшой рост, как раз чтобы премии выписать. Разве они там интересуются всерьёз, кто и как именно работает, какую нейронку себе скачал и сколько она может сделать за Васю?

Сокращения - не результат внедрения ИИ. Сокращают из-за изменения финансовой ситуации. А непосредственно из-за ИИ минимум сокращений.

Но проще сказать “сократили из-за ИИ”, чем “сократили из-за проблем с деньгами”. И ты не старпер с финансовыми проблемами, модный-молодежный ИИ-внедренец. Даже если от ИИ там только табличка на кабинете “отдел ИИ”.

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

Раньше многие команды держали “на малых оборотах” просто чтобы была команда на которую можно набрать проектов или которую можно бросить “на пожар”. Теперь в этом просто нет небходимости. Всегда можно расчитывать на ИИ - в крайнем случае прикроет на время разработки MVP, а там уже и успеем новую команду собрать: вон их сколько на улице выброшенных шляется же! Такая примерно логика по крайней мере у тех всё ещё “эффективных” мЭнЭджеров, с кеми я разговаривал.

простите - не соглашусь... сколько я видел команд и всегда кадры - на нижней границе допустимого по кол-ву (кроме бюджетных областей). и всегда эти кадры в режиме кранча потому что задач - на коллектив в два раза больший... Так что "команды на всякий случай" - это что-то из разряда сильно частных случаев

Возможно речь об оутсорсерах, у тех действительно есть команды на полшишечки

Вместо ИИ могло быть что угодно. От “собрались и батрачим вместе 24/7 в коттедже” до “делаем полностью распределенные команды”. А уж если какой новый фреймворк управления проектам выйдет…

В общем я к тому, что “эффективные мЭнЭджеры" всегда искали “серебренную пулю”. Иногда находили (для себя и в очень конкретной ситуации), что сильно поддерживает веру в успех у прочих. В 99% случаях эффект был далеко не столь впечатляющий. Но кто об этом будет рассказывать? И кто вообще этих неудачников будет слушать?

А ИИ - это просто очередная серебрянная пуля. Причем достаточно успешная, стоит это признать - действительно дает результат и очень-очень быстро (про качество умолчим). А если результатов нет - “промт не тот”, “модель не та”, “нечеткая задача” и прочие 100500 отговорок всегда к вашим услугам.

команды держали “на малых оборотах” просто чтобы была команда на которую можно набрать проектов или которую можно бросить “на пожар”. Теперь в этом просто нет небходимости

Наоборот. LLM резко ухудшает прогнозируемость сроков. А среднем быстрее, но хвост распределения сроков уходит вправо настолько что "4 дня в чилле, 1 день в мыле". В итоге всё будет запорото. Рано или поздно, но с гарантией

Когда сингулярность пришла за джунами, я промолчал Так, нет, я не это хотел сказать.

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

Если ИИ научится работать на АТФ и триглицеридах, то всем хана

Судя по тому как часто выходят релизы нейронок + насколько улучшается генерация кода со временем, то сеточки уже очень скоро будут отдавать максимально качественный результат плавно перемещаясь из жунов в мидлы и дальше и выше. Сам вайб-кожу (в хорошем смысле) уже третий год, прям вижу как улучшается на глазах все. И это прекрасно. Общий стаж в программировании почти 25 лет. Миллионы написанных строк до сеточек. Сейчас уже пилим вместе.

Тесты тестируют то, что сами же сочинили, в отрыве от реальности.

К слову, что бы такого не было, можно посоветовать делать тесты кросс-сеточно: одной код, второй тесты. Либо хотя бы в раздельных чатах одной сеточки, что бы тестировочная сеточка или ветка код вообще не видела. Только ТЗ обоим.

А я вот наоборот разочаровался в их прогрессе. Когда я игрался с GPT 3.5, я думал что GPT 5 будет невероятно крутым. Но оказалось все совсем не так. Может субъективные ощущения? Но потом я узнал об эффекте убывающей отдачи в контексте инвестиций в ИИ:

  • GPT-3.5 ~$5 млн

  • GPT-4 ~$100 млн

  • GPT-5 ~$500 млн - $1+ млрд

А прирост к качеству непропорационален затратам, причем до крайне абсрудных значений. Инвестиции x100 прирост 10% (по оценкам маркетингового отдела)

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

ИИшки на плато вышли. Дальше нужен качественный прорыв. Пока его не видать особо... посмотрим как оно дальше пойдет

Качественый прорыв - это постоянное дообучение под конкретную задачу и сохранение долговременного опыта (в весах, в метаконтексте - без разницы). Индивидуализация сеток. Но это очень плохо централизуется и потому очень плохо монетезируется ИИ-корпорациями (они разве что машинные мощности могут продавать, а физика = низкая маржа).

Так что да, будем жить пока так.

это не качественный - это количественный. Качественный - это выход на AGI или самообучаемые модели, например. Или аппаратный скачок позволяющий срезать энергозатраты х100 хотя бы...

Но все это пока в глубокой теории.

Есть Cerebras, в десятки раз быстее всего. А ещё аппаратный Taalas, где модель зашита прямо в микросхему (ASIC), и при устаревании модели надо будет выкидывать железку.

Качественый прорыв - это  кванты с фотонами. Но даже в этом случае вопрос энергоснабжения останется.

Также с увеличением производительсности 100% вылезут другие проблемы, о которых пока неизвестно.

В сухом остатке: это все очень мутно и непредсказуемо. Это как рассчитывать, что через месяц полетим на Марс и там можно будет нарезки земли под коттеджи продавать.

OpenAI сами поверили в свою телегу про масштабирование, а инвесторы им дали денег проверить гипотезу. Китайцы в условиях ограниченных ресурсов выдают гораздо более эффективные решения.

дело в том, что надо не играться, а обучиться этому, гпт 5.5 уже пишет на уровне мидл+ как минимум. Первый работоспособный проект хоть и с говнокодом, без заглядывания в код получился спустя 4 месяца ежедневной 15-часовой практики. ВОт и делайте выводы. Сейчас я уже официально работаю и собираю проекты не заглядывая в код вообще. Обложил нейронку кучей проверок как самопроверок, так и классические, линтеры, lsp, ai-код ревью, прикрутил нужные инструменты и нейронка работает ровно в своём коридоре и выполняет то что нужно. Никаких проблем в целом. Так что я один из тех кто уже технологию обуздал и применяет в деле. 99% окружающих айтишников разрабов пока что еще далеки даже от понимания, насколько возможности перед нами открылись большие, пока они только осознают и пойдут учиться тому ремеслу (да, с нейронкйо придется учиться, это не магия, все равно оператор мы сами, нейронка лишь выполняет то, что мы ей скормили. если проект кривой - проблема в операторе, а не в нейронке, текущие методы разработки покрывают все нужды). МОжет я удивлю, но даже в крупных компаниях товарищи разрабатывают уже не заглядывая в код, например в Яндексе. КОнечно же это опытные ребята с бекграундом, кто понимает, что заказывать у модельки и как это проверить на выходе.

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

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

Разница колоссальная на моих задачах. Если раньше приходилось сеточку мучать часами что бы хотя бы код собирался, то сейчас минимальные правки фактически. Дальше - на тесты и в прод. Баги, как ни обидно, уже чаще мои в обвязке кода, чем сеточные. Раньше было и долго наоборот.

Разница колоссальная на моих задачах.

Вот перекладыватель джейсонов и признался.

Джейсоны, увы. Достаточно лютая математика, среди прочего. Область: медицина.

Я пытался писать матан с нейронками, результат неутешительный. Область: жд/автоматика. Как-то неубедительно выглядит без указания конкретных задач и результатов, не находите? Матан он разный бывает, или я должен пасть ниц от одного его упоминания?

Не вопрос. Для примера, процедура регистрации (гуглится что это). почти 100% нейрокод, работает отлично:

procedure RegisterSeriesToFirstWordHU_RigidPyr_InPlace(const Frames: TArray<PDAWord>; // Frames[i] length = W*H
 W, H: integer; RescaleSlope, RescaleIntercept: double; FillHU: integer = -1024; MaxShiftPx: integer = 0;
 UseSubpixel: boolean = True; UseEdges: boolean = True; RoiX: integer = 0; RoiY: integer = 0;
 RoiW: integer = 0; RoiH: integer = 0; MaxAngleDeg: double = 5.0; AngleStepDeg: double = 1.0);

procedure RegisterSeriesToFirstWordFill_RigidPyr_InPlace(const Frames: TArray<PDAWord>;
 W, H: integer; RescaleSlope, RescaleIntercept: double; FillValueWord: word; MaxShiftPx: integer = 0;
 UseSubpixel: boolean = True; UseEdges: boolean = True; RoiX: integer = 0; RoiY: integer = 0;
 RoiW: integer = 0; RoiH: integer = 0; MaxAngleDeg: double = 5.0; AngleStepDeg: double = 1.0);

implementation

uses
 ProgressFormUnit,
 System.Threading,
 System.Diagnostics;

const
 EPS = 1e-12;

type
 TComplex = record
  Re, Im: double;
 end;

 TRigid = record
  AngleRad: double;
  Dx, Dy: double; // apply to Mov after rotation
  Peak: double;
 end;

function CConj(const A: TComplex): TComplex; inline;
begin
 Result.Re := A.Re;
 Result.Im := -A.Im;
end;

function CMul(const A, B: TComplex): TComplex; inline;
begin
 Result.Re := A.Re * B.Re - A.Im * B.Im;
 Result.Im := A.Re * B.Im + A.Im * B.Re;
end;

procedure CScale(var A: TComplex; S: double); inline;
begin
 A.Re := A.Re * S;
 A.Im := A.Im * S;
end;

function NextPow2(N: integer): integer;
begin
 Result := 1;
 while Result < N do Result := Result shl 1;
end;

procedure FFT1D(var Data: TArray<TComplex>; Invert: boolean);
var
 N, I, J, Bit, Len, HalfLen, K: integer;
 Ang, WRe, WIm, TmpRe, WlenRe, WlenIm: double;
 URe, UIm, VRe, VIm: double;
 V: TComplex;
begin
 N := Length(Data);
 if N <= 1 then Exit;

 // bit reversal
 J := 0;
 for I := 1 to N - 1 do
 begin
  Bit := N shr 1;
  while (J and Bit) <> 0 do
  begin
   J := J xor Bit;
   Bit := Bit shr 1;
  end;
  J := J xor Bit;

  if I < J then
  begin
   V := Data[I];
   Data[I] := Data[J];
   Data[J] := V;
  end;
 end;

 Len := 2;
 while Len <= N do
 begin
  HalfLen := Len shr 1;
  Ang := 2 * Pi / Len;
  if Invert then Ang := -Ang;

  SinCos(Ang, WlenIm, WlenRe);

  {WlenRe := Cos(Ang);
  WlenIm := Sin(Ang);}

  I := 0;
  while I < N do
  begin
   WRe := 1.0;
   WIm := 0.0;

   for K := 0 to HalfLen - 1 do
   begin
    URe := Data[I + K].Re;
    UIm := Data[I + K].Im;

    V := Data[I + K + HalfLen];

    // V * W
    VRe := V.Re * WRe - V.Im * WIm;
    VIm := V.Re * WIm + V.Im * WRe;

    Data[I + K].Re := URe + VRe;
    Data[I + K].Im := UIm + VIm;

    Data[I + K + HalfLen].Re := URe - VRe;
    Data[I + K + HalfLen].Im := UIm - VIm;

    // W *= Wlen
    TmpRe := WRe * WlenRe - WIm * WlenIm;
    WIm := WRe * WlenIm + WIm * WlenRe;
    WRe := TmpRe;
   end;

   Inc(I, Len);
  end;

  Len := Len shl 1;
 end;

 if Invert then
  for I := 0 to N - 1 do
   CScale(Data[I], 1.0 / N);
end;

procedure FFT2D(const Data: TArray<TComplex>; W, H: integer; Invert: boolean);
var
 X, Y: integer;
 Row:  TArray<TComplex>;
 Col:  TArray<TComplex>;
begin
 // rows
 SetLength(Row, W);
 for Y := 0 to H - 1 do
 begin
  for X := 0 to W - 1 do
   Row[X] := Data[Y * W + X];
  FFT1D(Row, Invert);
  for X := 0 to W - 1 do
   Data[Y * W + X] := Row[X];
 end;

 // cols
 SetLength(Col, H);
 for X := 0 to W - 1 do
 begin
  for Y := 0 to H - 1 do
   Col[Y] := Data[Y * W + X];
  FFT1D(Col, Invert);
  for Y := 0 to H - 1 do
   Data[Y * W + X] := Col[Y];
 end;
end;

procedure BuildHann1D(N: integer; out Wnd: TArray<double>);
var
 I: integer;
begin
 SetLength(Wnd, N);
 if N <= 1 then
 begin
  for I := 0 to N - 1 do Wnd[I] := 1.0;
  Exit;
 end;

 for I := 0 to N - 1 do
  Wnd[I] := 0.5 * (1.0 - Cos(2 * Pi * I / (N - 1)));
end;

function RawToHU(Raw: word; Slope, Intercept: double): double; inline;
begin
 Result := Raw * Slope + Intercept;
end;

function HUToRawWord(HU: double; Slope, Intercept: double): word;
var
 Raw: double;
 V: integer;
begin
 if Abs(Slope) < 1e-30 then
  Raw := HU
 else
  Raw := (HU - Intercept) / Slope;

 V := Round(Raw);
 if V < 0 then V := 0;
 if V > 65535 then V := 65535;
 Result := word(V);
end;

procedure Downsample2xWordAvg(const Src: TArray<word>; W, H: integer; out Dst: TArray<word>; out W2, H2: integer);
var
 X2, Y2: integer;
 X, Y: integer;
 Sum, Cnt: integer;
begin
 if Length(Src) <> W * H then
  raise Exception.Create('Downsample2xWordAvg: size mismatch');

 W2 := (W + 1) div 2;
 H2 := (H + 1) div 2;
 SetLength(Dst, W2 * H2);

 for Y2 := 0 to H2 - 1 do
  for X2 := 0 to W2 - 1 do
  begin
   Sum := 0;
   Cnt := 0;
   for Y := 2 * Y2 to 2 * Y2 + 1 do
    for X := 2 * X2 to 2 * X2 + 1 do
     if (X >= 0) and (X < W) and (Y >= 0) and (Y < H) then
     begin
      Inc(Sum, Src[Y * W + X]);
      Inc(Cnt);
     end;

   if Cnt = 0 then
    Dst[Y2 * W2 + X2] := 0
   else
    Dst[Y2 * W2 + X2] := word(Sum div Cnt);
  end;
end;

procedure ScaleROI2x(W2, H2: integer; RoiX, RoiY, RoiW, RoiH: integer; out RoiX2, RoiY2, RoiW2, RoiH2: integer);
begin
 if (RoiW > 0) and (RoiH > 0) then
 begin
  RoiX2 := EnsureRange(RoiX div 2, 0, W2 - 1);
  RoiY2 := EnsureRange(RoiY div 2, 0, H2 - 1);
  RoiW2 := EnsureRange(Max(1, RoiW div 2), 1, W2 - RoiX2);
  RoiH2 := EnsureRange(Max(1, RoiH div 2), 1, H2 - RoiY2);
 end
 else
 begin
  RoiX2 := 0;
  RoiY2 := 0;
  RoiW2 := 0;
  RoiH2 := 0;
 end;
end;

function OtsuThresholdHU(const Img: TArray<word>; W, H: integer; Slope, Intercept: double;
 RX, RY, RW, RH: integer): double;
const
 BINS = 4096;
var
 Hist: array[0..BINS - 1] of integer;
 X, Y: integer;
 Total: int64;
 SumAll, SumB: double;
 Wb, Wf: int64;
 Mb, Mf, VarBetween, MaxVar: double;
 ThrBin, B: integer;
 HU: double;

 function ClampBin(Value: integer): integer; inline;
 begin
  if Value < 0 then Exit(0);
  if Value > BINS - 1 then Exit(BINS - 1);
  Result := Value;
 end;

begin
 FillChar(Hist, SizeOf(Hist), 0);
 Total := 0;

 // Маппинг HU -> бин: диапазон [-1500..2500] HU ~ 4000 значений
 for Y := RY to RY + RH - 1 do
  for X := RX to RX + RW - 1 do
  begin
   HU := RawToHU(Img[Y * W + X], Slope, Intercept);
   B  := ClampBin(Round(HU + 1500));
   Inc(Hist[B]);
   Inc(Total);
  end;

 if Total = 0 then Exit(0);

 SumAll := 0.0;
 for B := 0 to BINS - 1 do
  SumAll := SumAll + B * Hist[B];

 SumB := 0.0;
 Wb := 0;
 MaxVar := -1.0;
 ThrBin := 0;

 for B := 0 to BINS - 1 do
 begin
  Wb := Wb + Hist[B];
  if Wb = 0 then Continue;

  Wf := Total - Wb;
  if Wf = 0 then Break;

  SumB := SumB + B * Hist[B];

  Mb := SumB / Wb;
  Mf := (SumAll - SumB) / Wf;

  VarBetween := Wb * Wf * Sqr(Mb - Mf);
  if VarBetween > MaxVar then
  begin
   MaxVar := VarBetween;
   ThrBin := B;
  end;
 end;

 Result := ThrBin - 1500; // HU
end;

procedure PreprocessToFeature(const Img: PDAWord; W, H: integer; Slope, Intercept: double;
 UseEdges: boolean; RoiX, RoiY, RoiW, RoiH: integer; out Feat: TArray<double>);
var
 HannX, HannY: TArray<double>;
 RX, RY, RW, RH: integer;
 ThrHU: double;
 X, Y: integer;
 I: integer;

 function HU(Xi, Yi: integer): double;
 begin
  Result := RawToHU(Img^[Yi * W + Xi], Slope, Intercept);
 end;

 function IsHead(Xi, Yi: integer; ThrHU: double): boolean; inline;
 begin
  Result := HU(Xi, Yi) > ThrHU;
 end;

var
 Gx, Gy, V: double;
begin
 SetLength(Feat, W * H);
 for I := 0 to High(Feat) do Feat[I] := 0.0;

 // ROI: если не задана, берём весь кадр
 if (RoiW > 0) and (RoiH > 0) then
 begin
  RX := EnsureRange(RoiX, 0, W - 1);
  RY := EnsureRange(RoiY, 0, H - 1);
  RW := EnsureRange(RoiW, 1, W - RX);
  RH := EnsureRange(RoiH, 1, H - RY);
 end
 else
 begin
  RX := 0;
  RY := 0;
  RW := W;
  RH := H;
 end;

 ThrHU := OtsuThresholdHU(Img^, W, H, Slope, Intercept, RX, RY, RW, RH);

 BuildHann1D(W, HannX);
 BuildHann1D(H, HannY);

 // Заполняем только внутри ROI, остальное нули
 for Y := Max(1, RY) to Min(H - 2, RY + RH - 2) do
  for X := Max(1, RX) to Min(W - 2, RX + RW - 2) do
  begin
   if not IsHead(X, Y, ThrHU) then
    Continue;

   if UseEdges then
   begin
    // Sobel по HU
    Gx :=
     (HU(X + 1, Y - 1) + 2 * HU(X + 1, Y) + HU(X + 1, Y + 1)) - (HU(X - 1, Y - 1) + 2 *
     HU(X - 1, Y) + HU(X - 1, Y + 1));

    Gy :=
     (HU(X - 1, Y + 1) + 2 * HU(X, Y + 1) + HU(X + 1, Y + 1)) - (HU(X - 1, Y - 1) + 2 *
     HU(X, Y - 1) + HU(X + 1, Y - 1));

    V := (Abs(Gx) + Abs(Gy)) * HannX[X] * HannY[Y];
   end
   else
    V := HU(X, Y) * HannX[X] * HannY[Y];

   Feat[Y * W + X] := V;
  end;
end;

procedure RotateFeatureBilinear(const Src: TArray<double>; W, H: integer; AngleRad: double; out Dst: TArray<double>);
var
 X, Y: integer;
 Cx, Cy: double;
 CosA, SinA: double;
 Xc, Yc, Xs, Ys: double;
 X0, Y0: integer;
 Fx, Fy: double;
 V00, V10, V01, V11: double;

 function GetF(Xi, Yi: integer): double;
 begin
  Result := Src[Yi * W + Xi];
 end;

begin
 SetLength(Dst, W * H);
 for X := 0 to High(Dst) do Dst[X] := 0.0;

 Cx := (W - 1) * 0.5;
 Cy := (H - 1) * 0.5;

 SinCos(AngleRad, SinA, CosA);

 {CosA := Cos(AngleRad);
 SinA := Sin(AngleRad);}

 for Y := 0 to H - 1 do
  for X := 0 to W - 1 do
  begin
   Xc := X - Cx;
   Yc := Y - Cy;

   Xs := CosA * Xc + SinA * Yc + Cx;
   Ys := -SinA * Xc + CosA * Yc + Cy;

   X0 := Floor(Xs);
   Y0 := Floor(Ys);

   if (X0 < 0) or (Y0 < 0) or (X0 >= W - 1) or (Y0 >= H - 1) then
    Continue;

   Fx := Xs - X0;
   Fy := Ys - Y0;

   V00 := GetF(X0, Y0);
   V10 := GetF(X0 + 1, Y0);
   V01 := GetF(X0, Y0 + 1);
   V11 := GetF(X0 + 1, Y0 + 1);

   Dst[Y * W + X] :=
    (1 - Fx) * (1 - Fy) * V00 + (Fx) * (1 - Fy) * V10 + (1 - Fx) * (Fy) * V01 + (Fx) * (Fy) * V11;
  end;
end;

procedure PadFeatureToComplex(const Feat: TArray<double>; W, H, PW, PH: integer; out C: TArray<TComplex>);
var
 Idx, X, Y: integer;
begin
 SetLength(C, PW * PH);
 for Idx := 0 to High(C) do
 begin
  C[Idx].Re := 0.0;
  C[Idx].Im := 0.0;
 end;

 for Y := 0 to H - 1 do
  for X := 0 to W - 1 do
  begin
   Idx := Y * PW + X;
   C[Idx].Re := Feat[Y * W + X];
  end;
end;

function ParabolicSubpixel(Fm1, F0, Fp1: double): double; inline;
var
 Den: double;
begin
 Den := (Fm1 - 2 * F0 + Fp1);
 if Abs(Den) < 1e-18 then Exit(0.0);
 Result := 0.5 * (Fm1 - Fp1) / Den;
end;

procedure PhaseCorrShiftPeak(const FRefFFT, FMovFFT: TArray<TComplex>; PW, PH: integer;
 MaxShiftPx: integer; UseSubpixel: boolean; out Dx, Dy, Peak: double);
var
 CPS, Corr: TArray<TComplex>;
 I, X, Y: integer;
 Mag, V0: double;
 MaxVal:  double;
 PeakX, PeakY: integer;
 SubX, SubY: double;
 Vxm1, Vxp1, Vym1, Vyp1: double;

 function Idx2(Xi, Yi, PW: integer): integer; inline;
 begin
  Result := Yi * PW + Xi;
 end;

 function WrapX(Xi, PW: integer): integer; inline;
 begin
  if Xi < 0 then Result := Xi + PW
  else
  if Xi >= PW then Result := Xi - PW
  else
   Result := Xi;
 end;

 function WrapY(Yi, PH: integer): integer; inline;
 begin
  if Yi < 0 then Result := Yi + PH
  else
  if Yi >= PH then Result := Yi - PH
  else
   Result := Yi;
 end;

 function WithinMaxShift(Xi, Yi, MaxShiftPx, PW, PH: integer): boolean; inline;
 var
  SX, SY: integer;
 begin
  if MaxShiftPx <= 0 then Exit(True);
  SX := Xi;
  SY := Yi;
  if SX > PW div 2 then SX := SX - PW;
  if SY > PH div 2 then SY := SY - PH;
  Result := (Abs(SX) <= MaxShiftPx) and (Abs(SY) <= MaxShiftPx);
 end;

begin
 SetLength(CPS, PW * PH);
 for I := 0 to PW * PH - 1 do
 begin
  CPS[I] := CMul(FRefFFT[I], CConj(FMovFFT[I]));
  Mag := Hypot(CPS[I].Re, CPS[I].Im);
  if Mag < EPS then
  begin
   CPS[I].Re := 0.0;
   CPS[I].Im := 0.0;
  end
  else
  begin
   CPS[I].Re := CPS[I].Re / Mag;
   CPS[I].Im := CPS[I].Im / Mag;
  end;
 end;

 Corr := CPS;
 FFT2D(Corr, PW, PH, True);

 // find peak (optionally restricted)
 MaxVal := -1e300;
 PeakX  := 0;
 PeakY  := 0;

 for Y := 0 to PH - 1 do
  for X := 0 to PW - 1 do
  begin
   if not WithinMaxShift(X, Y, MaxShiftPx, PW, PH) then Continue;
   V0 := Corr[Idx2(X, Y, PW)].Re;
   if V0 > MaxVal then
   begin
    MaxVal := V0;
    PeakX  := X;
    PeakY  := Y;
   end;
  end;

 // subpixel
 SubX := 0.0;
 SubY := 0.0;
 if UseSubpixel then
 begin
  V0 := Corr[Idx2(PeakX, PeakY, PW)].Re;

  Vxm1 := Corr[Idx2(WrapX(PeakX - 1, PW), PeakY, PW)].Re;
  Vxp1 := Corr[Idx2(WrapX(PeakX + 1, PW), PeakY, PW)].Re;
  SubX := ParabolicSubpixel(Vxm1, V0, Vxp1);

  Vym1 := Corr[Idx2(PeakX, WrapY(PeakY - 1, PH), PW)].Re;
  Vyp1 := Corr[Idx2(PeakX, WrapY(PeakY + 1, PH), PW)].Re;
  SubY := ParabolicSubpixel(Vym1, V0, Vyp1);
 end;

 // unwrap to signed shift
 if PeakX > PW div 2 then PeakX := PeakX - PW;
 if PeakY > PH div 2 then PeakY := PeakY - PH;

 Dx := PeakX + SubX;
 Dy := PeakY + SubY;
 Peak := MaxVal;
end;

procedure ApplyRigidBilinearWord(const Src: PDAWord; W, H: integer; AngleRad: double;
 Dx, Dy: double; FillValue: word; out Dst: TArray<word>);
var
 X, Y: integer;
 Cx, Cy: double;
 CosA, SinA: double;
 X1, Y1, Xc, Yc, Xs, Ys: double;
 X0, Y0: integer;
 Fx, Fy: double;
 I00, I10, I01, I11: integer;
 V: double;

 function GetPix(Xi, Yi: integer): integer;
 begin
  Result := Src^[Yi * W + Xi];
 end;

 function ClampWord(Value: integer): word; inline;
 begin
  if Value < 0 then Exit(0);
  if Value > 65535 then Exit(65535);
  Result := word(Value);
 end;

begin
 SetLength(Dst, W * H);

 Cx := (W - 1) * 0.5;
 Cy := (H - 1) * 0.5;

 SinCos(AngleRad, SinA, CosA);

 {CosA := Cos(AngleRad);
 SinA := Sin(AngleRad);}

 for Y := 0 to H - 1 do
  for X := 0 to W - 1 do
  begin
   X1 := X - Dx;
   Y1 := Y - Dy;

   Xc := X1 - Cx;
   Yc := Y1 - Cy;

   Xs := CosA * Xc + SinA * Yc + Cx;
   Ys := -SinA * Xc + CosA * Yc + Cy;

   X0 := Floor(Xs);
   Y0 := Floor(Ys);

   if (X0 < 0) or (Y0 < 0) or (X0 >= W - 1) or (Y0 >= H - 1) then
   begin
    Dst[Y * W + X] := FillValue;
    Continue;
   end;

   Fx := Xs - X0;
   Fy := Ys - Y0;

   I00 := GetPix(X0, Y0);
   I10 := GetPix(X0 + 1, Y0);
   I01 := GetPix(X0, Y0 + 1);
   I11 := GetPix(X0 + 1, Y0 + 1);

   V :=
    (1 - Fx) * (1 - Fy) * I00 + (Fx) * (1 - Fy) * I10 + (1 - Fx) * (Fy) * I01 + (Fx) * (Fy) * I11;

   Dst[Y * W + X] := ClampWord(Round(V));
  end;
end;

function EstimateRigidAngleCentered(const RefFFT: TArray<TComplex>; PW, PH: integer;
 const MovFeat: TArray<double>; W, H: integer; MaxShiftPx: integer; UseSubpixel: boolean;
 CenterAngleRad: double; SpanDeg: double; StepDeg: double): TRigid;
var
 Best: TRigid;
 CenterDeg, AngleDeg: double;
 AngleRad: double;
 RotFeat: TArray<double>;
 MovC, MovFFT: TArray<TComplex>;
 Dx, Dy, Peak: double;

 procedure EvalAngle(aRad: double);
 begin
  RotateFeatureBilinear(MovFeat, W, H, aRad, RotFeat);
  PadFeatureToComplex(RotFeat, W, H, PW, PH, MovC);
  MovFFT := MovC;
  FFT2D(MovFFT, PW, PH, False);

  PhaseCorrShiftPeak(RefFFT, MovFFT, PW, PH, MaxShiftPx, UseSubpixel, Dx, Dy, Peak);

  if Peak > Best.Peak then
  begin
   Best.AngleRad := aRad;
   Best.Dx := Dx;
   Best.Dy := Dy;
   Best.Peak := Peak;
  end;
 end;

begin
 Best.AngleRad := CenterAngleRad;
 Best.Dx := 0;
 Best.Dy := 0;
 Best.Peak := -1e300;

 if StepDeg <= 0 then StepDeg := 1.0;
 if SpanDeg < 0 then SpanDeg := 0;

 CenterDeg := CenterAngleRad * 180.0 / Pi;

 AngleDeg := CenterDeg - SpanDeg;
 while AngleDeg <= CenterDeg + SpanDeg + 1e-9 do
 begin
  AngleRad := AngleDeg * Pi / 180.0;
  EvalAngle(AngleRad);
  AngleDeg := AngleDeg + StepDeg;
 end;

 // tiny local refinement
 EvalAngle(Best.AngleRad - (StepDeg * 0.25) * Pi / 180.0);
 EvalAngle(Best.AngleRad + (StepDeg * 0.25) * Pi / 180.0);
 EvalAngle(Best.AngleRad - (StepDeg * 0.10) * Pi / 180.0);
 EvalAngle(Best.AngleRad + (StepDeg * 0.10) * Pi / 180.0);

 Result := Best;
end;

function EstimateRigidAngleGlobal(const RefFFT: TArray<TComplex>; PW, PH: integer;
 const MovFeat: TArray<double>; W, H: integer; MaxShiftPx: integer; UseSubpixel: boolean;
 MaxAngleDeg: double; StepDeg: double): TRigid;
begin
 Result := EstimateRigidAngleCentered(RefFFT, PW, PH, MovFeat, W, H, MaxShiftPx, UseSubpixel,
  0.0, Abs(MaxAngleDeg), StepDeg);
end;

procedure RegisterCoreRigidPyramidInPlace(const Frames: TArray<PDAWord>; W, H: integer;
 Slope, Intercept: double; FillValue: word; MaxShiftPx: integer; UseSubpixel, UseEdges: boolean;
 RoiX, RoiY, RoiW, RoiH: integer; MaxAngleDeg, AngleStepDeg: double);
var
 // full
 RefFeat0: TArray<double>;
 PW0, PH0: integer;
 RefC0, RefFFT0: TArray<TComplex>;
 RefImg1:  TArray<word>;
 // half
 W1, H1, PW1, PH1: integer;
 RoiX1, RoiY1, RoiW1, RoiH1: integer;
 RefFeat1: TArray<double>;
 RefC1, RefFFT1: TArray<TComplex>;
 MaxShift1: integer;
 FineSpanDeg, FineStepDeg: double;
begin
 if Length(Frames) = 0 then Exit;
 if Length(Frames[0]^) <> W * H then
  raise Exception.Create('RegisterCoreRigidPyramidInPlace: reference frame size mismatch');

 // level 0 ref FFT
 PW0 := NextPow2(W);
 PH0 := NextPow2(H);

 PreprocessToFeature(Frames[0], W, H, Slope, Intercept, UseEdges, RoiX, RoiY, RoiW, RoiH, RefFeat0);
 PadFeatureToComplex(RefFeat0, W, H, PW0, PH0, RefC0);
 RefFFT0 := RefC0;
 FFT2D(RefFFT0, PW0, PH0, False);

 // level 1 ref FFT
 Downsample2xWordAvg(Frames[0]^, W, H, RefImg1, W1, H1);
 PW1 := NextPow2(W1);
 PH1 := NextPow2(H1);

 ScaleROI2x(W1, H1, RoiX, RoiY, RoiW, RoiH, RoiX1, RoiY1, RoiW1, RoiH1);
 PreprocessToFeature(@RefImg1, W1, H1, Slope, Intercept, UseEdges, RoiX1, RoiY1, RoiW1, RoiH1, RefFeat1);
 PadFeatureToComplex(RefFeat1, W1, H1, PW1, PH1, RefC1);
 RefFFT1 := RefC1;
 FFT2D(RefFFT1, PW1, PH1, False);

 if MaxShiftPx > 0 then
  MaxShift1 := Max(1, MaxShiftPx div 2)
 else
  MaxShift1 := 0;

 FineSpanDeg := Min(Abs(MaxAngleDeg), Max(2.0, AngleStepDeg * 2.0));
 FineStepDeg := Max(0.2, AngleStepDeg * 0.25);

 TParallel.for(1, High(Frames),
  procedure(i: integer; LoopState: TParallel.TLoopState)
 var
  MovImg1: TArray<word>;
  MovFeat1, MovFeat0: TArray<double>;
  Rigid1, Rigid0: TRigid;
  Aligned: TArray<word>;
  W1, H1: integer;
 begin
  ParallelProgress;
  if Length(Frames[I]^) <> W * H then
   raise Exception.Create('RegisterCoreRigidPyramidInPlace: frame size mismatch');

  // coarse on half-res
  Downsample2xWordAvg(Frames[I]^, W, H, MovImg1, W1, H1);
  PreprocessToFeature(@MovImg1, W1, H1, Slope, Intercept, UseEdges, RoiX1, RoiY1, RoiW1, RoiH1, MovFeat1);

  Rigid1 := EstimateRigidAngleGlobal(RefFFT1, PW1, PH1, MovFeat1, W1, H1, MaxShift1, UseSubpixel,
  MaxAngleDeg, AngleStepDeg);

  // refine on full-res around coarse angle
  PreprocessToFeature(Frames[I], W, H, Slope, Intercept, UseEdges, RoiX, RoiY, RoiW, RoiH, MovFeat0);

  Rigid0 := EstimateRigidAngleCentered(RefFFT0, PW0, PH0, MovFeat0, W, H, MaxShiftPx,
  UseSubpixel, Rigid1.AngleRad, FineSpanDeg, FineStepDeg);

  ApplyRigidBilinearWord(
  Frames[I], W, H,
  Rigid0.AngleRad, Rigid0.Dx, Rigid0.Dy,
  FillValue, Aligned
  );

  Move(Aligned[0], Frames[I]^[0], Length(Aligned) * SizeOf(word));

  if ProgressForm.ProgressCancelled then
   LoopState.Break;
 end);
end;

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

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

Вот знаете, зря вы на самом деле код привели, достаточно было просто сказать что сделали и что получили. А так я вижу что вы скорее всего отвечали за математическую часть, а нейронка за код. Ну что сказать, вполне академический код уровня дипломной работы не самого плохого студента не самого плохого вуза. Ничего не понял, кроме того что это обработка снимков КТ с двумерным fft с окном ханна. Что на входе, что на выходе, что мы делаем, какие ограничения, да кому оно надо, правильно? Да и по процедуре регистрации выдаётся всё что угодно, только не матан.

Мне интересно, как бы вы отреагировали если бы я просто молча вывалил код синхронного гененератора кодов АЛСН строк так на 2000. Понятное дело что я бы вместо этого просто сказал бы что это и зачем, какие ограничения, какие данные на входе, какие на выходе, без кода. Потому что понимаю, что вы скорее всего не специалист в этом и просто ничего не поймёте. Да, с обработкой изображений я работал, но это касалось субполосных представлений и сжатия, а с КТ снимками не было опыта. Да даже если бы работал, код без пояснений от этого не перестал бы быть чёрным ящиком.

А знаете, давайте пойдём на крайние меры: в тред призывается @AleksandraUvarova, @Andrey2008и прочие сотрудники PVS-Studio. Порвите товарища, аки единорог грелку, вам же не впервой!

Да не, не надо, не стоит смешивать академический код и прод. Это именно что академический код, просто для меня странно, что вместо того, чтобы сказать что было сделано и зачем, какие были проблемы и ограничения, мне просто выдают 400 строк кода на делфи без каких-либо пояснений. И для меня код выглядит просто как чёрный ящик, только ещё и неизвестно что на входе и что на выходе. Вот это печально.

Я же написал в самом начале. Это код алгоритма регистрации. Гуглится. Ок, если сложно, вот ссылка:

https://3dqlab.stanford.edu/image-registration/

На входе пачка КТ изображений. Пациент во время скана бывает дергается, и это проблема для работы последующих алгоритмов (для примера: удаление костей по маске или по диапазону HU, расчет перфузионных карт CBV/CBF/MTT и т п). Нужна предобработка, что код и делает. Делает, как писал, отлично. Сомневающимся стучите в личку вышлю пачку скриншотов. Сюда тянуть не вижу смысла.

Не, правда, без шуток, мне выдавало всё что угодно, только не то что надо.

Понял, спасибо за объяснение, обязательно просвещусь. А то надоело уже в свободное время ковырять SVD разложение изображений и его оптимизации.

Делает, как писал, отлично.

Все восторги обычно разбиваются об вопрос «а откуда это известно» (в смысле что «отлично»)? Как Вы можете быть уверены, что он не правдоподобную муму гонит (особенно с учётом того, что у Вас знаний отличить муму от правильного ответа очевидно недостаточно)?

Дело в том, что

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

Вот я, например, не специалист в алгоритме регистрации и смотрю на «Ваш» код как баран на новые ворота. С первого взгляда на меня ничего не выпрыгивает — ибо это не тот язык, на котором я пишу 20 лет. Однако на 99% уверен, что специалист в этом языке Вам сходу парочку проблемных мест укажет.

Все восторги обычно разбиваются об вопрос «а откуда это известно» (в смысле что «отлично»)? Как Вы можете быть уверены, что он не правдоподобную муму гонит (особенно с учётом того, что у Вас знаний отличить муму от правильного ответа очевидно недостаточно)

Откуда известно? Взяли глазами и посмотрели на результаты :) Программисты вместе с докторами. На множестве примеров. До этого кода было с пяток попыток запилить своё руками, или найти готовое, с весьма увы спорными результатами. Что должно получится известно и просто: контуры изображений должны максимально точно совпасть по всему набору, в результатах нет рокет саенса. Но сами сделать это увы долго не могли. Чатик вот справился. Знаний для решения недостаточно. Но постановку знаем хорошо и результаты можем оценить.

Это только один пример, можно сказать что уникальный, но он - один из множества. Я так то вообще из чатов (использую 3-4) не вылезаю фактически. Большую часть нудной текучки отдал чатам. Сам, конечно, тоже пишу куски. Результаты буквально превосходные.

Однако на 99% уверен, что специалист в этом языке Вам сходу парочку проблемных мест укажет.

Скорее нет :) Так то я как бы и сам специалист, почти 25 лет кодинга на этом вот языке и несколько проектов с нуля, несколько миллионов строк кода.

Область: медицина.

Достаточно удобно: жертва ошибки жаловаться не придёт, а будет спокойно себе лежать на глубине два метра.

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

У жертвы ошибки может оказаться Калоев‑родственник, и он придет в клинку выбить мозги в буквальном смысле накосячившему пилюлькину.

А то Вы не знаете посыла современных персонажей: «Мне повезёт!™»

Вон, скажем, авиакомпаниям, покупавшим 777MAX без третьего датчика Пито (это платная опция была) тоже достаточно долго везло.

Вы так не беспокойтесь и не волнуйтесь, всё очень плотно тестируется :)

Ага, настолько, что вы даже не можете сказать что ваш код делает и зачем. У нас обычно для такого есть документ "Описание принципа работы" с описанием всех алгоритмов.

См. выше.

Вы так не беспокойтесь и не волнуйтесь, всё очень плотно тестируется :)

Вот сейчас реально напомнило —

Мне недавно рассказали, как делают корабли в бутылках. Берут бутылку. Засовывают внутрь щепки, бумагу, всякий мусор, наливают клей. Трясут. Иногда получаются корабли.

Фигнёй вы занимались 25 лет

Тесты, который вы навайбкодили, нужно только самому агенту. Это мусор.

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

Ничего нового: «Вычислительная машина ценна ровно настолько, насколько ценен человек, который ее использует» (ц) Винер

Нейронки отлично могут ускорять и бустить эффективность.

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

в статье САМОЕ правильное - итоговый вопрос. Автор фактически переформулировал "трагедию общин". Вопрос предпочтения между "дорого и качественно" и "дешево и кое-как" для бизнеса даже не является вопросом. Если бы этого не было массово - были бы варианты. Но в нашем случае те кто попытаются сохранить кадры и экспертизу просто не выдержат конкуренции и станут кормовой базой для "оптимизаторов". Поэтому мегакорпорации и оптимизируют в таких кол-вах кадры, потому они и бегут на перегонки к обрыву... Предполагаю, что когда они добегут и спрыгнут - начнется обратная гонка.
они начнут наперегонки делать свои закрытые циклы воспроизводства кадров чтобы монополизировать освободившийся рынок специалистов... Но это будет не скоро... лет 20-30 наверное потребуется, пока большая часть опытных разрабов в ящик не уйдет.

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

Так что надежда либо на профсоюзы (тоже форма власти так-то), либо, например, государственная поддержка в воспитании ИТ-кадров (стипендии, университеты и т.п.). Частники же до последнего будут играть в игру “ты умри сегодня, а я завтра” - много раз человечеством пройдено.

Процитирую из одной заметки, которая была написана задолго до появления LLM:

По факту, все подобные “логичные” умопостроения базируются на том, что если что-то делается много раз, то из этого автоматически следует.   1. Бездумность происходящего. 2. Безвариантный результат в виде гарантированного получения/изменения неких навыков.   На самом же деле ни первое, ни второе не обязательны.   Логическая ошибка, которая допускается в таких измышлениях, проста – из того, что при многих повторениях можно чему-то научиться или улучшить навыки, делается вывод, что это обязательно произойдёт. Ну и, соответственно, то же с бездумностью.   В буддизме есть интересный принцип – надо быть в том, что ты делаешь. Т.е. внутреннее присутствие при своём же действии – обязательно. Иначе это не ты делаешь, даже если своими руками.   Данный принцип подтверждается на практике очень просто – вы, если были в спортзале, многократно видели людей в наушниках, жмущих годами одну и ту же некрупную штангу. Эти люди механически выполняют движение, не думая о нём, поэтому наработка техники не происходит. А калории – да, тратятся, кто ж спорит. Навык просто и не улучшается и не образуется. Так во всём – если вы не присутствуете в том, что выполняете, то на уровне биохимии мозга не образуются нужные связи.

Как видим, проблема была известна и до этого, и в большинстве работ толковый начальник, если его спросить про молодых сотрудников, сразу ответит вам, что "Да, Иванов набивает опыт, и начинает расти, а вот Петров просто бездумно бумажки перекладывает и так и останется в этой позиции". LLM просто эту проблему высветили очень уж явно.

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

но копать картошку долго не получится, потому что ПО для АЭС вызовет каскадные реакции и на этом история человечества как цивилизации закончится ))))

ПО для АЭС вызовет каскадные реакции и на этом история человечества как цивилизации закончится ))))

Тараканы WINS!

С нуля и человек не напишет. ИИ это исполнитель, ему нужно от чего-то отталкиваться, её работу нужно загонять в рамки подробного ТЗ.

Ну да, сложно с нуля написать то, что разрабатывалось и верифицировалось десятилетиями. И я бы посмотрел как нейронка будет использовать платный пакет Siemens для ПЛК, сертифицированный для применения в АЭС, которого нет в общем доступе. Да и это всё равно кому-то надо сертифицировать, верифицировать, так что если сингулярность и застанем то явно нескоро.

Какой процент айтишников (и программистов и прочих) делает именно такие системы?

Получили русские мужики электропилу из Японии. Положили бревно:

- Вжик! - сказала пила, и бревно пополам.

- Ух ты! - сказали мужики и положили бревно потолще.

- Вжжжик! - сказала пила и ... бревно пополам.

- Ого! - сказали мужики и положили рельсу.

- Вжж-крях! - сказала пила и поломалась.

- Ага!!! - сказали мужики, - То-то же...

Так проблема-то в том, что ыфективные манагеры бросают под неё всё без разбору, в слепой вере, что на выходе всё будет распилено как надо.

Были времена, когда книги переписывали вручную, перышком, красиво. Дорастали до миддлов-рубрикаторов (вписывал красным (от латинского ruber "красный") заголовки, первые буквы, разметку), потом до миниатюристa, который рисовал украшенные буквицы и миниатюры, часто с золотом (Элита! Вставали когда они входили в офис). Передавали опыт.

Потом придумали подвижной шрифт. Потом типографию, типографику и шрифты. Потом построили промышленные типографии. Потом придумали электронные книги.

Я к чему все это. Если бы у тех самых рукописцев был форум, то обсуждая механические способы печати они бы их критиковали также, как мы все сейчас критикуем переход от набора текста кода до автоматической его генерации по запросу (пока запросу разработчика, дойдет и до пользователя, а потом дойдет до того, что агенты "пользователи" будут через какой-нибудь DNS-AID просить агентов "разработчиков" добавить фичи или исправить баги). Да, души в этом коде не будет, лол. Но код будет печататься в промышленных масштабах. А нам надо либо встроится в новые процессы, либо менять профессию, либо ждать пенсии в тихой гавани.

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Ванечка, ну ты чего? Ты в кого такой дурной? Ну какая Прикладная Информатика? Кем ты потом будешь работать? Мы с папой тебе помогать не будем! Выбери что-то практичнее: Античная философия, Культурология.

НЛО прилетело и опубликовало эту надпись здесь

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

А в школе точно говорят такое? Нет эффекта вашего личного информационного пузыря?

Потом придумали подвижной шрифт.

Калька с английского («movable type») детектед. Лови шпыёна!

На русском так не говорят.

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

А вот ещё один гражданин, видящий разницы между детерминированным компилятором и недетерминированным молотком предсказателем следующего токена.

(Ежели чо — книгопечатание тоже было строго детерминированным.)

Недетерменированный печатный станок

Нейронка даже привела текст статьи, если не удается разобрать его на фото ))

Сенсация. Изобретен печатный станок

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

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

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

Ученые полагают, что это изобретение ускорит развитие естественных наук, медицины и искусств. Идеи, которые раньше путешествовали по стране годами в единичных рукописях, теперь смогут мгновенно тиражироваться и обсуждаться повсеместно. Грамотность перестанет быть редким исключением и превратится в норму жизни.

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

А вот ещё один гражданин, видящий разницы между детерминированным компилятором и недетерминированным молотком предсказателем следующего токена.

Можно подумать будто кожанный - детерминированный.

Можно подумать будто кожанный — детерминированный.

Да, не всякий кожанный — детерминированный. Ну так не всякий кожаный и Валуев.

"луддитский тезис" очень прост и часто упоминается, но ситуация с ИИ чуть сложнее
вот почему

С луддитами тоже была ситуация чуть сложнее АФАИР. Был проф стандарт, ткань была дорогой и качественной или домотканной. К желающим гнать фуфло приходили ребята с дубинами. Ткань после станка была дешевле и хуже стандарта. Вот и к станкам пришли ребята с дубинами. Но станки давали такую прибыль, что их защита окупилась и стандарт канул в лету вместе с его защитниками. Теперь рулит ТУ и ты не можешь угадать, не говно ли тебе впарят. Зато одеваться стало дешевле.

Ткань после станка была дешевле и хуже стандарта.

Ну то есть китайщина v1.0

Вы тоже сильно упрощаете. Если прочитаете по ссылке - там подробно раскрыто почему тезис про луддитов не натягивается на ИИ по пунктам.

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

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

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

Сейчас мы обсуждаем эту проблему со своей колокольни - думаем про гибкость бизнеса и про то, как теперь обучаться джунам. Но кто его знает, что будет дальше. Может быть, в будущем появится условный AGI, который сможет затмить вообще всё, о чем мы сегодня спорим, а весь этот текущий хаос - просто неизбежный путь к такому моменту.

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

Место под солнцем останется и у тех, кто реально понимает, что делает, пишет глубокий и надёжный код (в том числе грамотно используя ИИ как инструмент). И у тех, кто выступает обычным конвейером по брутфорсу промптов

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

Сначала был гугл, потом stackoverflow, теперь ИИ. Джуны как копировали код, так и продолжают копировать. 15 лет назад спрашивал джуна "что делает вот эта строка", он не мог объяснить, потому что тупо скопипастил. В итоге джун уволен. Если сейчас вы так не делаете, сами виноваты.

Тоже не понимаю всех этих стонов "ИИ отучает людей думать". Всегда во все времена масса людей делала по принципу "херак-херак, как-то работает и ладно". Мне и 20 лет назад встречались люди которые дебажили код методом случайной перестановки строк!

А для думающего въедливого инженера ИИ наоборот очень огромное подспорье экономящее кучу времени.

Думающие и въедливые люди как появляются? Зачастую - это “херак-херак, не работает, вник, понравилось”. ИИ дает очень большой разрыв между “херак-херак инженером” и “въедливым инженером”.

Да, въедливые не исчезнут - их просто станет меньше.

Но самая большая проблема, которую я вижу - а как искать въедливого, если на 1й взгляд результат херак-херак не хуже, а то и лучше? А негативные эффекты будут сильно позже?

Думающие и въедливые люди как появляются?

Они не появляются, они рождаются. Такое вот устройство психики.

Даже если всё работает, для въедливого недопустима магия "хер знает как оно работает". Он всё равно не успокоится пока не разберётся почему оно работает именно так, а не как-то иначе.

Магия недопустима - это да. Но причина этого не в желании разобраться (хотя зачастую и не без этого), а в ненадежности магии.

Нет, причина именно в желании разобраться.

Магия вне Хогвартса недопустима

Магия допустима в некоторых случаях, если проходит тесты и делает то что нужно по спецификации. Вот простой пример таких ящиков это нейронки переводчики. Переводит? Да. Зачем мне знать как она это делает? Если она переводит и результат/процент ошибок меня устраивает. Это конечно простой пример где результат работы ящика не так сложно анализировать.

Переводит? Да.

Но есть нюансы.

В очередной раз напоминаю свою историю. Я как-то попробовал с помощью ИИ перевести фантастический рассказ. Читаю перевод (я отлично говорю на обоих языках), и офигеваю: в какой-то момент оно полностью забило на оригинал и написало полную отсебятину: в исходнике герой попадает в опасную ситуацию, а в переводе герой на белом коне уезжает в закат. После чего мне пришлось вернуться к самому началу и тщательно вычитывать фразу за фразой — мало ли что ещё оно там переврало. Мог бы не заморачиваться, а с самого начала сам перевести.

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

Надо понимать границу применимости. Не надо ими книжки переводить. А вот любые надписи и таблички с китайского нормально переводит. Прямо очень помогает в Китае.

Надо понимать границу применимости

Так «он всё‑всё за вас сделает» или всё‑таки «надо понимать границу применимости»?

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

А откуда Вы знаете? Вы умеете в китайский? Нет? А тогда откуда Вы знаете, что он правильно перевёл? Может, Вы пиццу на мебельной фабрике заказываете?

(Я — знаю, потому как я в английский умею на уровне местного.)

У любой технологии полезно понимать границу применимости. Или она превращается в магию.

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

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

Юридические тесты я естественно не рискну сетками переводить. Инструкцию по использованию опасной штуки тоже. А вот все бытовое почему нет? Цена ошибки невысока.

перевод текстов я привел как первый попавшийся пример. Что касается нюансов вы пропустили главное - "результат/процент ошибок меня устраивает ". Грубо говоря, если мне дали черный ящик калькулятор и он проходит все критические для моей задачи тесты и вычисления и ошибается в 10% случаев (что для задачи подходит), то мне все равно что делает этот черный ящик. По сути все программирование так и работает. Вы почти всегда используете чужие библиотеки (а не используете вы их только в проектах уровня ядра и т.п.) верно? Верно и при этом не задаетесь вопросом "а Math.Min точно работает корректно?". Крейты в расте же не проверяете досконально? Нет, мы все это переиспользуем и это хорошо. Но по сути это и есть магия. Как товарищ выше писал "хер знает как оно работает" :)

Только LLM - это не магия. Заранее известно, что результаты LLM плавают и непредопределены.

Магия - это когда “почему-то работает”, хотя “явно сломано”. Или когда “не работает, хотя должно”. Магия - это недостаток понимания системы. Это непредсказуемое поведение системы. А если ты систему не понимаешь - то и чинить ее не сможешь.

Золотые слова. В идеале магия должна съежится до размеров электрона, который дергает транзистор в процессоре. А все что выше должно быть понимаемо и объяснимо. Хотя бы на уровне концепций.

Немного обощить:

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

Опытные разработчики получают проигрышную вилку:

  • минимально используешь LLM и сохраняешь/углубляешь знания и навыки, но проигрываешь в конкуренции таким же опытным, которые активно пользуются

  • начинаешь активно использовать, делегируешь большие куски работы - понемногу теряешь навыки, не получаешь новых - твой личный «инструмент» начинает ухудшаться

Тут тоже надо сделать поправку в зависимости от задач. Например нагененерить какие-нибудь тулзы или мини проекты, отличный как мне кажется вариант. Вот нужна морда к OpenAI, зачем сидеть и корячить её самому, сразу выдаётся более менее приемлемый результат.

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

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

как человек с опытом 10+, скажу, что при схеме, сначала разрабатываем план потом кодим,

ИИшка может писать отличный и качественный код. Но прирост производительности не такой огромный. Кодим мелкими инкриментами с постоянным контролем, каждый инкримент комитим в гит.

Второй вектор, где буст от ИИ заметно выше, это code review и поиск проблем, например по скормленому логу.

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

1) где надо и старый код поддерживать и новый. Проблема - начинает мешать два подхода самым неожиданным способом

2) сложная кодовая база, начинает упрощать себе задачу (ну нельзя сделать, че поделать...)

3) тема с удалениями не шутка, сам видел пару раз. Гит пока спасает. MCP к БД если и использовать, то только с доступом на чтение.

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

А по поводу удалений - ерунда. На каждой нейронке настроить можно список запрещенных команд, это раз, во вторых никаких mcp и прямых доступов не нужно. Для этого существуют контракты и сгенерированные схемы БД. которые лежат рядом с кодом. А все доработки бд - через миграции. Prisma ORM например идеально под нейрокодинг подходит, имеет одну центральную схему бд, нейронка даже если захочет что-то там поломать, не получится. Всё строго валидируется.

с нейронкой тоже нужно обучаться работать

«ты просто не ставишь пять линий после вишни — вот и не выигрываешь!» ©

отличная схема, с людьми точно также работает ;) code complete много джунов читает? вот и ответ

если он сделал задачу за 2 часа, которую я бы 15 лет назад делал неделю, с несколькими заходами на форумы и обзвонами коллег, — это обезоруживает и уничтожает всякие аргументы.

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

Да. Но этот проблемы будущего. А премия в карман ляжет сейчас.

P.S. забыли про увольнения “множества людей с высокой квалификацией” из-за выгорания как побочный эффект

ох уж этот идеальный код без багов от разработчиков кто это делал без нейронки.

Если кто долистал до сюда, то проблема в общем-то старая как мир: не умеют наладить процесс разработки. В мире манагеров вайбкодеров на порядки больше, чем в мире программистов. Они вообще никогда до каких-то нудных деталей не опускались. И если большинство из них такие, то как они могут рассмотреть проблему там, где используется их же сбственный подход? Джуны кодят как начальники - приказ и далее пинать до готовности. Не думать. Только пинать. Потому что думать тяжело.

Некачественный процесс, разумеется, ударит по головам начальников, но проблема в том, что таких "умников" - почти все. А это значит что у всех будет одинаковая просадка. Ну а в мире, где у всех болит, твоя боль не так сильно напряжёт хозяев бизнеса, которых ещё больше воротит от погружения в детали. То есть опять всё всем простят. Пострадает потребитель, он получит софт омерзительного качества. И здесь есть ниша для умеющих наладить процесс. Но да, большинству туда дороги нет, потому что давно и прочно мозг в нужную сторону работать отучился. Ибо высокопоставленные вайбкодеры со стажем в десятилетя уже всё, неспособны.

"Только вот при ручной проверке — всё так же слетают. " - я не совсем понял, в итоге система работала или нет?

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

В общем лучше не будет, пока работа есть работаем, потом просто надо переквалифицироваться на что-то другое.

Забавно что автор обвиняет во всем ИИ, хотя сам же дал джуну задачу и пустил все на самотек без контроля. Отличный менеджмент, надежный как швейцарские часы :)

поразительно, насколько много людей застряли в фазе отрицания…

да, есть много поводов говорить о проблемах с разработкой на базе LLM как надуманных, так и вполне реальных

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

у меня тоже есть коллекция любимых баек про то, как айтишники (включая меня) творили лютую, отчаянную дичь, в которую даже сложно поверить, и что это доказывает?

ИИ - мощнейший усилитель ваших процессов, компетенций и тараканов в вашей голове, а не волшебная палочка его нужно использовать правильно. Нужно использовать. Правильно использовать.

Сами LLM совершенствуются, тулы совершенствуются, подходы совершенствуются. И ничего из этого совершенствоваться не прекратит. И по мере этого совершенствования потребность в людях, зарабатывающих посредством перевода спецификации в код будет уменьшаться в пересчёте на одну фичу, тут ничего не поделаешь.

Нужно использовать. Правильно использовать.

«ты просто не ставишь пять линий после вишни — вот и не выигрываешь!» ©

Да нет никакой фазы отрицания. Никто вменяемый не будет отрицать текущую полезность ИИ для генерации. Но вместе с этой полезностью вылезает пачка проблем, и вот их как раз отрицать довольно странно. Странно не замечать вопросов озвученных в статье. Странно приводить в сравнение людей, что они что ли не косячат. Косячат конечно, но такое сравнение намекает что вышло шило на мыло, с небольшим отличием - с человека можно спросить за результат, а LLM вам ничего не должна.

спрашивают точно также с человека, он всё равно остается оператором ИИ, кто даёт команды и кто обязан провалидировать результат на выходе. Вся разница до ИИ и без ИИ только в том что раньше делало 3-5 разных айтишников делает один фулстек с ИИ в паре. От идеи до продакшена. И вполне успешно, кстати. ПОка конечно примеров успешных не много но кто в этом комьюнити варится, уже не удивляется а мотает на ус, что надо не профукать момент и вовремя этому ремеслу обучиться.

спрашивают точно также с человека, он всё равно остается оператором ИИ

Ну вот "оператору ИИ", под которым вы видимо понимаете бывшего "фулстек-программиста", обученного в эпоху ДО ИИ - ему LLM ничего не должна, а с джуна спросить можно. И кстати ваша правота в том, что фулстек-программист неизбежно станет оператором ИИ, низкооплачиваемым специалистом наподобие машинистки, которой надо что то напечатать, а потом посмотреть что на бумаге напечаталось всё правильно. Потому что к разработке кода он перестанет иметь отношение. На следующем шаге к счастливому будущему, когда и если вайбкод сразу будет выдаваться идеальным - то эти самые фулстеки/операторы тоже станут не нужны, накой свежеиспеченному коммерсанту они сдались, если он и сам запрос иишке сделать способен. Можно и дальше пофантазировать на тему почему бы ИИшке самой себе задачи не ставить то, зачем тут кожаная прокладка с ранней багованой версией нейронки, которая к тому же и развивать ее больше не хочет? Скорей бы этот момент наступил, рисков нет

В ИИ интереснее всего не его текущее состояния, а динамика развития. Пять лет назад он вообще ничего не умел. Год назад гнал дичь. Сейчас уже полезен. Через год? Через пять лет?

Вот Вы — точно не нейронка: повторяетесь.

Не все читают все комментарии вообще. Многие читают только ответы на свои комментарии.

Кто бы говорил.

НЛО прилетело и опубликовало эту надпись здесь

Ну я не знаю будущего, поэтому не скажу что будет через 5 лет, поживем увидим )
Меня смущает всеобщая радость людей от возможности перекладки своих когнитивных способностей на ИИ. Тут же на полных щах обсуждают что музыканты тоже не нужны их заменит ИИ. Понятное дело что и художников, режиссеров. Инженеры? Да в топку их со временем. Что будет делать человек в этом радостном мире и зачем вообще он будет нужен?

Что будет делать человек в этом радостном мире

Смотря куда пойдет общественное развитие. Если в сторону социализма - то человек будет заниматься тем, что ему интересно.

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

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

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

А сколько таки линусов сейчас вынуждены каким-то образом зарабатывать себе на жизнь и не делать свой собственный Линукс?

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

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

и зачем вообще он будет нужен?

Как мне кажется это бессмысленный вопрос. А зачем человек нужен сейчас? Да низачем. Как низачем не нужен сейчас, так и не будет нужен потом.

Человек просто существует без какой бы то ни было цели и делает то что свойственно его природе. А его природе в том числе свойственно познание и творчество.

Это мой ответ на этот вопрос, под сильным влиянием дзен-буддизма.

Меня смущает всеобщая радость людей от возможности перекладки своих когнитивных способностей на ИИ.

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

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

Сейчас людей с детства приучают, что всё, что отличается от развлечений - это обязательно боль и страдания. Поэтому большинству людей и неинтересны творчество с познанием.

То что большинству ничего не надо будет это ладно.

Творцы тоже ладно, с ними все ок.

А вот где те герои которые будут им всем канализацию чинить?

Не понял, что вы имеете в виду.

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

Вы не путаете социализм с коммунизмом? Социализм не означает удовлетворения всех потребностей бесплатно.

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

Пока роботы еще не могут заниматься починкой канализации (а лет через 30-50 думаю вполне смогут) сантехник просто будет получать больше благ чем бездельник или невостребованный творец - хотя бы в форме зарплаты, которая будет заметно выше базового безусловного дохода, но тут возможны разные варианты.

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

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

Кроме ремонта канализации есть море подобной работы.

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

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

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

Кроме ремонта канализации есть море подобной работы.

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

Или таксистом раз в неделю работать.

Так таксисты одни из первых в очереди на автоматизацию, беспилотные авто в опытном режиме даже в России ездят.

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

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

Да и в США именно умереть с голоду крайне проблематично - да ты будешь жить бомжом на улице, но с голоду не умрешь.

И ничего, никакой катастрофы не случилось.

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

Но никто все равно не стремится ни в тюрьму ни бомжевать - потому что работа обеспечивает жизнь намного приятнее.

Так что это скорее вы игнорируете реальность и мировой опыт.

Автоматизация подавляющей части тех работ которые нужны и которыми не хотят заниматься сейчас невозможна даже близко. Стоит обсуждать то что более-менее реально хотя бы в ближайшие десятилетия.

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

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

Я оцениваю минимальный уровень о котором можно говорить так: Квартира в вечной аренде, обычная массмаркет еда из соседнего магазина, не менее обычная массмаркет одежда из другого соседнего магазина.

Но никто все равно не стремится ни в тюрьму ни бомжевать - потому что работа обеспечивает жизнь намного приятнее.

Зря вы так говорите "никто не стремится"
Why some Japanese pensioners want to go to jail

В вашем мире социализма должен найтись минимум миллион человек которым интересно чинить канализацию.

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

Записываю.

Люди будут заниматься «саморазвитием», чилить и заниматься творческими делами.

А другие люди будут с радостью чинить канализацию 5/8. С ночными дежурствами и все как полагается.

Кажется вы снова придете к тому что вам люди не те достались.

А вы саморазвитие из кавычек вытащите, и тогда всё встанет на свои места. Преодолел свою животную брезгливость и спас квартал от зловонной катастрофы.

А люди подстраиваются под объективные стимулы. В одном обществе чистильщик канализации - неудачник, у которого просто ничего больше не получается, а в другом - супергерой, который добровольно берёт на себя грязную, но необходимую деятельность.

Чтобы вытащить из кавычек вам другие люди нужны. С существующими будут кавычки.

Вы точно уверены что найдется достаточно желающих вместо чила и «саморазвития» работать на такой работе? За спасибо. Или пусть даже за большое спасибо? С текущими людьми, а не с другими идеальными. Что будете делать если не найдется?

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

Я вот знаю несколько людей из этой сферы.

Вы их знаете в контексте общества, в котором такая работа не является престижной.

Вы точно уверены что найдется достаточно желающих вместо чила и «саморазвития» работать на такой работе? За спасибо.

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

Ну вот вы и пришли к тому что вам нужны другие люди. А их нет.

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

Все как обычно.

Люди подстраиваются под объективно существующие условия, а не являются какими-то определёнными с рождения до самой смерти. Меняются условия - меняются люди.

В СССР буквально недавно пробовали. Ошеломительный провал.

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

И эти обычные люди работать за спасибо вообще не желают. Особенно на не самых приятных работах вроде починки туалетов.

Ошеломительный провал.

Ошеломительный успех, если не заниматься подменой понятий.

Люди особо не меняются.

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

И эти обычные люди работать за спасибо вообще не желают.

Почему вы так упорно отрицаете уважение, статус, славу, престиж, как мотивацию к действию? На что надеетесь?

Зачем вы историю переписываете? Живы люди даже. Попытка вырастить другого человека провалилась полностью. Люди так и любили красиво жить, вкусно есть. Устроили коррупцию, кумовство и теплые места везде. Такого количества низовой коррупции как было в СССР не было нигде и никогда. Все как обычно.

Почему вы так упорно отрицаете уважение, статус, славу, престиж, как мотивацию к действию? На что надеетесь?

Я просто перевожу на русский.

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

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

Зачем вы историю переписываете? Живы люди даже.

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

Люди так и любили красиво жить, вкусно есть.

Ну то есть вы подтверждаете, что на людей плохо влияет факт отсутствия условий для полноценной жизни?

Такого количества низовой коррупции как было в СССР не было нигде и никогда.

Угу, а теперь верховая коррупция таких масштабов, что в СССР такое даже в страшных снах не могли представить. А все остальные вынуждены жить по правилам, ибо на коррупцию тупо денег нет. А вы точно считаете, что огромное неравенство в доходах - это правильный метод борьбы с низовой коррупцией? И вы опять же подтверждаете, что при изменении условий меняются и люди.

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

Вы подменяете понятия. Вместо реальных уважения, славы, престижа, статуса вы упорно вставляете карикатурное похлопывание по плечу с грамотой.

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

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

современные технологии не позволяют увеличить производительность труда 

Расскажите плиз, как "современные технологии" позволят увеличить производительность труда стоматолога, хирурга, медсестры, да хоть санитарки.

И чем они отличаются? Ну более вороватые, сейчас честнее стали. Обвинять в этом я их не могу, жизнь такая была. Но в общем такие же. Все еще хотят поменьше работать и побольше получать.

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

На вашего сантехника стадион билеты не купит и даже бар не соберется на него посмотреть. Кому он нужен вообще? Значит похлопает начальник по плечу и даст грамоту. Нет других вариантов, не придумали ничего другого за все время существования человечества.

Окей. Как оптимизировать дежурную службу? Которая должна дежурить 24/7 недалеко от больших труб, чтобы оперативно устранить прорыв или поломку какую? А сантехника как оптимизировать? Не может он больше унитазов в день чинить.

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

тут же на полных щах обсуждают что музыканты тоже не нужны их заменит ИИ.

Ну, после того, как мне один персонаж тут вкручивал, какая «Кукушка» крутая песня, потому что «каждый может домыслить своих смыслов», вполне соглашусь, что таким — действительно не нужны.

Никто вам не вкручивал, что она крутая, это вообще дело вкуса.
Но метафоры - это круто, да. Было бы очень грустно жить в мире одних исторических очерков (с ними кстати ИИ должен справляться прекрасно)

с ними кстати ИИ должен справляться прекрасно

... но есть нюанс: нейрогалюны никто не отменял (Фоменко аплодирует стоя).

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

Вы хорошо показали главный риск: ИИ не заменяет разработчика, а резко ускоряет производство того, что внешне похоже на добротный продукт, а по сути является техдолгом.

Самое неприятное тут даже не то, что джун сгенерировал плохой код. Это ожидаемо. Неприятнее другое: плохой код теперь может выглядеть достаточно презентабельно, чтобы пройти мимо неспециалиста. UI есть, демо работает, тесты зелёные, менеджмент доволен. А внутри — не архитектура, а то самое, дендрофекальное нечто. С другой стороны, а чего хотел менеджмент, нанимая человека, который ни хороший код написать, ни «в ИИ» не может в силу естественных причин. Я не персонально про джуна, я про явление, когда руководитель полагает свежий и «на долгую» не проверенный инструмент серебрянной пулей своих проблем (причём, у каждого руководителя проблемы чуть разные!)

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

Скорее, ИИ просто убирает у них естественную обратную связь процесса обучения: раньше приходилось руками пройти через ошибки, отладку, чтение документации и ревью — вот это всё, «обычный рабочий процесс». Теперь можно быстро получить «ответ», не поняв задачу. Если процесс обучения и ревью слабый, человек действительно застрянет на уровне оператора автодополнения. Если модель выдала мусор, легко сказать «ИИ не справился», хотя на деле человек не смог поставить задачу, проверить ответ и встроить его в систему. Вывод простой: «учиться нужно», как ни крути. Причем, как профессии, так и управлению новым инструментом в виде ИИ.

То есть проблема не в самом AI‑first, а в AI‑first без инженерной обратной связи: тех самых требований, ревью, архитектурных ограничений, тестов, ownership и старшего инженера, который не просто говорит «переделай», а объясняет, почему это вообще нельзя принимать.

ИИ не отменяет разработку. ИИ привносит иллюзию, что можно дешево заменить инженерную культуру генератором кода. Но в итоге это инструмент, такой же, как молоток или копьё — как бы древнему человеку не хотелось сказать, что «я вот копьё изобрёл, сейчас голодным не останусь!», без навыка охотиться он так же голодал (и умирал от голода), если не осиливал найти новому инструменту места в изменившейся картине мира.

Нейронка не панацея.Ее еще правильно направлять надо. Вот совсем недавно - решил оптимизировать хранимую процедуру. Немного тормозила, но работала на клиенте. А в студии жутко зависала на минуту и больше. А тормозить не должна была, количество записей небольшое. Индексы все были. Скормил нейронке и пошло-поехало. Итерации за итерацией, но результат еще хуже, потом пошли такие дебри что я сказал стоп. Давай вернемся к началу и проверим все по частям. По отдельности запросы в процедуре, содержащей CTE и select работают ведь мгновенно, а в комплексе - процедура зависает на минуту. И только тут нейронка сообразила что проблема не в коде, который она довела до к полной жести - проблема в Parameter Sniffing и предложила простое лечение - переназначение входной переменной в локальную и вставка в конец процедуры OPTION RECOMPILE. Небольшие правки в четырех частях процедуры и все. Все 20 тыс. строк стали выводится за миллисекунды и в студии и на клиенте. Достаточно редкий случай этот Parameter Sniffing , но он произошел. Я честно говоря подозревал что дело в разных планах выполнения, но столкнулся с таким первый раз и не знал о существовании такой проблемы. Нейронка помогла, но только под правильным руководством нашла верный ответ. Человек без опыта и чутья с этой задачей возможно бы и не справился. Так что польза от нейронок есть, но уповать на них полностью - глупо.

Задача обошлась мне практически бесплатно

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

Я даже не знаю как начать свой поток мыслей, несколько раз стирал начало сообщения. Да я бывает пользуюсь нейронками, но исключительно для цели “общения”. То есть мне нужно написать незнакомому человеку (не Россия, потому культурная специфика) с простым вопросом, например утрируя “объявление всё ещё актуально”. К сожалению из-за пресловутой культурной специфики ты не можешь просто задать прямой вопрос и тут помогает использовать нейронку - преобразуй вопрос в деловом уважительном стиле с использованием местной специфики и культурных особенностей. И вот этот простой вопрос из 4-х слов она распинывает в 3 абзаца. И человек хоть ответит на них. Также бывает компании спрашивают что-нибудь на подобие “почему вы хотите работать у нас” или сопроводительное письмо или тому подобные вещи. Раньше я очень старался, расписывал это всё. С нулевым результатом (реально ни разу где я заполнял подобные “бесполезные” вещи). Потом просто заряжал нейронку - время сокращается с 1-2 часов до 10 минут (запрос-проверка-коррекция). Но при этом я регулярно пробую разные нейронки в своей сфере, особенно когда у меня бывает какой-то затык при решении задачи. Да, они выдают результат который будет работать и который я “на коленке” представлял ещё до запроса, но я такого не использую потому что я знаю ПОЧЕМУ это плохо использовать (с т.з. производительности). Да, предлагаемые подходы будут работать хорошо только при определённых условиях, которых ну единичные случаи. А потом я неожиданно осознал на что похоже то что мне пытались впарить нейронки. А похоже оказалось на тот код, что я видел в проде и который жрёт и тормозит как не в себя. Последним гвоздём в гроб ИИ оказалсь история когда человек работавший несколько лет (если не десятков) ДБА на вопрос “на какую версию лучше обновиться” ответил буквально цитата “я задал немного видоизменённый запрос нейронке и вот что она ответила” и копипасту из чатжпт. После этого я уже начинаю быть уверенным, что ИИ нужен тем, у кого не хватает собственного И. Ну и плюс тем, кто хочет пообщаться а не находит с кем. Ах да, на кучу воды в письма, чтоб спросить суперобтекаемо, что буквально пропадает сама идея вопроса - на такое мне не хватает И, что приходится использовать нейронки.

Классный хабр из нескольких абзацев слепил царь-сиську, что читать невозможно.

Визивиг или МД?
В МД признак абзаца (переноса строки) это два пробела на конце строки или два энтера подряд.

Но тогда будет пустая строка между.

МД…

Я иногда забываю, что надо перепроверять за теми кто знает что я на самом деле хотел напечатать вместо того, что реально напечатал. Хорошо хоть при этом не надо делать два прихлопа и три притопа (ну это уже брюзжание)…

MD это язык разметки, он делает ровно то что ему скажешь.

Конечно, как и любой другой язык.

В простом тексте как пишешь CRLF (или просто LF для *nix) обозначает новую строку.

В МД новая строка обозначает CRLFCRLF (или LFLF) или char(32) + char(32)

В каком-нибудь ещё более простом языке разметки будет что-то типа комбо Джакса из МК3 - C B C C A B A C + char(32) + char(13) + char(10), ведь это супер понятно и просто запомнить, да?

Ну так разметка - это не простой текст. Тут надо одновременно сделать абзац (одну строчку, разбиваемую на несколько в зависимости от ширины окна) и чтобы у того, кто этот абзац пишет в блокноте он на экран помещался. В HTML это
, в МД “пробел пробел перенос строки”

Кажется максимально просто одновременно не перегружая текст. Можете придумать что-то лучше, не прибегая к редакторам с автопереносом строк?

Ээээ, изобретение бумеров, которое называет Enter? Один раз нажал и вуаля - новая строка :).

Но это не наш подход, нам надо проще - это два пробела или два энтера. Потому я и предложил сделать ещё проще - станцевать на клавиатуре ну и для ещё большего упрощения добавить несколько непечатных симоволов аски, которые только с помощью альта набрать можно. И станет совсем просто :))

Повторяю проблему еще раз: разработчик с редактором без автопереноса строк хочет набрать абзац длинной 1000 символов и при этом видеть его на экране без горизонтального скролла. Ваше решение?

Повторяю решение ещё раз: ручной перенос по кнопке Enter. Так было и в тотал коммандере и блокноте и в ее и т.д.

Также там два (и больше пробелов) было удобно для форматирования таблицы (т.к. 1 символ имел чёткую ширину независимо от символа). Представляю как накосовертило бы модный молодёжный редактор.

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

То есть мы согласились, что один ентер переносил нормально строку. Следующая (и другая) проблема со строками фиксированной ширины (когда перенос не только ручным, но и автоматическим по ширине), вот например в том числе и в ннтп-конференциях так и было. Однако простым скриптом миграции можно преобразовать все переносы (мы ведь не будем спорить, что лексикон и ннтп-конфы устаревшая вещь?) которые получились автоматически и вручную в нормальные при переносе/сохранении.

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

Нет, не согласились. Повторяю еще раз ситуацию. Вы вводите два абзаца в 1000 символов каждый, без горизонтального скрола и автоварпа. Как вы это сделаете с одним только энтером? Как потом различать, где вы энтер нажали, чтобы не скролить, а где сделали перенос абзаца?

Тогда не перепрыгивайте с вопроса на вопрос. Повторяю ещё раз ответ - 1000 символов, ентер, 1000 символов.

Задача два ответ - после отправки, и при последующей когда-нибудь необходимости декодировать, смотрим внутри код (или как оно называлось просмотр плейн-текста) и от него разбираем где энтер ручной, а где автоматический.

Так у вас не влезет 1000 символов в одну строку на экран. Это не удобно. Поэтому нужно средство для разделения на строки на экране разработчика. По условиям задачи редактор его не предоставляет.

Да, точно также как и два пробела. Один энтер прекрасно переносит строку, ровно настолько же как и два пробела.

Средство или автоврап, если действительно нужно смотреть на всю строку или Ф12 или зажатие ктрл (в зависимости от редактора). Если такого нет, значит нужно нормальный редактор удобный субъективно, а не изобретать колесо. Вполне и в ее работалось на 640*480 без авто-переносов, а все переносы были по ентеру. Если поведение два пробела (два ентера) = один ентер, то действие одно и тоже, просто изобрели суперудобство. Я и предложил сделать ещё более удобно “станцевать на клавиатуре ну и для ещё большего упрощения добавить несколько непечатных симоволов аски, которые только с помощью альта набрать можно” ну например из-за того, что абзацы неудобно на широкоформатниках разделяются.

640*480 без авто-переносов, а все переносы были по ентеру.

Угу, а новая строка - по <BR> Как только нам нужно разделить представление для разрабатывающего и читающего - сразу нужно два инструмента, и одного энтера начинает не хватать.

Ну да, опять начинаем прыгать с лексикона, ее, ннтп-конф, на хтмл (кстати он реально работал в плейн-тексте редакторов?).

Нет мы крутимся в одном месте - в языке разметки расположение текста (включая переносы строк) для пишущего и читающего часто нужно в разных местах. Поэтому инструмент переносов у пишущего и читающего разный. Энтер занят под пишущего, поэтому перенос строки для читающего делается иначе. В HTML одним способом, в XML другим, в MD третьим - но нигде не просто Энтер. Лексикон был приведен как раз в качестве примера того, что простое решение с энтером потом больно аукается. Поэтому так не делают.

Конечно, конечно. Либо переизобретём колесо, либо будем использовать инструменты не для задачи, либо будем мешать в одну кучу оправдывая крокодилов зелёным цветом.

Выглядит все так, как если бы автор хотел доказать, что все эти ИИ -- фигня и организовал эксперимент максимально так, чтобы подтвердить свою "правоту". Из одной крайности ушел в другую. Закономерно, его уволили (или сам уволился, пока не уволили, что то же самое).


Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации