АІ чат-боти створюють ПЗ менше ніж за 7 хвилин і з витратами менше $1

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Наткнувся на статтю, в якій описується повний цикл створення ПЗ за допомогою ШІ з мінімальною участю людини. Висновок проведеного дослідження — це дешево і якісно, отже в це слід інвестувати.
Розумію, що ця тема вже трохи набридла і ідея «непотрібності» людей в розробці та тестуванні ПЗ стара як світ, проте вирішив поділитися, кому цікаво) і почитати ваші думки)
Ось посилання на оригінал статті:
www.businessinsider.com/...​-than-dollar-study-2023-9

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Наткнувся на статтю, в якій описується повний цикл створення ПЗ за допомогою ШІ з мінімальною участю людини.

Як на мене це клікбейтний заголовок плюс не звивуюся, якщо таку статтю написав сам ChatGPT.

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

Недавно мені чат жпт так впевнено і з прикладами коду розповів про одну бібліотеку. А на уточнююче питання сказав що він не знає про що я і взагалі ця бібліотека скоріш всього вийшла після кінця 21 року. А тому він не вкурсі що це таке. Оо.

GPT хорош как вспомогательный инструмент в умелых руках, и то не во всех;)
Весь хайп вокруг него не больше чем «технологический оптимизм». Любая технология в начале воспринимается крайне оптимистично, когда люди думают — Ну всё, теперь мы сможем решить/закрыть с помощью этой технологии «все» свои проблемы. Потом происходит разочарование и выход на плато продуктивности.

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

P.S.
Технологический оптимизм свойственен человеку. В нас всегда живёт желание перепрыгнуть сложность, найти обходной путь. Но так не работает. Сложная задача требует некого «смирения», когда нужно сесть и решить, и другого рабочего варианта попросту нет.

Нажаль, навколо GPT багато хайпу та клікбейту.
Тут я дав розгорнуту відповіть, на рахунок перспектив AI
dou.ua/...​rums/topic/44975/#2693836

“By the end of this decade (2030), we will be extending the healthy human lifespan by decades.
Your job is not to die from something stupid in the interim.”

twitter.com/...​tatus/1698426443796038043

А у деяких ще скептицизм по поводу написання коду

Шо, опять? У кого в этот раз украли код?

ІМХО, АІ спровокує щось схоже як коли загнувся асемблер і зявились ООП, фреймворки.

Вже зараз воно генерить складні SQL квері, ± робочі куски коду. І це технологія стала публічною тільки пів року тому.

Відразу змін не буде, думаю все почнеться з дуже технічних областей і буде рухатись в сторну бізнес фіч (де багато залежить від людей які не вміють однозначно виражати свої думки).
Тобто спершу Гугл/MS чи Амазон прикрутять до своїх клаудів віртуальних девопсів, потім авто тести, потім Б2Б девелопмент і в кінці Б2С.

Вже зараз воно генерить складні SQL квері, ± робочі куски коду.

Тре постійно розуміти що воно не генерує нових знань. Все на що воно здатне це, маючи контекст, перевести з людської мови на формальну. Так, це допомога, інколи значна допомога бо треба тримати у голові, умовно, синтаксис SQL з особливостями для обраної бази і не припуститися помилок у процесі перекладу.

Все на що воно здатне це, маючи контекст, перевести з людської мови на формальну

Так це і є робота програміста, слова продукт овнера перевести в код)

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

Просто ти використовував його не по призначеню, не там де треба. Треба знати його можливості і обмеження, знати свої можливості і обмеження, і відповідно приміняти. Є купа задач де простіше самому зробити ніж намагатися комусь пояснити що вимагається, особливо якщо намагатися пояснити AI який не знає контексту, а не колезі який на проекті 5 років.

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

Ну... одна з особливостей, що як тільки мова йде про те, про ще не пишуть на кожному кутку в інтернету, то часто нейромережа або починає фантазувати, або поводиться як Вовочка, який вивчив на екзамен лише квиток про блохи, але перший квиток був про собаки
— Собаки це тварини, у них є хутро, в хутрі живуть блохи, а блохи це...
— Ой, тебе щось не туди занесло. Візьми інший квиток
— Коти. Це тварини, у них є хутро, в хутрі живуть блохи, а блохи це...
— Ой, тебе щось не туди занесло. Візьми інший квиток
— Риби. Ці тварини живуть у воді, тому в них немає хутра. Але якби вони жити на суші, то в них було б хутро, й там жили би блохи, а блохи це...

Ну... із останнього, хотів просто щоб ChatGPT по коду видав, яке саме розширення C використовується, але він цього ніяк не міг дотямити:

Me: Я натрапив на наступний код на Сі

typedef struct QUIC_CONNECTION {

#ifdef __cplusplus
    struct QUIC_HANDLE _;
#else
    struct QUIC_HANDLE;
#endif

Що в даному контексті означає struct `QUIC_HANDLE`? Це більше виглядає як наслідування структури, ніж об’ява.

ChatGPT:
У даному коді struct QUIC_HANDLE використовується як неповна (incomplete) об’ява структури. Це означає, що структура QUIC_HANDLE не описується в цьому місці коду.
Bla-bla-bla ще на п’ять абзаців, які я далі буду скіпати

Me:
Але далі в коді можна знайти

void test(struct QUIC_CONNECTION * conn)
{
    struct QUIC_HANDLE * handle = (struct QUIC_HANDLE*)conn;
}

Тобто це дійсно наслідування структури. Може є спеціальне розширення у компілятора gcc?

ChatGPT:
Так, ви абсолютно праві, цей код насправді використовує наслідування структури. У мові C немає насправді механізму наслідування класів, як у C++. У C ви не можете наслідувати структуру напряму, але ви можете отримати схожий ефект, вказавши на посилання на структуру, як в цьому коді.
Це не є стандартною функціональністю мови C і не вимагає жодного спеціального розширення компілятора GCC. Ваш код просто використовує вказівники і приведення типів для досягнення цього ефекту.

Me:
Але ми повертаємося до синтаксису:

typedef struct QUIC_CONNECTION {

#ifdef __cplusplus
    struct QUIC_HANDLE _;
#else
    struct QUIC_HANDLE;
#endif

ChatGPT
Справді, мій попередній відповідь не повністю відповідає на ваше запитання. Давайте розглянемо фрагмент коду ще раз.
У фрагменті коду ви зводите структуру QUIC_CONNECTION, і в залежності від умови компіляції (яка перевіряє, чи код компілюється як C++), вибираєте різну оголошену структуру для включення в QUIC_CONNECTION.
Якщо код компілюється як C (або будь-яка інша мова, де вираз struct QUIC_HANDLE _; не підтримується), то ви просто оголошуєте структуру QUIC_HANDLE без створення змінної.

Me:
А який сенс для С++ оголошувати зміну, а для Сі робити незрозумілу об’яву структури саме у структурі?

ChatGPT:
Зазвичай, такий підхід використовується для забезпечення сумісності між C та C++ кодом. Ось кілька причин, чому це може бути корисним:
1. Сумісність мов
2. Зручність утримання
3. Спільна база коду

Me:
А може мова йде про -fms-extensions?

ChatGPT:
Ви правильно вказали на можливе використання розширень компілятора GCC, таких як -fms-extensions, які можуть змінювати поведінку компілятора і дозволяти деякі нестандартні функції або синтаксис.

Один із розширень -fms-extensions в GCC дозволяє оголошувати структури без імені (нескафандровані) всередині інших структур. Таким чином, код, який ви подали в своєму початковому запиті, може бути обумовлений бажанням використовувати це розширення, щоб створити структуру QUIC_CONNECTION і вкласти в неї структуру QUIC_HANDLE без імені.

Підписатись на коментарі