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

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

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

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

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

[personal profile] yurikhan 2022-12-27 06:02 pm (UTC)(link)

В некоторых языках, отличных от C, проверки, что инициализация и содержательное удались, и ругань по этому поводу, прячутся в автопроброс исключений. А очистка ресурсов — в детерминированно вызываемые деструкторы, или в менеджеры контекстов, или в финализаторы. И, казалось бы, никакой ChatGPT не нужен. Однако, тем не менее, люди находят всё новые грабли, на которые наступать.

livelight: (hot)

[personal profile] livelight 2022-12-27 06:44 pm (UTC)(link)
А для языков без автопроброса исключений уже придумали, как получить такой прирост понятности (введя оный автопроброс), и реализовали ещё на технологиях ещё 50-летней давности :)