beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2022-12-27 06:37 pm

ChatGPT для программиста

Я понял, что бы я хотел вот от этого ChatGPT. Это, конечно, нифига не интеллект. Но это — хрень, которая работает без ошибок и не задалбывается от рутины.

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

А хочу я написать эти 10 содержательных строчек, сказать "а теперь вставь все проверки и очистку как в соседних функциях" и получить на выходе код, обвешанный некоторой обвязкой. Можно ещё проверить на типовые ошибки типа buffer overflow. В общем, даже на первый взгляд производительность содержательно растёт в разы.
gul_kiev: (Default)

[personal profile] gul_kiev 2022-12-27 06:33 pm (UTC)(link)
Судя по описанию, вы хотите язык более высокого уровня, чем C. Или продвинутые макросы, что, впрочем, почти то же самое.

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

Возможно, из ChatGPT можно сделать хороший линтер. Но, опять же, он будет работать "скорее всего", и поломка им кода не будет означать ошибку в ChatGPT, в отличие от используемых сейчас линтеров и оптимизаторов, которые должны работать математически строго.
Edited 2022-12-27 18:40 (UTC)

[personal profile] alexott 2022-12-27 07:43 pm (UTC)(link)
Только хотел написать что за этим кодом надо будет столько проверять что не ясно насколько большой будет оверхед.

Я бы лучше смотрел в сторону лучших языков которые это дело автоматизируют.
yurikhan: (Default)

[personal profile] yurikhan 2022-12-28 06:07 am (UTC)(link)

Вот пусть он приходит в код-ревью и комментирует: «а вот тут не забыли единицу отнять?» И дальше разработчик комментирует, почему именно в этом месте отнимание единицы не нужно, резолвит тред и мёржит код.