Глупейшее "исследование" "Which Programming Language Is Best for Claude Code?", где меряется скорость генерации кода (быстрее хорошо) и количество строк на количество токенов (больше лучше), в результате которого оказывается что топчик - это Python и JavaScript, а Haskell и OCaml наихудшие из-за того, что не прошли какие-то там левые тесты.
Static typing prevents AI hallucination bugs!
No, skipping type annotations saves tokens!
Ну это всё тот же закон Гудхарта: если цель сохранение токенов, ну дык используйте тогда бесплатные модели :) И конечно оверхед тайп-чекинга обходится в разы дороже в токенах, если забыть про неуловимые логические ошибки.
Тут во-первых перепутаны причины и следствия: не Python и JavaScript наилучшие для Клода, а наоборот Клод работает эффективнее всего с этими языками просто потому, что по ним имеется огромное количество обучающего кода.
Во-вторых сермяга в том, что вот именно типы помогают нейросеткам в разы качественнее рассуждать (но не генерировать быстрее/дешевле), языки со статической типизацией (а в целом формальные языки) -- это не про "быстро", это про "точно".
Для популярных динамических языков самая частая ошибка -- логическая ошибка, а для языков со статической типизацией (особенно для функциональных языков) преобладают ошибки компиляции и рантайма.
(Вы же надеюсь знаете, в чём отличие логических ошибок от исключений? Исключение это деление на ноль, вылез null и т.п., а логическая ошибка -- это когда программа как бы работает, но делает не то (например выполняет сортировку не по возрастанию а по убыванию)).
Потому что языки с сильной статической типизацией (Haskell, Rust, OCaml) предъявляют жёсткие требования к корректности: агент уже не может схитрить и выдать что-то, что просто запустится - он обязан дать структурно верное решение.
Вот например серьёзное исследование от разработчиков гитхаба
"Why AI is pushing developers toward typed languages"
94% ошибок компиляции в коде, сгенерированном LLM, были вызваны ошибками несоответствия типов. То есть статическая типизация автоматически устраняет 94% потенциальных проблем, которые могли бы возникнуть при использовании динамического языка.
Формальные языки -- это инструмент качества, а не инструмент скорости и дешевизны. Так собственно в программной инженерии всегда и было задолго до нейросетей.
Post #2317
805

- ❤ 38
- ✍ 12
- 👍 2