Entry tags:
ChatGPT для программиста
Я понял, что бы я хотел вот от этого ChatGPT. Это, конечно, нифига не интеллект. Но это — хрень, которая работает без ошибок и не задалбывается от рутины.
В моём любимом OpenSSL типичная функция на 10 строчек содержательной работы содержит 10 строчек инициализации, 40 строчек проверок того, что инициализация и содержательная работа удались (функция вернула нужное значение) и ругань по этому поводу, и ещё 10 строк очистка тех ресурсов, которые я насоздавал. И форматирование, которое, впрочем, можно поручить редактору, осталось понять, как именно.
А хочу я написать эти 10 содержательных строчек, сказать "а теперь вставь все проверки и очистку как в соседних функциях" и получить на выходе код, обвешанный некоторой обвязкой. Можно ещё проверить на типовые ошибки типа buffer overflow. В общем, даже на первый взгляд производительность содержательно растёт в разы.
В моём любимом OpenSSL типичная функция на 10 строчек содержательной работы содержит 10 строчек инициализации, 40 строчек проверок того, что инициализация и содержательная работа удались (функция вернула нужное значение) и ругань по этому поводу, и ещё 10 строк очистка тех ресурсов, которые я насоздавал. И форматирование, которое, впрочем, можно поручить редактору, осталось понять, как именно.
А хочу я написать эти 10 содержательных строчек, сказать "а теперь вставь все проверки и очистку как в соседних функциях" и получить на выходе код, обвешанный некоторой обвязкой. Можно ещё проверить на типовые ошибки типа buffer overflow. В общем, даже на первый взгляд производительность содержательно растёт в разы.
no subject
В некоторых языках, отличных от C, проверки, что инициализация и содержательное удались, и ругань по этому поводу, прячутся в автопроброс исключений. А очистка ресурсов — в детерминированно вызываемые деструкторы, или в менеджеры контекстов, или в финализаторы. И, казалось бы, никакой ChatGPT не нужен. Однако, тем не менее, люди находят всё новые грабли, на которые наступать.
(no subject)
(no subject)
no subject
Насчёт того, что ChatGPT работает без ошибок - ну это явно преувеличение. И дебажить его код - то ещё удовольствие. Причём, ошибки вполне человеческие: например, он запутался с приоритетами тернарного оператора и присваивания.
Возможно, из ChatGPT можно сделать хороший линтер. Но, опять же, он будет работать "скорее всего", и поломка им кода не будет означать ошибку в ChatGPT, в отличие от используемых сейчас линтеров и оптимизаторов, которые должны работать математически строго.
(no subject)
(no subject)
(no subject)
no subject
- Иваныч, приходи к нам обратно, нам программист нужен.
- Так у вас же обезьяна с GPT-3 есть.
- Обезьяна с GPT-3 уже тимлидом стала, нам опять программист нужен.
(no subject)
(no subject)
no subject
(no subject)
(no subject)
no subject
no subject
Мое такое ощущение, что тебе нужен dsl. Нет?
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Или оно не настолько единообразно, чтобы позволить такой подход?
Или мы боремся за такты, и нам всегда надо внутреннюю функцию инлайнить, чтобы сэкономить вызов, а компилятор такое колдунство не умеет?
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
А ход и логику выполнения надо либо контролировать, либо не контролировать, убирая под диван. На чём же и как сконцентрировать своё внимание в тексте – это вопрос может быть и к визуализатору текста.
no subject
no subject
О, а ещё за форматирование. Сейчас в C++-мире, за неимением лучшего, форматирование кода поручают clang-format’у. Который ужасен настолько, что считает допустимым мешать табы с пробелами. Нейронка, которая будет смотреть на весь уже имеемый стиль кода проекта, и форматировать последний дифф под него —
:take_my_money:
(на самом деле нет, take my employer’s money).(no subject)
(no subject)