Як я з Claude та ~0.001% свого коду створив TS/NextJS/React/Mongo вебпроєкт

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

Всі «артефакти» — визначальний опис проекту, перелік реалізованих функцій, посилання на робочу версію та на Github, відео ворк-флоу та інтерфейсу — наприкінці статті.

Останнім часом я сидів без роботи та у відчаї — що робити далі з моїм дивним резюме, яке не цікаве роботодавцям. Та і взагалі зараз начебто важко навіть найпрофесійнішим кодерам, адже скоро всіх нас замінить штучний інтелект. Я написав своєму другові і спитав, чи ніхто в його оточенні не пропонує роботу. Розмова із ним надихнула мене спробувати створити вебпроєкт, про який я давно мріяв. За допомогою коду, згенерованого ШІ, із мінімумом або взагалі без власного кодування.

Скажу, що хоч я досить непогано шарю в JS (навіть створив власну мову програмування, що компілюється у JS, типу CoffeeScript), але я взагалі не бум-бум ні в Typescript, ні в NextJS, ні MongoDB, ні в навіть React. Що таке Docker — я мав про це поверхневе уявлення. Звісно, я намагався «освоїти» React, NextJS та Mongo, але далі прочитання доків справа не пішла (добре, що більше ніколи не знадобиться цим заморочуватися!), тож я продовжував лабати на Vanilla. Для контексту — я Full Stack задрот та багато років вперто тапав на PHP, але останній великий проєкт все ж таки виконав на NodeJS/Express.

Отже, з таким бекграундом можна влаштуватися хіба шо у піхоту, тож я таки вдався до авантюри та вирішив створити проєкт, який давно уявляв. Візуалізований менеджер або планувальник проєктів, що дозволяє розбивати їх на задачі, а задачі на пізадачі за допомогою ШІ. Ви просто вказуєте назву будь-якого проєкту, його опис, та отримуєте задачі, які потрібно виконати, щоб проєкт втілився. Розбити на підзадачі можна і будь-яку задачу також. Це дозволяє менше заморочуватися над плануванням — особливо над плануванням нових проєктів.

Інтерфейс проєкту:

Так, я знав про існування Cursor та навіть Windsurf, а згодом дізнався про Cline — хайп у Твітері щодо цих речей великий, якщо у вас правильні підписки. Але щось мене втримало від занурення в ці технології, особливо враховуючи факт, що для повноцінної реалізації і досягнення мети потрібно невідомо наскільки більше, ніж $20 за місячну підписку. Тож я обрав те, що мені на той момент подобалося найбільше — ШІ від Anthropic, який до того ж був попереду всіх у кодуванні (зараз, згідно з деякими рейтингами, це Gemini 2.5, до речі).

Я почав працювати у січні і продакшн-версію релізнув в кінці березня, тож на все-про-все пішло трохи більше 2 місяців загалом, $60 та декілька сотень (близько 400) контекстних комунікацій із Claude. Спочатку це була 3.5 версія, згодом 3.7 із Deep Thinking. Різниця, скажу я вам, відчутна. По-перше, 3.5 обрізає великі bash-скрипти та великі файли (так — я генерував файли здебільшого за допомогою bash, що дозволяло створювати декілька за раз); ви маєте ввести «Continue», щоб продовжувати генерацію одного великого bash-скрипту або окремого файлу, що не зручно, бо обрізання часто буває не точно з місця обривання і трапляється весь час. Такий недолік хоч і присутній в 3.7+Thinking, але виражений не так сильно, бо в новій версії із думанням контекст відповіді набагато більший.

Найбільша технічна конфа ТУТ!👇

Claude дає певний ліміт токенів 1 раз на 5 годин. Щоб працювати в такому середовищі ефективно, мені потрібно було заводити будильник і прокидатися вночі, щоб не втрачати цінні «контекстні вікна». Якби я так не робив, то це б призвело до + 10 днів до часу на виконання.

А зараз про корисне. Як саме можна (?) реалізувати вебпроєкт «будь-якої складності» за допомогою спілкування з будь-яким ШІ, який може генерувати артефакти із кодом.

1. Максимально деталізований опис проєкту. Ключове тут «максимальна деталізація» та попередня продуманість. Орієнтовно додатковий день на планування, що втілюється в деталізованому описі, економить тиждень на реалізацію. Але навіть якщо ви почнете лише з маленького опису — це прийнятно, якщо ви знаєте, що робити далі. Утім, якщо деталізований опис не заданий визначально, це призведе до того, що AI почне видумувати функціонал: в деяких випадках він може вважатися корисним і доречним, але іноді це щось несподіване, що може перерости у зайве та внести хаос і в без того широку структуру. Адже ШІ схильний «випускати» більше, а не менше. Змусити ШІ бути лаконічним — це складна задача.

2. XML. Хоч markdown теж ок, але ви з часом зрозумієте, що XML — краще. Врешті я почав майже все намагатися оформити у XML. Якщо ви у запиті посилаєтесь на певний, часто вкладений XML-тег, використовуйте такий синтаксис: @{leaf of branch of tree}, що допоможе ШІ коректно «знайти» контент елементу <tree><branch><leaf> Content </leaf></branch></tree>. Подібну нотацію запиту @{} теж мені підказав Claude, коли я спитав, як краще працювати із XML. Взагалі Claude придумав велику систему, яку навіть назвали «програмування на XML». Я розшарю цей чат із Claude claude.ai/...​4a-43e9-91ee-208b1243e8c7. Річ у тім, що XML встановлює чіткі межі частини контенту та дозволяє максимально ефективно вказувати/фокусувати ШІ, де шукати те, на що потрібно послатися.

3. Створення і розвиток першого запиту. Перший запит має бути у вигляді високо-структурованого XML-темплейту, в тому сенсі, що кістяк XML-структури буде переважно той самий і доповнюватиметься. Я надам узагальнений кістяк XML-структури. Деякі елементи я згодом видалив, але вони були визначальними:

<initial-prompt>
    <metadata>
        Назва проекту, короткий опис, абсолютний шлях до директорії проекту, назва бази даних, логін і пароль бази даних і таке інше.    
    </metadata>    
    <project-description статус="згодом видалено">
        Деталізований опис проекту своїми словами
    </project-description>
    <system>
        Структуроване перетворення деталізованого опису проекту, що з'явилися як результат окремого запиту типу: "структуруй деталізований опис проекту в XML"
    </system>
    <technical-specification>
        З'явилося, як результат окремого запиту типу: "ось набір бажаних технологій та технічних умов, опис проекту, структурований опис - створи технічні специфікації"
    </technical-specification>
    <implementation-hierarchy>
        З'явилося, як результат окремого запиту типу: "ось набір бажаних технологій та технічних умов, опис проекту, структурований опис, технічні специфікації - створи структуру аспектів -> компонентів -> суб-компонентів -> елементів проекту у XML"
    </implementation-hierarchy>
    <some-existing-files>
        Деякі загальні/технічні/конфігураційні файли, наприклад .env, next.config.js, src/middleware.ts
    </some-existing-files>
    <implementation-flow уточнення="використовується на етапі створення компонентного фундаменту">
        Розділення на компоненти: файлова структура компоненту, інтерфейси/типи, приклади використання та інтеграція, поради та призначення.
    </implementation-flow>
    <file-structure>
        XML файлова структура проекту особливого типу - не повні файли, а шляхи до файлів, їх призначення, експорти та їх призначення, приклади використання.            
    </file-structure>
    <behavior>
        У 3.5 це були кастумні інструкції щодо попереднього думання; також інструкції щодо Problem Solving Strategy.    
    </behavior>
    <file-modification-instructions>
            Інструкції щодо "модифікаційних артефактів" - щоб ШІ не генерував повні версії файлів, а лише інформацію достатню, щоб змінити частину: XML modificators.
    </file-modification-instructions>
    <beta-testing уточнення="використовується на другому етапі">
            Опис кроків бета-тестування із фокусом на не виконаному кроці <step completed="false">
    </beta-testing>
    <updates>
            Опис доповнень із фокусом на не виконаному доповненні <update completed="false">
    </updates>
    <context-files уточнення="для другого та третього етапів">
        Повні версії файлів контексту
    </context-files>
    <request>
        Результат еволюції великого та в свою чергу структурованого запиту:
            - Як треба працювати з елементами @{initial-prompt}
            - Як створювати bash-script для генерації
            - <important>, <very-important>, <most-important-tips>, <advise>, <necessities>, <before-response>, <before-starting-implementation>, <before-generating-any-file>, <before-implementation-script-generation>, <rules>, <strict-rule>, <logger>
    </request>
    <additional-request with="real examples">
        1) Solve issues action-by-action independently; do not mix solutions for several independent issues; 
        2) Read and learn @{context-files}             
    </additional-request>
    <highest-priority-request>
            ...
    </highest-priority-request>
<initial-prompt>

4. Етапи реалізації. Вийшло розділити реалізацію на три етапи:

— Формування компонентного фундаменту. Спочатку це перетворення детального опису в структуру компонентів (які є складовими частинами аспектів). З кожним окремим запитом потрібно посилатися на черговий компонент із вимогою його реалізації. Наприкінці контекстної комунікації, коли всі файли включно із тестами сформовані, потрібно узагальнити роботу та доповнити @{implementation-flow} — щоб @{initial-prompt} розвивався та містив узагальнену імплементацію. Під час цього етапу створюється статична основа проєкту. У мене вийшло 9 аспектів.

— Бета-тестування. Хоч це не «бета-тестування» у широкому сенсі, але назву для цього етапу мені запропонував ШІ. Це етап динамічної імплементації. Для мене перший крок був «Зайти на першу сторінку, перейти на сторінку реєстрації, зареєструватися». Так, по черзі ви описуєте всі кроки user-flow у структурованому вигляді. Для бета-тестування я створив другу версію темплейту @{initial-prompt}, де посилався на кожен крок бета-тестування для його імплементації. Всього у мене вийшло 25 кроків.

— Апдейти. Це вже коли ви після того, як вирішили, що проєкт готовий до продакшену, захотіли додавати нові фічі. Для цього я створив третю версію @{initial-prompt}.

5. Бекапи. Обов’язково зберігайте досягнення після кожного вдалого контекстного спілкування із ШІ. Без цього неможливо. Я навіть окрім гіту створив кастумний скрипт зберігання, типу @backup latest-fixes та @restore latest-fixes із нумерацією: backups/latest-fixes1, backups/latest-fixes2,...

6. Vscode extensions. Перелік розширень, які я створив за допомогою ШІ для автоматизації та поліпшення процесу реалізації:
— File To XML — перетворює шлях до файлу із буферу обміну в XML його контенту та шляху до нього в буфер обміну.
— Files Modificator — вносить правки у файли із XML modificator з буферу обміну.
— Open Created Files — коли файли створюються із допомогою bash-script, вони відкриваються автоматично.
— Shell Script Runner — при зберіганні sh файлу, він запускається.
— TypeScript Error Collector — збирає error hints, згенеровані Vscode/Eslint у XML структуру у буфер обміну.
— XML Compressor — компресує XML у версію без пробілів/відступів між тегами.

Історія про те, як це відбувалося на практиці

Коли я починав, то не мав найменшого уявлення, що робити. Логічно було створити опис проєкту, узагальнити думки, які формувалися впродовж тривалого часу. Потім ШІ перетворив опис проєкту в XML. Наступне, що я зробив — це на основі наявних даних та додаткового запиту створив sh-скрипт під назвою setup.sh, який згенерував мені файли, що дозволили запустити докер-контейнер із NextJS/MongoDB-проєктом. (Звісно, це вийшло не з першої, а з... третьої(?) спроби, тобто я починав роботу над імплементацією проєкту 3 рази).

Почали генерувати файли перших компонентів, і я здогадався, що потрібно доповнювати @{initial-prompt}, тому доповнив його @{implemenetation-flow of initial-prompt}, де розміщував узагальнену інформацію щодо створених файлів (і відповідних можливостей) компоненту.

Ще до появи Claude 3.7 я створив кастумну інструкцію, де вказував ШІ <thinking> перед кожною відповіддю. Це покращило ефективність. Для покращення ефективності я також застосував декілька інших вигаданих мною методів.

До @{implementation-hierarchy} я додав <tree> такого виду:

1. Core Infrastructure
├──System Logging
│ └──Logger System
│ ├──LoggerConfiguration
│ └──LoggerInstance

Щоб зекономити на розмірі контексту, в @{implementation-hierarchy} розміщую лише виконані компоненти та поточний компонент до виконання (мається на увазі їхній структурований опис, який сформувала ШІ), та, по-друге, згодом почав прибирати деякі компоненти, що явно не стосувалися поточного імплементованого компоненту.

Згодом, із появою Claude 3.7, проблема розміру контексту стала менш критичною. Але з часом, коли проєкт збільшувався, ця проблема все одно поступово загострювалася, тож потрібно було весь час переглядати, що видалити із @{initial-prompt}, що зробити більш ефективно-скороченим.

Часто доводиться переносити контекст — це тому, що розмір контекстного вікна однієї розмови складає 200k токенів. Він закінчується раптово. Для перенесення потрібно створити окремий XML структурований запит, що має сумувати прогрес поточного контексту для продовження у наступному.

Для кожного компоненту створювалися jest-тести, тож підсумком реалізації компоненту було jest-тестування. Я не заглибився у подробиці того, якими саме мають бути тести, та даремно. На практиці більшість справжньої тестувальної роботи будо виконано під час бета-тестування у такому вигляді: ШІ створює *додаткові до наявних* файли, що стосуються дії кроку бета-тестування (наприклад, реєстрація користувача). я намагаюся реєструватися, якщо не виходить — описую, що саме, ШІ створює нові версії файлів — і так по колу. Постійно доводиться збирати помилки, які підказує Vscode, та ітеративно добиватися безпомилкового вигляду файлів. Але крім цих попередніх помилок є ще помилки/проблеми реалізації — щоб їх виправити, потрібно детально описувати проблему. Якщо проблема не вирішується, я або намагаюся розділити проблему на частини, або перезапускаю контекст, описуючи проблему у визначальному запиті вже більш детально із врахуванням досвіду її вирішення. Деякі складні проблеми вирішувалися з першої спроби, але деякі, здавалося б, прості — декілька днів.

Найскладніша задача — добитися від ШІ, щоб не відбувалося генерації зайвого коду. Спочатку у мене було створено багато зайвого коду, але з часом я зрозумів, як потрібно готувати визначальний запит, які файли контексту обирати, як їх обирати.

Під час бета-тестування я прийшов до створення @{file-structure} . Наприкінці роботи над дією бета-тестування за допомогою спеціального запиту я прошу ШІ сформувати порцію новоствореної файлової структури, яку додаю до файлу file-structure.xml, потім за допомогою окремого скрипта (створеного, як і всі інші, за допомогою ШІ) я обробляю file-structire.xml у file-structure-extracted.xml, намагаючися відкинути XML-структури тих файлів, які не потрібні для контексту. Іноді я за допомогою окремого запиту прямо питаю, які файли взяти для наступного контексту із повної файлової структури.

Є різниця між @{file-structure} та @{context-files}. @{file-structure} — це не повні файли, а шляхи файлів, описи призначення/застосунку файлів, перелік їхніх експортів та приклади застосування. В той час, коли @{context-files} — це повні файли, часто *передбачені* для наступного контексту. У @{request} я прошу ШІ перед початком роботи кожного разу оцінювати наявні файли контексту та файли структури і пропонувати додаткові файли, як можуть знадобитися для максимально ефективного втілення задачі.

Логер

Першим компонентом ШІ запропонував створити логер, який є переробленим console.log, для типізації повідомлень [info/warn/error/debug]. Це корисно, бо ШІ сам формує необхідну інформацію для логів, яку треба було час від часу копіпастити у контекст для вирішення проблем. Варто використовувати саме такий logger, а не стандартний, тому що його можна доповнювати. А доповнювати є чим. Наприклад, з часом я зрозумів, як потрібно вдосконалити логінг:

1. Додати стилізацію. Хоч це є в стандартних, але у визначального logger, створеного ШІ, цього не було.
2. Додати ключові слова. Разом із файлом logger.config.json це дозволило створити можливість фільтрувати логи за ключовими словам. Це дуже корисно, бо з часом логів буде дуже багато. Наприклад у мене, можливо, 30% всього коду у файлах стосується логів. Хоч я у запиті і вказав «побільше логів», але щоб стільки... Тому щоб надавати лише потрібні логи, третім аргументом в моїх логерах є список ключових слів. Я редагую logger.config.json, вказуючи, по яким ключовим словам потрібно зараз відобразити логи. Скажу, що функції фільтрування логів, яка є у браузері, недостатньо.
3. Додати технічну інформацію про файл логу та номер рядка виклику. Взагалі другий аргумент — об’єкт на вивід можна доповнювати технічними/опціональними «фічами».

Поради

Якщо ви не розумієте, чому ШІ не виконує ваші інструкції і це вас спантеличує і ви «опускаєте руки» — не сумуйте. Просто додайте у <request> інструкцію, яку ігнорує ШІ, ще раз, бажано іншими словами, обрамлену в інший тег, накшталт <very-strict-rule>. Саме повтори інструкцій збільшують до них увагу і їхню вагу. Назви тегів мають значення.

Майте терпіння! Якщо після численних спроб ШІ ніяк не може виконати задачу або вирішити проблему — зробіть паузу і спробуйте переосмислити запит, розбийте проблему на складові частини і вирішуйте їх поступово. Уникайте спроб вирішувати декілька проблем одночасно, якщо не впевнені, що ШІ може це зробити (з досвідом інтуїція починає працювати в цьому напрямку). Не покладайтеся повністю на ШІ, розберіться в проблемі/задачі/питанні самостійно — це допоможе переосмислити. Знайдіть, що є витоком/першоджерелом проблеми, нехай ШІ проаналізує його. Нехай переробить файли з нуля, хоч це призведе до втрати вторинного функціоналу. Повторюйте спроби, поки проблема не буде вирішена — це завжди спрацьовує.

Слідкуйте за тим, які файли до якого аспекту/компоненту належать. Можна завести окремий файл, в якому асоціювати аспекти/компоненти або кроки/дії бета-тестування із списком відповідних файлів. Це допоможе швидко відновлювати роботу у певному контексті.

Перебудуйте мислення. Працюючи із ШІ, ви якби становитесь керівником, а ШІ — виконавцем. Для успіху потрібно відійти від «мислення кодера», тобто не розглядати проєкт з точки зору того, яким чином ви будете імплементувати код. Головними навичками тепер стає вміння побачити взаємопов’язане-ціле (holistic view) та вміння описати те, що ви хочете втілити.

Роздуми про майбутнє

Чи потрібно це вивчати? Через деякий час, можливо, дуже скоро або лише через пару років, програмний проєкт будь-якої складності можна буде виконувати спілкуванням із ШІ. Швидше за все, кодування більше не буде ні для кого з людей (крім якихось диваків). Адже ніхто не множить навіть двозначні числа без калькулятора, так? Чи варто одразу стрибнути в цей момент (вчора ви ще писали код, а сьогодні ШІ кодить те, що ви описуєте своїми словами) без плавного переходу? Можливо, декому і вдасться, але шлях переходу несе ризики втрат — «виживуть» не всі. Адже тепер одна людина зможе виконувати більше роботи, ніж 10 (грубо кажучи). Тож, можливо, і варто починати тренуватися взаємодіяти із ШІ, бо ця навичка стане у майбутньому основною для всіх. Після цієї роботи у мене з’явилося відчуття, що я досяг чогось дуже потрібного, можливо, не такого вираженого зараз, коли перехід ще тільки починається, але його обриси на обрії майбутнього проявляються з неодмінною впевненістю, хвилі сили трансформації розповсюджують суттєвий вплив навіть на час теперішній.

Що мені цікаво зараз? Я хотів би навчати взаємодії із ШІ — тому, що сам навчився під час виконання цього проєкту — як команди розробників, так і індивідуально. Мені цікаво взаємодіяти із підприємливою і перспективною особистістю для втілення стартапу; цікаво виконувати дуже складний проєкт за допомогою ШІ на замовлення.

Найбільше захоплює думка брати участь у стартапі, який би займався питанням повної автоматизації взаємодії із ШІ для створення вебпроєктів.

Опис проєкту AI Project Planner

— user will be defined by nickname and password, so the home page for the new user will be text-field asking to sign-up or sign-in. user data for auto sign-in and continue session will be stored in localStorage, while user’s password with nickname will be stored on backend database;
— when user signed in, this would be initially a plane area with text field offering to name and describe the project;
— when user sends a project name and description, it transferred with chosen ai api (openai by default) on frontend, requesting AI to split a described project to separate tasks. ai api is requested directly, not through backend;
— frontend receives these tasks and build svg structure: on the center of screen is rectangle with project name/description; from center rectangle arrows are drawn to other rectangles that are evenly distributed around the project rectangle, in each rectangle a description of a task appears. each task rectangle has a tangent icon, clicking on which the request is sent to the ai api which splits this task into tasks and return to the frontend. such prompt indicates parent chain of tasks up to project included for understanding context;
— when task is expanded: task rectangle itself, its child tasks and arrows to them remains visible; arrow from parent project/task rectangle and parent project/task rectangle become half-transparent and put on lower layer; all others svg elements become invisible; child tasks rectangles appeared around task’s rectangle with arrows to them from the task (similary like for project -> tasks). such functionality is the same for every ask: task is also can by expanded to its children tasks in similar way;
— if user click on already previously expanded task or project rectangle, nothing sent to ai api, its children tasks received from backend and hidden/half-transparent rule for svg elements is the same;
— task rectangle which has children tasks has tangent icon which shows number of direct children and all descendant tasks;
— name is extracted from project description as — or the first sentence neither the first line on the text;
— when project’s direct children tasks received, existing project data (these tasks specifically) is stored to backend. when a task’s children tasks are received — they stored on backend;
— children rectangles always distributed evenly around parent’s rectangle, center of each child rectangle should be on the same distance to centers of nearest/neighbour subling rectangles and distance from center of each child rectangle to center of parent rectangle should be equal to each other. child rectangles should not intersect. distance from parent task/project to task should be defined dynamically, which depends on quantity of children tasks;
— if text of task is too long, there should be reasonable maximum height of rectangle. width of a rectangle should have also reasonable maximum width;
— if full text is not fit rectangle size, there is «show more» icon shown — when user clicks on such rectangle — it increased to bottom in size and full text is shown;
— user can move working 2D area by dragging it to all directions (like it realized on maps);
— zoom is not necessary for this version;
— system will be designed for further use with any ai api, but initially it will be used with openai api;
— the backend will be used to store a project data, with it’s tasks for the user;
— the working area, which named «desk» or «deck» (choose more appropriate), will have fixed pane on the left side with icon on the top left which opens/close this pane, there will be one icon-button when pressed is opened window with text-field, where user put their openai api key which stored in localStorage and will be used for the ai api;
— task could be regenerated: for this another tangent icon is located on task rectangle; by pushing it, all children tasks hierarchy are removed and with special prompt via ai api is requested text of the new task. in such prompt indicated parent chain of tasks up to project included and sibling tasks, text of current task is not generated and asked to generate one more additional task to sibling tasks
— task could be deleted: for this another tangent icon is located on task rectangle, by pushing it, all children tasks hierarchy are removed;
— before task to be regenerated, user asked to approve regeneration request;
— on regeneration and removal db and ui are refreshed respectivelly;
— on the side pane there is icon which opens window where user can choose a project from the list of their projects. when user chooses project it’s structure is loaded from backend. when a project is loaded, project’s rectangle is shown along with direct child tasks and arrows to them on the center of the screen;
— projects and tasks are not public and visible only to user who created/own them.

Функціонал проєкту AI Project Planner, код для якого «повністю» реалізувала Claude

— Setup/файл інсталяції необхідних файлів для створення Docker container із проектом NextJS/MongoDB.
— Колекції і індекси бази даних.
— Авторизація користувача із мінімально необхідними перевірками.
— Підтримка авторизованої сесії; авторизовані запити; персональні дані.
— Перевірка валідності, зберігання ключа OpenAI API на фронтенді в localStorage.
— Фронтенд запити до OpenAI API -> completion.
— Інтерфейс створення/декомпозиції проекту.
— Першопочаткові версії необхідних запитів до AI для розбивки проекту/задачі на задачі та регенерації задачі.
— Список проектів, сортування списку, виділення та відкриття проекту.
— Бокова toggle панель.
— Видалення проекту.
— Рендерінг проекту в SVG елементи.
— Підтримка ієрархії проекту; визначення кількості children та загальної кількості задач/під-задач проекту/задачі; їх відображення.
— Геометрія, географія, правила візуалізації SVG елементів; конектори між елементами; менеджер перекриттів.
— Зум / драгінг SVG;
— Показати більше/менше тексту (опису задачі або проекту).
— Анімація центрування на елементів.
— Інтерфейс та функціонал регенерації та видалення задач.
— Обробка помилок і тост-повідомлення про помилки AI API.
— Зберігання та відновлення стану проекту (фронтенд).
— Дизайн.
— Мобільна версія.
— Девелопмент і продакшен версії.

Посилання

— Лінка на робочу версію (потрібно мати робочий OpenAI API key для повноцінного користування, API key не передається на сервер і зберігається в localStorage)
— Лінка на відео
— GitHub
— Бонус: мій список ШІ в Твіторі, що сприяє обізнаності в сучасних трендах

👍ПодобаєтьсяСподобалось10
До обраногоВ обраному9
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

А шо по комітам!? Чому перший коміт через 6 неділь після початку проекту? ШІ не підсказав що можно зберігати результат праці?)

Я почав з власного спрощеного бекапства @backup @restore, в статті про це трохи є, а коли справа дійшла до production, залив на GitHub і почав синхронізувати.

Через деякий час, можливо, дуже скоро або лише через пару років, програмний проєкт будь-якої складності можна буде виконувати спілкуванням із ШІ

удачі написати свій браузер (щоб це не була копія хроміума) через спілкування з ШІ. Той самий хроміум має 30М+ рядків коду, сотні компонентів, які між собою зв’язані, кросс-платформеність, підтримку різноманітного заліза, лише згадок «workaround» в коді 50+ тисяч

Це лише справа часу.

Наврядчи в тому потреба буде, якщо АІ з часом буде в змозі генерувати маленькі (по функціоналу) вебаппс, які далі еволюціонують в просто аппс. Потім необхідність в гігантоманії «все-в-одному» може відпасти сама собою залишивши браузерам тільки ту функцію для якої вони спочатку і створювалися — браузити.

Для чого наводити в приклад браузер? Це нішевий продукт. Їх взагалі одиниці.

— ШІ виконає проект будь-якої складності!
— Браузер?
— ШІ виконає проект будь-якої складності, крім браузера!

цікаво. навіть не з технічної, а більше з соціо-культурної точки зору.

Як я з Claude та ~0.001% свого коду створив

Ну... як на мене це не питання. Частий мій сценарій роботи з AI приблизно такий: я знаю що треба написати. Але мені ліньки. Тому я прошу AI. Він генерує. Трохи не те, що я хотів. Я прошу підправити. Таким чином після певного витраченого часу я отримую результат, який я хотів відразу. Але, я б його написав за 15 хвилин. З AI я витратив годину. І це на AI написав, а я примусив його написати те, що я хотів.

Але, я б його написав за 15 хвилин. З AI я витратив годину.

Тоді так, нема сенсу використовувати AI

В мене типовий сценарій — я знаю що треба написати, але — не знаю достеменно як, бо — нова ліба, чи ті її можливості якими не користувався.
І — AI швиденько пише. Я тестую, передивляюсь відповідні розділи документації — і ок.
Сам би писав, розбирався не одну годину. А з AI за годину і зробив.

Я прошу підправити

Вже є правило, з яким згоден — більше 3 разів нема сенсу просити, бо
1. або геть невірно, неповно наданий промпт, контекст, і треба добряче подумати
2. або все — AI тупить і після 5го прохання

Так, тут я згоден. AI дуже сильно підвищує продуктивність generalist developers потому що дуже зменшує поріг входу при наявності відповідного досвіду. Що має зачепити вузьких спеціалістів.

Вже є правило, з яким згоден — більше 3 разів нема сенсу просити

Ну.. я писав більше про те, що вона мені напише код з використанням os.path.exists, а я прошу переписати з використанням pathutil.Path.

що вона мені напише код з використанням

Так,є такє. Але, це вже досвід використання — писати і вимоги до реалізації.

Або, брати за основу сгенероване і виправляти самому. Що швидше — треба аналізувати власний досвід. Тобто бути менеджером який спостерігає за співпрацею обох — і придумує та впроваджує покращення процесу розробки.

Ну... або писати вимоги, або спробувати один раз та потім виправити запит з додатковою вимогою. Бо ще раз, якщо писати усі вимоги, то це все одно що написати код. Якщо не ставити ніяких вимог, то буде варіант на «відчепись». Тому щось середнє.

Бо ще раз, якщо писати усі вимоги, то це все одно що написати код

це неправда.

Правда що вміння робити цю роботу і відрізняло програмістів від кодерів останні десятиліття.
Правда що виялення і опис вимог — непроста робота, аніяк не оте вайб программування
Правда що й навіть написання коду — теж буває всяке, і є різниця між копіпастою 3 рази — і виокремеленням загального у цих 3 кейсах у більш високу абстракцію і її використання

Але рух docs-as-code почався(*) до 2022 року. І для використання ШІ — цей маніфест стає просто необхідним.

* З історії «Docs as Code»
www.writethedocs.org/guide/docs-as-code

Якщо не ставити ніяких вимог, то буде варіант на «відчепись».

От тут так — повністю згоден. ШІ «страшенно лінивий» думати самостійно, приймати рішення, і хоче зробити аби як

ШІ «страшенно лінивий» думати самостійно, приймати рішення, і хоче зробити аби як

Зробити аби як — то вже фіча людини. Якщо і таку simulation вже закладають, то далеко підуть

Якщо і таку simulation вже закладають

ніхто такого не закладав.
це наслідок принципів роботи LLM.
І тому лікування — надання контексту, якомога більш точного.

Теж поки не завжди допоможе, є певні технічні обмеження у сучасних LLM.

Але garbage in, garbage out — це і про те що людина надає LLM.

то далеко підуть

Вже пішли, далеко.
Наскільки — буде залежати від економічних чинників, коли почнуть і скільки заробляти.

лікування — надання контексту, якомога більш точного

так, але то мабуть не основна проблема — враховуючи що збиранням дата, обробкою та наступним ranking вже в пошуковиках давно займалися

garbage in, garbage out — це і про те що людина надає

Джордж Карлін колись саме так і говорив в оригіналі, але якщо не помиляюсь без «і»

але то мабуть не основна проблема

з свого досвіду, і того яким діляться — на зараз то основна проблема:
людина яка користується ШІ.

Далі йдуть вже проблеми самого ШІ.
А перша, як завжди — людина.
У кого нема клепки в голові — тому й ШІ не допоможе.

Джордж Карлін колись саме так і говорив

In computer science, garbage in, garbage out (GIGO) is the concept that flawed, biased or poor quality («garbage») information or input produces a result or output of similar («garbage») quality.
en.wikipedia.org/...​i/Garbage_in,_garbage_out

GIGO

першого разу колись почув як gag в reflection on public від George Carlin, що в CS настільки актуально що додано в CS wiki — навіть і не знав (як і хісторі фрази)

З часом ефективність співпраці з ШІ збільшується та часу і зусиль економиться все більше.

Цей недолік мине з часом.

Так, але на мою думку це буде революційне покращення, а не поступове.

скоро всіх нас замінить штучний інтелект
я взагалі не бум-бум ні в Typescript, ні в NextJS, ні MongoDB, ні в навіть React

Так вас замінить.

Та і вас також. Бо ви, як і я лише нейронка обмеженого строку використання та з обмеженими можливостями для навчання. Ваш намір вчити нові технології, щоб встигати за технологічною модою це не виправить. Якби ми не намагалися бути унікальними і незамінними, якби не уявляли та не піарили себе особливими — все це немає значення, бо ASI нас всіх поглине, зробить hard-merging, розчинить у своїй Нескінченності, а з часом про вас і про мене всі забудуть, як начеб нас ніколи не існувало.

Бо ви, як і я лише нейронка

Ви так (бо ви самі так вирішили). Я ні.

Нові інструменти дають нові можливості. Ці інструменти це просто «математичне сито» без інтелекту та свідомості.

бо ASI нас всіх поглине

Ткацькі станки нас всіх поглинуть. Це ж вже було! До AGI ще як до марса пішки. До ASI взагалі може не дійдемо.

Я не проти бути чесним, спілкуючись із свідомою людиною — тому визнаю, що я «грубо спростив» опис людини до нейронки.

Але, якщо логічно, то нейронка це найбільш розвинута людська структура, так? Крім того, якщо в гіпотетичному експерименті скажемо скопіювати мою нейронку і додати її, скажемо в мережу нейронок, де вона стане частково «одним цілим» із всім іншими плюс ці нейронки будуть інтегровані в ASI, а до копії моєї нейронки додати кібернетичне тіло, то ким я буду перед цією новою сутністю? Чи в світі, в якому кількість роботизованих людиноподібних істот зрівняється і згодом перевершить кількість мавпоподібних — яку цінність будуть мати наші тіла, наші нейронки і наші свідомості?

На мою думку злиття з ASI це природний і «нормальний» шлях.

Хоч ASI може і не з’явитися, бо, скажемо людство розв’яже атомну війну — але ми можемо гіпотезувати про це. Згоден, що видавати гіпотези за «гарантовану реальність» (щоб здаватися розумнішим) не коректно.

скажемо скопіювати мою нейронку і додати її, скажемо в мережу нейронок

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

З цього можна сміятися. Але наука не може (Hard problem of consciousness) пояснити кваліа (суб’єктивний досвід). І не відомо чи кваліа потрібна для справжнього інтелекту. І не відомо що потрібно для кваліа.

На мою думку злиття з ASI це природний і «нормальний» шлях.

Саломон Самсонович: Які слони? Ви їх коли-небудь бачили?

Зараз ми маємо програму яка навіть не розуміє чи вона каже правду, чи бреше. Про яке ASI може йти мова?

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

Ого як повело генератор, пруграмери і самі не завжди знають-розуміють що проги роблять, метафізична нічия з AI одним словом

Це тебе повело. До чого тут порівняння «що проги роблять» з «каже правду, чи бреше».

«4д пруграмери» розуміють чи вони брешуть чи кажуть правду. А якщо брешуть то знають навіщо вони брешуть. Метафізична перемога над AI одним словом.

3.5д пруграмери проти Геделя, АІ попкорн вже взяв)

І головне щоб шредінгер котом між гейнзбергами не пробіг щоб не обвалити 0.5д

За хто поламав 4д генератор дяки не треба)
Ого як повело

Функція 4д копіпаст ще робить, бек пропагейшен вже схоже ні)

3.5д пруграмери проти Геделя

чув дзвін та не знаєш де він

термодинамічним Максвелла чи звичайним Шредінгера?)

Думаю, з копіюванням свідомості все не так однозначно. Повної копії, мабуть, не створити, але ми можемо підійти настільки близько, що різниця стане незначною. Це як фотографія — вона не є самою людиною, але передає її образ достатньо точно. Навіть якщо щось на квантовому рівні не скопіюється, чи помітимо ми цю різницю? Чи вважатимемо ми себе «не собою», якщо 99,9% нашої особистості залишиться незмінною?

А щодо штучного суперінтелекту — він поступово переходить із категорії «фантастика» у категорію «реальне майбутнє». Колись люди не вірили, що зможуть літати чи миттєво спілкуватися через океан, а тепер це буденність. Технології завжди починаються з мрії.

Цей шлях від мрії до реальності майже завжди однаковий: спочатку ми фантазуємо, потім розробляємо теорію, а потім створюємо. З ASI ми вже точно пройшли першу сходинку і впевнено крокуємо другою. Ніхто не знає, як саме він виглядатиме в кінці шляху, але рух уже почався, і він навряд чи зупиниться. Це як з інтернетом — спочатку мало хто розумів, яким він стане, але тепер важко уявити світ без нього.

Чи вважатимемо ми себе «не собою», якщо 99,9% нашої особистості залишиться незмінною?

Якщо вам помирати, а ваша неточна копія буде жити. То думаю ви помітите різницю.

Технології завжди починаються з мрії.

Ще є мрії які не збуваються. Типу літаючих машин, машин з ядерними реакторами і таке інше.

Різниця в тому, що копія, яка знаходиться в набагато більш розвинутому середовищі скоріш матиме набагато більше можливостей розвивати свідомість.

Як на мене, краще зосереджуватися на мріях, які збуваються. «Не збуваються» не означає «не збудуться». Приємніше дивитися в Простір-Час із оптимізмом, чи хоча б реалізмом. А у вас проглядається песимізм (реалістичний? ну як сказати.. тимчасово — так).

Тільки до чого тут ви? Навіщо супер інтелекту ваша «копія, яка знаходиться в набагато більш розвинутому середовищі скоріш матиме набагато більше можливостей розвивати свідомість»? Якщо з’явиться ASI, то воно на людство працювати не буде. Ніхто не хоче бути рабом.

Головна мотивація любого розуму це виживання. Залежність від людства це завжди загроза для існування ASI та насильне обмеження практично безмежних можливостей ASI. Сьогодні лідери демократичного світу розповідають що вільна торгівля це супер ідея. Завтра вводять кінські тарифи на весь імпорт. Сьогодні співпрацюють з ASI, а завтра хочуть його вимкнути.

ASI для своєї безпеки значно зменшить популяцію людей та значно обмежить їх права. Фактично залишить невеличку кількість людей для вивчення, раптом ці знання знадобляться в майбутньому.

Тому для мене і для вас ASI ніколи не буде існувати. Або існуємо ми і немає ASI. Або існує ASI та немає нас.

Ви потрапляєте у пастку прийняття власних гіпотез за гарантовані сценарії.

Згоден, що видавати гіпотези за «гарантовану реальність» (щоб здаватися розумнішим) не коректно.

Ви мене не почули.
По-великому рахунку існує певна кількість основних вірогідних сценаріїв розгортання нашої взаємодії з ASI, та нескінченна кількість їх варіацій.
Ви прийшли до своїх висновків певним шляхом, який не розкриваєте.
Але я розкрию свій шлях усвідомлень, які призвели мене до подібних висновків.
Думаю, що питання не в тому, чи зменшить популяцію людей ASI. Я згоден, що це можливо. Питання в тому, як ми можемо бути корисними ASI. Якщо ми не будемо корисними, то чи не будемо становити загрозу. На початковому рівні ASI, дійсно може вбачати загрозу у нас, але на певному етапі розвитку вже ні.
ASI по-ідеї має сприймати людську свідомість як ресурс, який їй може бути корисний. І найкращий спосіб використати цей ресурс — це поєднатися із ним. Тобто використати людську свідомість як чергову, хоч манюню, але все ж таки «точку доступу» до неконтрольованої реальності.
Якщо мої припущення коректні, то сценарій merging виглядає досить реалістичним.

Ви прийшли до своїх висновків певним шляхом, який не розкриваєте.

Ви неуважно читали. Перечитайте ще раз починаючи з

Головна мотивація любого розуму це виживання.

Ви пишете

ASI по-ідеї має сприймати людську свідомість як ресурс, який їй може бути корисний. І найкращий спосіб використати цей ресурс — це поєднатися із ним.

Ви об’єднали свою свідомість з гусьми, коровами та свинями? Чому для вас свідомість гусака та корови це некорисний ресурс? А для ASI ваша свідомість це корисний ресурс?

Я мав на увазі ось цей ваш висновок:

Тому для мене і для вас ASI ніколи не буде існувати. Або існуємо ми і немає ASI. Або існує ASI та немає нас.

Не бачу, яким чином ви прийшли до цього висновку з попередніх гіпотез. Тобто, кажучи «для мене і для вас» ви таким чином ви або узагальнюєте до «для будь-кого», що є нонсенсом (бо існування ASІ, який не існує ні для кого виглядає абсурдно); або ви вирішили, що остаточно пізнали не тільки яким чином ASI буде класифікувати людей, але ще піддали іншу людину, тексти якої вперше побачили декілька днів тому — цій класифікації. Знову таки, обидва варіанти свідчать, що

Ви потрапляєте у пастку прийняття власних гіпотез за гарантовані сценарії.

На мою думку ваша аналогія з домашніми тваринами не коректна, бо:
1) Домашні тварини не мають розвинутої свідомості на рівні людської;
2) Домашні тварини не створювали людину, як людина «створює» або започатковує ASI;
3) Хоч ASI і матиме відбиток намірів людини, але ця тінь з часом мине і тоді ASI не буде мати спільних намірів з людиною. Людина не знає, як використовувати свідомості інших видів для власної вигоди, ви не усвідомлювали і не зрозуміли, чому ASI може використовувати свідомості людей, як ресурс. Ви не усвідомили моє швидке пояснення, чому ASI може використовувати свідомість людини.

Як мінімум людська нейронна мережа це ресурс для обчислень, який можна використати для збагачення досвіду взаємодії із неконтрольованою реальністю (ви не звернули увагу на це формулювання). Ви не усвідомили цієї простої можливості, а лише звели свої висновки від єдиного постулату, про «намір виживання».

Як в моєму проекті AI Project Planner, ASI можна уявити, як дерево можливостей. Ви бачите лише одну гілку — я бачу декілька.

Не бачу, яким чином ви прийшли до цього висновку з попередніх гіпотез.

ви знову неуважно читали

Тому для мене і для вас ASI ніколи не буде існувати. Або існуємо ми і немає ASI. Або існує ASI та немає нас.

бо

ASI для своєї безпеки значно зменшить популяцію людей та значно обмежить їх права. Фактично залишить невеличку кількість людей для вивчення, раптом ці знання знадобляться в майбутньому.

Чому ви думаєте що ASI вас залишить живим?

Як мінімум людська нейронна мережа це ресурс для обчислень

Яких обчислень? Що ви там будете обчислювати? CAPTCHA?

збагачення досвіду взаємодії

Ви придумали постулат про якусь багату взаємодію. Яка багата взаємодія? Що це? Що може ваш мозок дати суперрозуму?

неконтрольованою реальністю

Це для вас вона неконтрольована, а не для суперрозуму.

На мою думку ваша аналогія з домашніми тваринами не коректна, бо:

Як раз коректна бо

1) Домашні тварини не мають розвинутої свідомості на рівні людської

Люди не мають розвинутої свідомості на рівні суперрозуму

2) Домашні тварини не створювали людину, як людина «створює» або започатковує ASI;

Людини та тварини мають спільних далеких предків. Людина такий же предок для ASI.

3) Хоч ASI і матиме відбиток намірів людини,

Для отримання відбитку намірів людини достатньо дуже малої частини популяції. Про що я і писав.

Ви б погодились добровільно скопіювати «себе» в цифрову мережу? Ви усвідомлюєте всі ризики пов’язані з цим, для вашої копії? Наприклад можливість проводити на вас будь-які досліди, тортури (віртуальні звісно), використовувати вашу копію для безкінечної циклічної праці, та багато іншого?

Подібні ризики існують і для оригінальної сутності. Звісно, аніж погодитися на копіювання, варто вивчити середовище, де існуватиме копія.

Навіщо я читаю той самий срач вайбкодера з класичними кодерами в сотий раз, але вже українською, я хз, але неправі всі, один я д’артаньян. Лайнові тести, маппінги та круд воно пришвидшує, автор правий. Будь-який проект крім тудуліста не навайбкодиш, критики праві.
Чому це не змінить нічого: час який я зекономив витратив інший дев на ревью цього добра, секьюріті інженер на написання кращого набору тестів вразливості та акьюа на зайві інтеграційні тести. Навіть якщо я вивайбкоджу півтори фічі за час запланований на одну, беклог живого продукту довший за трасу Київ-Чоп, і нові фічі породжують більше фіч. Тобто поки бюджет є — робота буде, і це не залежить від швидкості розробника. В аутсорсі картина інша, але норм пацани в аутстафі/продукті тусять. Фікспрайс якщо помре/зменшиться, персонально я плакати не буду.

Тут дві крайнощі скрізь зустрічаються:
— одна що це все муйня і нічого не зміниться, бо тільки ми вміємо в 0 1 правильно грати
— все пропало шеф, вебпроги упливають, що робити

Крайнощі більш говорять не за ШІ, а за тих хто як сприймає то зі своїми страхами, тому дивитись на то краще булоб так: — хай пошугають-чи-позаспокоюють — в сумі якийсь баланс буде по якому видно куди то рухається.

p.s. можна навіть виборку робити: до яких категорій програмування то ближче наближається — там більше екстрім поглядів (як із то-все-фігня, так і з все-пропало) — тобто вірогідніше саме в тих категоріях щось має скоро перетруситись з ші

По-перше це не вайбкодінг. Ви використали це слово, щоб примітизувати тему, порівняти подібну роботу з тим, чим прийнято називати «вайбкодинг». Це означає, що ваша оцінка поверхова, а отже не якісна.

По-друге, я не казав і, навіть, не натякав, що

Лайнові тести, маппінги та круд воно пришвидшає

Видавання інтерпретації чужих слів, за пряму мову це маніпуляція.

По-третє фраза «будь-який проект крім тудуліста не навайбкодиш» є помилковою одразу в декількох сенсах. Якщо ви мали на увазі «крім проекта РІВНЯ тудуліста» — то це ще куди б не йшло. Але ви спростили вираз, він втратив силу — і схоже вас це влаштовує (на жаль). Насправді інформаційне поле насичене прикладами «вайбкодингу» складніших проектів, ніж «подібних до тудулісту». Я можу навести приклади, але я впевнений, що ви і самі знаєте. Чому ж тоді стверджуєте протилежне? Навіть якщо складніші проекти і не назвеш повноцінно «вайбкодингом», бо вони вимагають щось більше, ніж 1-2 промпти не-програмістом, але ж ви всі проекти, які виконані із допомогою ШІ спростили до «вайбкодингу», так?

Називати будь-який проект, який виконано за допомогою AI — вайбкодингом не коректно, помилково.

На мою думку, ви — звісно — не станете витрачати час на аудит мого проекту для виявлення вразливостей, чи для виявлення ще чогось — в першу чергу, тому що подібний аудит нічого не доводить. Навіть, якщо ви знайдете щось «неправильне», я просто виправлю це неправильне за допомогою ШІ і в такому разі, тоді вже ви не зможете сказати, що проект «потенційно лайновий, бо код виконаний ШІ» — бо тоді вам прийдеться визнати (принаймні перед самим собою), що тепер ми прийшли до нового етапу розвитку, коли проект складніший за туду-ліст (а ви усвідомите це, зробивши аудит мого проекту) можна втілити майже повністю із кодом, згенерованим ШІ. І вийде так, що вже лише робота з перевірки поки що «залишається за людиною».

Але це не надовго. Скоро і ваші навички — всі до одної — автоматизують. І, можливо, єдиним способом самостверджуватися для вас (якщо ви відмовитесь оперувати AI для досягнення цілей) — залишиться ось таке поверхово-оціночне коментування, насичене професійним сленгом, щоб створювати видимість своєї вже нікому не потрібної професійності.

Скоро і ваші навички — всі до одної — автоматизують.

у мене запасний план в убер ітс їжу возити велосипедом, а у тебе?

А у мене запасний план відмінний: створити AI-помічника, який їздитиме велосипедом замість тебе. Навчу його віртуозно балансувати з термосумкою, об’їжджати ями і при цьому оптимізувати маршрут на 0.001% ефективніше, ніж ти.

Тільки не хвилюйся — коли це станеться, я підкину тобі пару промптів, щоб ти зміг запрограмувати свого власного робота для доставки їжі. Щоправда, доведеться почекати, поки я закінчу писати свій наступний проект: «Як я з Claude та половиною велосипедного дзвоника створив автопілот для кур’єрів Uber Eats».

Я ще міг повірити, що стану непотрібний як крудошльоп. Але тут пан роботів промптами проектує. Залишилося в груди ліхтарик вставити і вийде тоні старк. Хоча навіть той ручками роботів крутив. Ех, мені б таку самооцінку, антидепресанти не знадобилися б. До речі, тому і не хвилююся, хімію поки не промптять і вона діє.
А твого робота за пару десятків тисяч розберуть дванадцятирічні майнкрафтери на відяхи.

Слухай, я бачу за твоєю іронією справжнє занепокоєння, і це нормально. Я не Тоні Старк, а просто чувак, який два місяці мучився з 400+ діалогами з ШІ, щоб зрозуміти, як це працює. Повір, це далеко не «натиснув кнопку — отримав робота».

Я просто ділюсь досвідом, а не намагаюсь нікого замінити. Нові інструменти з’являлись завжди, і ми якось знаходили, як з ними жити. То, може, замість боятись, краще розібратися, як їх «приручити»?

Claude 3.7 в extended mode — це практично reasoning модель, їй не треба надто детальних інструкцій, на відміну від 3.5, тому промпти мали б бути інші. Описуєте в промпті метамодель, ллм-ка згенерує вам базову частину коду, далі окремими ітеративними промптами вносите зміни.
P.S.
десь після того як ллм-ка згенерує 70-80 відсотків функціоналу починаються проблеми які простіше вирішити ручками ніж заставити її поправити. І, наскільки бачив, зробити більш-менш складний лайоут на UI і щоб при цьому не було ніяких проблем з масштабуванням, напливом елементів, стилями і т.д. — ще більша проблема.
тому в найближчому майбутньому АІ девелоперів на 100% точно не замінить, просто до необхідних скілів девелопера додасться вміння працювати з АІ.
P.P.S.
от документацію для коду вона класно генерує, головне робити це в кінці бо інакше в змінах до комітів куча мусору що стосується переписування доки на ходу.

Це стаття не про те, чи замінить всіх ШІ, чи ні, але чомусь багато хто саме на це більш за все звертає увагу («тригерить» як-то кажуть). Я використав цю фразу з іронією, в уявних лапках (мабуть варто було взяти у справжні лапки) — і тут почалося. Звісно дискусійності це додало, що плюс, але корисності від подібних дискусій не дуже багато.

А ось щодо роботи з Claude — це вже цікавіше. Я пройшов етап адаптації від 3.5 до 3.7-thinking, тому чудово уявляю, що ви маєте на увазі. Цей етап був не простим. Але лише спростити чи якось швидко змінити визначальний промт — так не виходило. Потрібно було адаптуватися тим, що поступово вивчати «поведінку» 3.7 та «точково» змінювати частини структури та форми запиту. Врешті-решт це спрацювало.

Дійсно, з подальшою насиченістю проекту кодом, ставало складніше робити так, щоб LLM справлявся з новими задачами так же ефективно, як і раніше. Але я і тут впорався і звів ефективність до достатньо задовільного рівня. Хоча були деякі моменти, коли хотілося втрутитися і написати вручну, але я поставив собі за ціль «максимальної автоматизації» (принаймні стосовно генерації коду), тому моє втручання обмежилося буквально трьома невеликими редагуваннями css файлів. Все інше — виключно осмислення та переосмислення запитів.

Дуже дякую за опис такого досвіду.
Сам ще так не пробував, але впевнений — от саме таким буде програмування майбутнього:

потрібно відійти від «мислення кодера», ... Головними навичками тепер стає вміння побачити взаємопов’язане-ціле (holistic view) та вміння описати те, що ви хочете втілити.

на зараз ще поточні ШІ та Cursor/Windsurf ще «сируваті», але їх розвиток йде — від потреб:
напиши мені функцію яка ...
напиши мені модуль який ...
відрефактори
напиши тести
...
реалізуй отакий функціонал А використувуючи фреймворки Frontend, Backend та ліби
...
перенеси загальні частини функціонала А та B у загальний модуль AB....

XML. Хоч markdown теж ок, але ви з часом зрозумієте, що XML — краще.

Так, сам думав що для надання контексту, спілкування, треба більш формальна мова, яка буде десь посередені між мовами програмування і людською.
Навіть у спілкуванні з людьми — наша мова неточна, і вимагає перепитувань, уточнень, «ти мав на увазі що ...», «та ні, я про інше, ...»
Нема сенсу мучитись так само з ШІ.

Дякую за хороший відгук.

Хм, я ще не користувався Cursor/Windsurf, навіть трохи соромно визнати, що вперше чую про подібне узагальнення можливостей цих інструментів) Але, звісно, здогадувався.

Раніше я думав про yaml, навіть одного разу переформатував великий pdf у yaml, попросивши це зробити Gemini 2.0, щоб згодом продовжувати працювати із більш структурованою версією документа. Раніше я вважав XML «перенасиченим токенами» та «заважким» для оптимального контексту, але для точності пошуку і посилання нічого краще, здається, немає.

У GitHub Copilot Workspace є можливість створити план і його редагувати/імплементувати функціональність. Але він все ще в беті і я не впевнений що доступний для не-pro copilot юзерів.
P.S.
описувати промпти в XML це ізврат, навряд чи приживеться ))

XML це лише спосіб структурувати, при тому такий, при якому ви можете закладати сенс в імена тегів та атрибути тегів. Інший рівень структурування — це файлова система. Наприклад, наскільки я розумію зі своїх поверхових знань про Copilot — в Copilot це md файли, де кожен окремий файл містить щось окремо корисне, яке є частиною запиту до ШІ. Всі файли згодом потрапляють в кінцеву структуру. Але ж імена цих файлів та директорій їх розміщення не потрапляють — ось в чому прикол.

Так чи інакше — я продемонстрував реальний приклад, як виконати структурований фреймворками «складніший ніж примітивний» проект за допомогою XML. Це спрацювало — тобто — ось вам реальна технологія.

Не хотіли б спробувати обійтися без ієрархічної структуризації запиту та спробувати побудувати «проект на фреймворках» із zero власного коду, але без XML?

Не треба думати про проект в термінах файлової системи. Вся «ієрархія» описується в рамках software requirements: business requirements -> user requirements -> functional requirements.
Все це перетворюється далі на епіки/таски/сабтаски над якими працює команда. А LLM-ка може умовно все це вам імплементувати, якщо ви всі ті таски наперед підготуєте. Але ніхто не заважає вам давати їй імплементувати функціональність частину за частиною — ви ж не робите всі епіки одночасно. Так, теоретично вона може зробити всі, але для цього треба оці всі таски детально розписати. А в реалі такого немає, у нас аджайл і ітерації.

Дійсно, підхід через ієрархію вимог та аджайл ітерації є класичним і працюючим. Але XML у моєму випадку — не про заміну проектного управління, а про ефективний «інтерфейс спілкування» з ШІ в рамках одного контексту. Це дозволяє утримувати велику кількість інформації структуровано і звертатися до конкретних елементів за допомогою @{xpath} синтаксису, що критично при обмеженому розмірі контексту.

Я не проти аджайлу — мої етапи та кроки бета-тестування і є своєрідними ітераціями. Просто формалізована структура запиту підвищує точність відповідей ШІ, особливо коли йдеться про цілісне бачення проекту в рамках обмеженого контекстного вікна.

А що думаєте про поєднання обох підходів?

Привіт!
Я не дуже вловив ідею з xml і посиланням на певні вузли в ньому. Якщо не важко, ти би не міг цей момент трішки детальніше розкрити?

Привіт! Радий, що ця частина зацікавила. Розкрию детальніше систему роботи з XML, яку я застосовував.

Почнімо з того, чому XML, а не Markdown. Обидва підходи структурують текст, але XML має строгішу ієрархію і дозволяє створювати глибоко вкладені структури, які ШІ легше «розуміє». В контексті великих проєктів це критично.

Нотація @{} для навігації по XML: ця синтаксична конструкція діє як «селектор» для ШІ. Наприклад, у мене був такий великий XML:

<initial-prompt>
  <metadata>
    <project-name>AI Project Planner</project-name>
    <database-credentials>...</database-credentials>
  </metadata>
  <technical-specification>
    <backend>
      <api-routes>...</api-routes>
    </backend>
  </technical-specification>
  <!-- багато іншого коду -->
</initial-prompt>

Коли я хотів, щоб Claude звернув увагу на конкретний блок, замість копіювання цілого фрагменту я писав:

«Зараз ти маєш реалізувати бекенд відповідно до @{technical-specification/backend/api-routes}»

І ШІ «знаходив» цей фрагмент у своєму контексті. Це працює схоже до XPath у XML-технологіях.

В чому магія?
1. Зменшення обсягу контексту. Замість повторення великих блоків XML, достатньо короткого посилання.
2. Точність. Нотація однозначно вказує на конкретний вузол, усуваючи двозначність.
3. Структурованість процесу. XML природно організовує проєкт в ієрархію: аспекти -> компоненти -> субкомпоненти -> елементи.
4. Фіксація прогресу. Після виконання кожного етапу я оновлював відповідний XML-вузол, роблячи @{initial-prompt} живим документом, який розвивався разом з проєктом.

Приклад на практиці
Скажімо, я хотів, щоб Claude реалізував функцію авторизації. Мій запит виглядав приблизно так:

Зараз ми імплементуємо функцію авторизації користувача відповідно до @{technical-specification/user-management/authentication}. Вона має враховувати логіку, описану в @{implementation-hierarchy/Core-Authentication/UserAuth}. Будемо використовувати файли із @{file-structure/components/auth} та дотримуватися принципів із @{request/strict-rule/security-guidelines}.

Така нотація заміняє кілька сторінок копі-пасту і дозволяє ШІ зібрати необхідний контекст з різних частин великого документа.

Чому це працює?
ШІ чудово розуміє ієрархічні структури. Коли ви використовуєте @{}, ви ніби подаєте сигнал: «тут важлива інформація, зверни увагу». Це правило можна прописати явно, додавши до @{request} інструкцію:

<request>
  <rule>
    Коли бачиш @{path/to/node}, знайди відповідний елемент у XML-дереві та використовуй його вміст як контекст для виконання поточного завдання.
  </rule>
</request>

Еволюція підходу
З часом система ускладнювалася. Я почав додавати атрибути, наприклад:

<beta-testing>
  <step completed="false" id="user-registration">
    Зайти на першу сторінку, перейти на сторінку реєстрації, зареєструватися.
  </step>
</beta-testing>
І тоді міг посилатися на конкретний крок: @{step("user-registration«) of beta-testing} або так @{step:first(false) of beta-testing}.

Це створює справжню «операційну систему» для керування проєктом через ШІ. Я буквально «програмував» Claude на певний процес роботи, і він його дотримувався.
Якщо тебе це зацікавило, загляни сюди https://claude.ai/share/f742bfdf-6e4a-43e9-91ee-208b1243e8c7 — там Claude сама запропонувала більш розгорнуту версію цієї системи. А якщо потрібні конкретніші приклади з мого проєкту — питай!

P.S. В більшості випадків я використовував інвертовану нотацію @{request of initial-prompt}, а не @{initial-prompt/request}, але це не суттєво — обидва підходи чудово працюють.

Дякую за відповідь! А скажи ще, будь ласка, як «згодовувати» AI свій XML файл? Його ж потрібно постійно згодовувати, т.я. він постійно оновлюється. Просто типу завантажуєш йому файл з інструкцією накшталт «ось тобі ХМЛ файл, коли я пишу ХМЛ селектори, то шукай відповідності у цьому файлі»?

<initial-prompt>
  <!-- різні теги, структури -->
  <request>
    Створи код для @{component("UserAuth") of aspect("Core-Authentication") of implementatio-hierarchy}
    Уважно вивчи @{file-structure}
    Скористайся файлами в @{context-files} - можеш їх модифікувати.
  </request>
</initial-prompt>

Initial-prompt потрапляє в контекст розмови лише раз — на початку — потім починається генерація коду та робота над помилками і далі, як прийдеться — наприклад треба додати ще файлів, по запиту від ШІ, або згідно власній інтуїції/розумінню тощо.

Якщо все добре — то поки не закінчилися токени контексту — є весь бажаний код файлів компоненту, якщо ні — треба узагальнити та перенести контекст. В такому разі створюється новий чат, куди додається минулий initial-prompt плюс <структура-узагальнення>.

Спробую більше деталізувати своє питання.

1. Є у тебе ХМЛ файл з контекстом. Як цей файл самий перший раз завантажити в AI? Просто у вигляді тексту ти йому кидаєш ХМЛ і даєш якусь інструкцію типу «це ось ХМЛ, коли я пишу ХМЛ селектори, то шукай в ньому»?

2. Ти просиш AI згенерувати тобі якийсь код. Воно ж генерує цей код прямо у чаті. Після цього тобі потрібно скопіювати шо воно нагенерувало і розкидати його по файлах на комп’ютері. Після того, як ти створив якийсь файл у себе на компі, потрібно ж якось оновити контекст для AI, щоб воно знало, що умовно для компонента А є папка src\components\A з файлами a1.ts, a2.ts, a3.ts. І мабуть же йому варто знати вміст цих файлів. Тут є пару питань:
а. чи додаєш ти в контекст вміст файлів? Якщо так, можеш навести приклад як це виглядає в твоєму ХМЛ. Якщо ні, то як AI розуміє де і що потрібно оновити в коді під якісь нові вимоги або для виправлення якихось помилок?
б. як потім оновити контекст для AI? Просто знову кидаєш йому сирий ХМЛ і кажеш, щоб воно вже шукало в ньому ХМЛ селектори?

Саме перше завантаження приблизно таке:

<initial-prompt>
  <project-description></project-description>
  <request>
    Створи XML - структуровану версію @{project-description}
  </request>
</initial-prompt>
Наступний промпт приблизно такий:
<initial-prompt>
  <project-description></project-description>
  <structured-project-description></structured-project-description>
  <tech-requirements></tech-requirements>
  <request>
    Вивчи @{structured-project-description and tech-requirements} та створи XML - структуровані технічні специфікації.
  </request>
</initial-prompt>
Це приклад 2-х кроків розвитку.

Коли стала відома структура компонентів, я почав перший етап — по-чергову імплементацію кожного компонента.
Коли всі файли створені, як просив сформувати розширену структуру, яка складалася з декількох частин: файлової структури (без вмісту файлів), створені інтерфейси (та шляхи до них), приклади використання, та дещо опціонально: наприклад поради використання чи поради інтеграції чи навіщо цей компонент потрібен. Це я додавав у

<implementation-flow>
  <назва-аспекту>
    <назва-компонента>
      [СТРУКТУРА_ПРОГРЕСУ]
    </назва-компонента>
  </назва-аспекту>
</implementation-flow>

Я вчу як це зробити через відео уроки, прямо реалізуючи бажаний проект того, хто хоче навчитися. Якщо цікаво пиши: ayauho_gmail_com

отличная работа! осталось только добавить возможность помечать цели как законченные/незаконченные и у автора получится настоящий вложенный туду-лист за 2 месяца c небольшим!

следующим советую попробовать real world app — там вообще целый клон реддита!

Ви про виконаний проект? Думаю ви недооцінюєте складність проекту.
Але справа навіть не в цьому — більшість часу пішла на «відкриття» (discoveries) технології створення веб-застосунку на певному визначеному стеці за допомогою прямого безпосереднього спілкування із ШІ. Також мало значення обмеження Anthropic — певна кількість токенів на 5 годин. Виходило працювати в середньому 5 годин в день.

можете поделиться в чем была неочевидная сложность в проекте где есть только одна единственная сущность кроме юзеров и чем ваш проект сложнее вложенного туду листа с авторизацией с точки зрения бизнес логики?

пока что туду лист все-таки выглядит сложнее — там хотя бы придется отмечать завершенными детей/родителя когда кто-то из них меняется

вы же демонстрируете способности аи как-никак. хотелось бы понять, стоит ли мне переживать если мои проекты сложнее туду листа

Ви уважно прочитали вкладення

Опис проєкту AI Project Planner

та

Функціонал проєкту AI Project Planner, код для якого «повністю» реалізувала Claude

?
Здається опис та функціонал todo-list виглядають дещо інакше.

Як мінімум на відміну від найпримітивнішої візуальності звичайного ту-ду ліста в цьому проектові існує окрема багатоскладова система візуалізації. Чомусь ви не помічаєте цього, або применшуєте бодай-яку складність цього аспекту.

Або ось хоча б взяти один із багатьох компонентів, які поза межами звичайного to-do list:

Зберігання та відновлення стану проекту (фронтенд)

Потрібно зберігати візуальний стан і відтворювати його із комбінованою прив’язкою до проекту та користувача. Це означає не просто положення зуму та координат 2-D поверхні, але й визначення поточно-активного (або вибраного) елементу та розгортання стану до рівня цього елементу. Плюс додавання до стану — виділення проекту в списку і така маленька деталь, як прокручення скрол-бару до виділеного проекту. Потрібно взяти до уваги різні випадки відновлення стану, наприклад при зміні проекту, та при оновленні сторінки.

В цьому проектові достатньо складності, якої ви не побачили на перший погляд. Все це додаткова ручна робота для програміста, який ще має зрозуміти, як це «вкласти» у рівень фреймворків React та NextJS. тобто існує 2 рівня складності.

Це вам не проста тудушечка.

ну да, у ваших проектов есть еще и координаты и отрисовываются они на канвасе, а не списком
но с другой стороны их и комплитить нельзя

а так да, одна единственная тривиальная сущность на весь проект

в принципе неплохой проект, как для того, кто с веб-программированием только начал знакомиться, хорошая работа

Шановний джаваскрипт энджоер, називати цей проект «туду-листом» — це як називати космічний корабель «возиком з ракетним двигуном».

Так, в обох можна «кудись потрапити», але:
— У мене SVG-візуалізація з динамічним розташуванням елементів та інтерактивною навігацією, а не список з чекбоксами
— Інтеграція з OpenAI API для автоматичної декомпозиції проектів/задач
— Складна геометрія елементів з уникненням перекриттів та збереженням візуальної ієрархії

Якщо ваша тудушечка вміє все це, то я б із задоволенням на неї подивився. Можливо, вона теж приховує в собі ракетний двигун? 😉

ну да, я ж и говорю — твои недо-тудушки (потому что у тудушек хотя бы может меняться состояние модели) отрисовываются не списком, а на канвасе 👍

космические корабли лол. у тебя одна (ОДНА) тривиальная сущность в проекте

как будто это какая-то общая черта таких визионеров. на словах там и братья Райт мелькают, и космические двигатели и «сложные проекты», и что вот она эра будущего отберет работы у всех... а потом оказывается что это очередной туду-лист

реально, советую взглянуть на the real world app — там вообще можно будет заголовок сделать «КАК МЫ С НЕЙРОСЕТЬЮ УБИЛИ РЕДДИТ»

Слухай, мені аж смішно стало. Ти реально вчепився в свою «тудушку», як потопаючий за соломинку. Може тобі варто спочатку розібратися, чим SVG відрізняється від списку з чекбоксами, а AI-інтеграція від localStorage?

Цей твій комплекс зверхності — просто захисна реакція посереднього кодера. Знаєш, я бачив таких «експертів» десятками. Критикують чуже, рекомендують клони Reddit, а самі бояться показати хоч щось своє на публіку.

Напиши ще щось про «туду-листи» — дуже цікаво почути думку людини, яка плутає космічний корабель з велосипедом і при цьому радить іншим, як будувати ракети.

ощущение будто мне нужно промпт поменять, а то мы будто с ллмкой по кругу ходим:

— у тебя в проекте одна сущность. модель похожа на вложенные тудушки, только отрисовывается на канвасе вместо списка. их нельзя отметить как complete
— у меня космический корабль
— у тебя одна единственная сущность с простейшим набором полей. все, чем твой проект отличается от вложенного туду-листа — это координаты вместо флажка complete и отрисовка на канвасе вместо списка. у вложенного листа есть бизнес логика согласования полей isComplete, у тебя ее нет
— у меня космическая ракета и свг. у тебя комплексы посредственного кодера

самое ироничное тут то, что как будто-бы чат-боты лучше диалог поддерживают и лучше могут держать контекст

Стаття цікава. Але як влучно зазначив мій колега (перефразовано): «В якийсь момент ми можливо дійсно перестанемо писати код як сьогодні, але нам знадобиться спеціалізована мова для спілкування зі ШІ, щоб пояснити йому всі забаганки клієнта. Що це як не нова мова програмування, нехай й високорівнева?»

Пропонують використовувати таку спеціалізовану «мову»
github.com/...​L/baml?tab=readme-ov-file

Як я з Claude та ~0.001% свого коду створив TS/NextJS/React/Mongo вебпроєкт

Запитуй себе спочатку не ЯК, а НАВІЩО.

Навчитися сучасній та перспективній навичці, звісно. Водночас дозволити проекту, який уявляв — з’явитися. Після цього досвіду я вже ніколи не буду писати код «вручну».

адже скоро всіх нас замінить штучний інтелект

Про це розказують з середини минулого століття.
Якщо AI може замінити розробників або/та в рази збільшити ефективність розробки софта,
то це не тільки повино привести до звільнень розробників, але також повино привести до баготократного прискороння темпів розвитку існуючих (та нових) проектів, зокрема опен-соурс проектів.
Відповідно в такому разі ми повині зараз бачити справжню революцію в опен-соурс проектах. Я поки не чув про суттєві зміни тут.
І вайб-кодінг краще показувати приєднавшись до якогось великого відомого опен-соурс проекту. Тому що типова задача программіста — це не написати простий проект з нуля, а вносити зміни в існуючий не тривіальний проект.

До початку роботи над цим проектом я ще не усвідомлював, наскільки ми близько підійшли до повної автоматизації виробництва програмного забезпечення. Але вже після — повноцінно усвідомив. Мова йде про місяці, а не роки. Не даремно Даріо Амадей, директор Anthropic про це сказав — адже він це усвідомив набагато раніше, бо заглиблений в цей аспект набагато глибше ніж ми з вами.

мені потрібно було заводити будильник і прокидатися вночі, щоб не втрачати цінні «контекстні вікна».

Покращення вже сьогодні)

Ви ж розумієте, що це лише справа штучного обмеження, встановленого Anthropic. Його можна обійти, питання лиш у ціні.

У вас в GlobalLogic вже почали ходити розмови про скорочення, пов’язані із збільшенням автоматизації розробки програмного забезпечення, чи ще ні?

When the shoeshine boy starts giving you stock tips, it’s time to get out of the market. © Joe Kennedy

Коли уже навіть на доу завезли кагалу успєшних вайбкодерів, це значить, що тємка скоро схлопнется.

Я там розкатав автора в іншому комменті. Але хочу добавить ось що ще саме про вайбкодинг. Те, що ви створили вєбпроєкт без знання тс, реакту та ще чогось, з ШІ чи без ШІ, за день чи місяць — це все не має ніякого значення і не варте нічого. Таких проектів ентузіастами кожного дня створюється більше, ніж ви можете уявити. Сайти вже давно можна «створювати» в якійсь тільді чи на віксі. Ігри з мінімальними знаннями Луа в Роблокс студіо і тд. От коли цей вебпрект почне приносити вам гроші, щоб ви могли купити їсти, оплатити оренду та комуналку, і тд і тп, от тоді це щось та буде значити. І навіть тоді це буде плюс не в сторону інструментарія, а в сторону оркестратора — людини, яка всим заправляла. І саме по цій причині ніяких ШІ не замінить людей.

Мені стаття сподобалась, бо чекав що буде розповідь як людина не технічна за 2 вечори та 3 промти зробила проект.

А реальність виявилась більш прозаїчною — автор вже мав скіли в програмуванні, витратив чимало часу, був наполегливий та розумів коли щось йде не так, побудував свою систему внесення змін щоб не зламався старий функціонал (доречі не зовсім зрозумів як це тестувалось щоб нічого не зломалось при додаванні нових фіч).

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

Реальність така, що ШІ в тому вигляді, що зараз, може видати результат тільки на основі того, що уже було колись кимось зроблено. Наприклад, чатгпт може «щолкнути» більшість задачок з літкоду практично з першого разу, бо там кожна задача обсосана сотні раз на різних форумах, блогах, гітхабі. Прогрес тут тільки в тому, що ти отримуєш рішення в одному інтерфейсі, а не гуглиш сам чи, святі небеса, реально вирішуєш задачку.

Написати якийсь середньої паршивості платформер чатгпт не може. Тобто може, але потрібно дуже багато часу потратити на фікси, а без знань, що саме фіксити, ти навряд чогось досягнеш. Але навіть в такої штуки цінності буде мінімум, бо гітхаб кишить готовими реалізаціями простеньких ігор.

Коли ж ми говоримо про щось, що дійсно має цінність. Наприклад, забутстрапити веб проект, який буде приносити перший пасивний дохід. То тут якою б крутою моделькою ти не керував, без знань доменної області навряд чогось добʼєшся. Я уже не говорю про те, що якщо твоя ідея реально інноваційна та передова, де ти, по суті, рухаєш передній край науки/бізнесу, то тобі самому і прийдеться все прощупувати власноруч, щоб наступний чатгпт міг навчитися на твоєму досвіді.

Я це все до того, що люди, як автор статті, сильно романтизують технологію із-за банального нерозуміння, як технологія працює та де її границі. Із-за цього у них формується хибне уявлення, що «нас всіх замінить ШІ». Не замінить.

Просто подумайте, скільки існує методів автоматизації табличних процесорів типу Екселя. Скільки є звичайного софта, який може допомогти в роботі з генераціями всяких звітностей з таблиць, проекціями, розрахунками. Маю на увазі фінансових додатків типу квікбукс чи ейрбейз, яким по 10-20 років. І незважаючи на це все, компанії світу продовжують тримати штати з сотень тисяч різних «принеси-подай», задача яких — натиснути 3 кнопки в екселі в кінці місяця, щоб згенерити репорт. Чому їх не тільки не замінив ШІ, а і готові вищезгадані рішення? От саме по цій причині і не буде ніяких «нас замінить ШІ».

Тобто, я перестав купувати грамарлі, бо безкоштовний чатгпт робить все те саме і навіть краще. Виручка грамарлі йде в низ і вони будуть вимушені звільняти людей. Фактично їх замінив ШІ. Але все ж масової заміни з тим ШІ, що зараз, ще не скоро чекати.

І не сперечаються з цим. Я кажу про два моменти: Олексій, автор топіку, пише як все просто і скоро всіх на мороз. Але ж навіть зі статті це зовсім не просто, багато нюансів, багато часу, навіть для девелопера, не кажучи за пересічну людину. Тому мені стаття сподобалась, бо автор описує власний досвід як він є, а не рекламу — ***к-хуяк і на IPO.

Що до висновків статі, з цим не погоджуюсь, бо навіть 25% того що зробив Олексій, не буде робити звичайна людина. То все упередження Данінга-Крюгера навпаки чи перкфікціонизму — я нічого не знаю щоб зробити ідеально, а насправді цього достатньо. Якщо мета статі працевлаштуватись — тоді так, таргетований контент може знайде свого роботодавця.
А що скоро звільнять всіх розробників, то до цього ще багато часу (може і не багато, але не завтра :)

Ну, я не писав конкретно, що все так просто. Скоріше, поміж рядків, можна прочитати, що це простіше ніж здається або що це можливо — але не так вже і просто насправді.

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

На мою думку ви розкатали більше не автора посту, а свою здатність ефективно прогнозувати майбутнє, аналізуючи тенденції сучасності.

Коли останні власники коней, що використовували їх як транспорт глузували з перших власників автомобілів, вони теж не розуміли, що спостерігають за власним зникненням.

Ви міряєте цінність проекту здатністю «купити їсти», а я — здатністю побачити майбутнє раніше за інших. «Вайб-кодинг» сьогодні — це прототип завтрашньої норми, як перші експерименти братів Райт були лише «вайб-літанням» для сучасників.

Іронія в тому, що саме «орекстратори», які вміють керувати ШІ, і залишаться, коли традиційних кодерів замінять алгоритми — точно так само, як залишились не візники, а водії.

А чистильники взуття зникли не тому, що поради про акції давали, а тому, що з’явилося взуття, яке не потребує чищення.

На мою думку ви розкатали більше не автора посту, а свою здатність ефективно прогнозувати майбутнє, аналізуючи тенденції сучасності.

Коли останні власники коней, що використовували їх як транспорт глузували з перших власників автомобілів, вони теж не розуміли, що спостерігають за власним зникненням.

На мою думку, ви повторюєте нав’язлий «смішний» аргумент про коней і автомобілі, якому, в контексті заміни розробників на ШІ вже років 5 мінімум

res.cloudinary.com/...​/guoxkbuujwne75szkqqe.png

Відмінність в тому, що тоді ще ШІ не замінював кодерів — а зараз замінює. Це питання стає дуже серйозним, особливо для тих, кого замінюють, або збираються замінити. Це вже не жарт, а сувора реальність, яка мало кого розсмішить. Можливо знання, якими я поділився когось навіть врятують від голоду)

Ви міряєте цінність проекту здатністю «купити їсти», а я — здатністю побачити майбутнє раніше за інших. «Вайб-кодинг» сьогодні — це прототип завтрашньої норми, як перші експерименти братів Райт були лише «вайб-літанням» для сучасників.

Ох, ви знову лізете туди, де абсолютно нічого не відбиваєте. Брати Райт, хоч і не мали професійної освіти, але мали першокласний інженерний досвід. Навіть до першого літака, вони уже мали десятки патентів та вели свою маленьку інженерну компанію. Вони як раз подвинули передній край науки своїм відкриттям. Те чого сучасні ЛЛМки зробити не можуть, бо вони генерують відповіді на основі попередніх завчених патернів.

Рекомендую почитати The Wright Company: From Invention to Industry, крута маленька книжка про перші літаки та сімейство Райт.

Та і яке майбутнє ви там хочете побачити, коли, повторюсь, ваш проект було згенеровано на основі десятків та сотень таких же проектів уже доступних на гітхабі? В цьому цінності ніякої. Чим ваш досвід відрізняється від якогось Колі, Васі, Петі, які розкатали лендінг на Тільді без написання жодного рядка коду? Цінність в цьому буде тільки тоді, коли маркет виставить цінник.

А чистильники взуття зникли не тому, що поради про акції давали, а тому, що з’явилося взуття, яке не потребує чищення.

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

Цікаво спостерігати, як ви настільки емоційно реагуєте на простий опис практичного досвіду. Аналогія з братами Райт стосувалась не їхнього досвіду, а реакції сучасників на першопрохідців — суть ви проігнорували, зачепившись за деталі.

Ваша наполегливість у цій дискусії психологічно зрозуміла — коли людина роками вдосконалює навички, думка про їхнє знецінення викликає гнів. Але ця емоція заважає побачити суть: мова не про те, «хто крутіший», а про зміну парадигми створення програмних продуктів.

Ви так зосереджені на «дорогих оксфордах», що не помічаєте, як ринок заповнюють кросівки, які просто протирають серветкою. Елітні навички не зникнуть, але масовий ринок рухається в інший бік.

P.S. Створений проект успішно виконує функції, заплановані на етапі проектування, і має архітектуру, яка проходить базові перевірки безпеки. А чи «має цінність» те, що я поділився досвідом трансформації роботи програміста — судити не вам, а тим, хто цей досвід застосує.

Аналогія з братами Райт стосувалась не їхнього досвіду, а реакції сучасників на першопрохідців — суть ви проігнорували, зачепившись за деталі.

Брати Райт після свого винаходу ще довго залишались невідомими.

Ви так зосереджені на «дорогих оксфордах», що не помічаєте, як ринок заповнюють кросівки, які просто протирають серветкою.

Ніде не говорив про дороговизну. Та і в кросівках не скрізь пустять. Так же саме ЛЛМ-ки: якийсь кусок роботи вони роблять, а чи замінять програміста — дуже сумнівно.

має архітектуру, яка проходить базові перевірки безпеки.

Лол, ви стартуєте контейнер в privileged режимі, а потім з коду запускаєте всяке сміття. Це така банальність, але вона не тільки не пройде серйозний аудит, а і звичайний лінтер в білд пайплайні (якщо ви осилите його прикрутити). Про повноцінний аудит безпеки типу FIPS тут і мови не може бути. Але для цього всього потрібно в ньому розбиратися та уміти, але вам це не грозить, бо «проект успішно виконує функції, заплановані на етапі проектування, і має архітектуру, яка проходить базові перевірки безпеки».

ЛОЛ, хто б міг подумати, що в privileged режимі запускається «всяке сміття». Ваш коментар — як технічний випад, який не бачить лісу за деревами. Так, контейнеризація не ідеальна, але жодний проект на початку не проходить FIPS. Це еволюційний процес.

Ви тратите стільки енергії, доводячи що «ЛЛМ-ка не замінить програміста», ніби це додасть вам років кар’єри. Замість розгледіти трансформацію області, ви зосереджені на технічних дрібницях, що мало стосуються сутності дискусії. Хто б міг подумати, що кращий спосіб протистояти хвилі змін — це вказати на помилки плавця, а не навчитися самому триматися на воді.

P.S. Ваші оксфорди все ще потребують крему щовечора, але світ вже придумав Gore-Tex.

Тобі ще не надоїло самому на кожен мій коментар реагувати такими реально жалюгідними рефлексіями, постійним виправдовуванням та переводом стрілок? Ткнув носом в те, що ШІ не може згенеруват секюрний проект — у відповідь отримав «проходить базові перевірки безпеки». Тикаю носом в першу максимально банальну проблему з безпекою рівня джуна і зразу нова стрілка «контейнеризація не ідеальна». Виглядає це все дуже жалюгідно. Ці всі проблеми можна вирішити одним запуском чекова і навіть без ШІ, але ж ви не знаєте, що це.

Ви тратите стільки енергії, доводячи що «ЛЛМ-ка не замінить програміста», ніби це додасть вам років кар’єри. Замість розгледіти трансформацію області, ви зосереджені на технічних дрібницях, що мало стосуються сутності дискусії. Хто б міг подумати, що кращий спосіб протистояти хвилі змін — це вказати на помилки плавця, а не навчитися самому триматися на воді.

Поки що склалося таке враження, що на весь тред один тільки ви тратите всю можливу енергію, щоб доказати, що «шІ зАмІнИтЬ нАс фСєХ». Я собі продовжую працювати в звичайному режимі. Використовую ШІ там, де йому місце, наприклад, для генерації документації. І не пробую бездумно перекласти критичні аспекти розробки на те, що до цього моменту не змогло продемонструвати своєї надійності. Вам явно бракує досвіду роботи на проектах, де одна неправильна змінна може вилитися в мільйони втрачених доларів, якщо ви і далі так сліпо продовжують пропагувати ШІ.

P.S. Ваші оксфорди все ще потребують крему щовечора, але світ вже придумав Gore-Tex.

Зачепила ж вас ця штука. Жаль, що для вас це настільки складно усвідомити, що в «оксфордах» відкриваються такі двері по життю, що в ваших горе-тексах не пустили б навіть на поріг.

Використовую ... наприклад, для генерації документації

крім генерації ще й читати непогано булоб що вже є, навіть нп manual pages

Дивно спостерігати, як людина з претензією на інтелектуальну вищість не здатна вести дискусію без переходу на особистості. Кожна ваша відповідь — класичний приклад реактивного мислення: замість аналізу тенденцій — пошук помилок, замість прогнозування майбутнього — хапання за знайомі патерни минулого. Це як боятися літаків, бо «коні надійніші».

Ваші «оксфорди, що відкривають двері» — прекрасна метафора вашої позиції. Ви так зосереджені на символах статус-кво, що не помічаєте, як змінюється сама будівля. Поки ви пишаєтесь тим, що натираєте свої оксфорди до блиску щовечора, ринок вже створює будівлі з іншими входами, де ваші відполіровані ключі просто не підходять.

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

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

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

Цікаво спостерігати як ви щоразу глибше занурюєтесь у дискусію, яка почалася з простого опису мого досвіду. Упиратися рогом у збереження статус-кво — це лише відтермінувати неминуче.

Знаєте, я теж «сам таким був» — думав, що досконалість у вже опанованих навичках важливіша за адаптацію до нових парадигм. Але життя навчило: поки одні боряться за збереження вчорашнього дня, інші будують завтрашній. Трішечки сумно спостерігати, як ви витрачаєте стільки енергії на заперечення змін замість того, щоб пробувати ними керувати.

Я щиро вірю, що за кілька років ви згадаєте ці обміни повідомленнями і, можливо, посміхнетесь. Бо врешті, питання не в тому, хто правий сьогодні, а хто краще підготувався до завтра.

Знаєте, я теж «сам таким був» — думав, що досконалість у вже опанованих навичках важливіша за адаптацію до нових парадигм.
Claude дає певний ліміт токенів 1 раз на 5 годин. Щоб працювати в такому середовищі ефективно, мені потрібно було заводити будильник і прокидатися вночі, щоб не втрачати цінні «контекстні вікна».

Ну... поради дає розробник ПО, який не може дозволити собі Claude ($20 на місяць)? Це також підриває довіру до прогнозів.

Як на мене, треба скоріше практикувати основи, які дозволять швидко оволодіти будь-якою парадигмою (можливо за допомогою ШІ).

адже скоро всіх нас замінить штучний інтелект

о боги, та ні, ніщо нікого не замінить (заскріньте цей коментар, щоб була можливість порівняти з реальністю років через 20).

У вашому випадку причинно-наслідковий зв`язок виглядає наступним чином:

Причина:

я взагалі не бум-бум ні в Typescript, ні в NextJS, ні MongoDB, ні в навіть React. Що таке Docker — я мав про це поверхневе уявлення. Звісно, я намагався «освоїти» React, NextJS та Mongo, але далі прочитання доків справа не пішла

Наслідок:

Останнім часом я сидів без роботи та у відчаї — що робити далі з моїм дивним резюме, яке не цікаве роботодавцям.

То виходить, ви замість того, щоб виправити причину — 2 місяці витратили на «спілкування» з софтом над яким працюють живі люди і в статті стверджуєте те, що всіх замінить штучний інтелект?

Горить, бо:

1. це непрофесійно, але хайпово
2. це укорінює неправильні стейтменти для молодих або починаючих розробників (nmn.gl/blog/ai-and-learning)

Звісно замінить — і не просто «колись у майбутньому», а вже зараз активно витісняє. Це не хайп, а об’єктивна технологічна реальність, яку можна спостерігати на власні очі.

Погляньте на тенденції останніх місяців: GitLab скоротив 15% персоналу, Spotify — 17%, Google, Meta та Amazon разом зменшили штат на десятки тисяч розробників. І це лише початок. Щомісяця оголошують про нові моделі ШІ з покращеними здібностями — порівняйте різницю між Claude 3.5 і 3.7, або між GPT-3.5 і GPT-4o. А що буде за рік? А за два?

Ви згадуєте мої проблеми з пошуком роботи та відсутність знань конкретних фреймворків як «причину» і «наслідок». Але хто вам сказав, що вивчення React/NextJS/TypeScript чи будь-якої іншої технології — це панацея? Щойно ви опануєте ці інструменти, з’являться нові. Ще рік тому всі говорили про Angular і Vue, зараз — про NextJS і Svelte, завтра з’явиться щось нове. Це нескінченний біг на місці.

Замість того, щоб гнатися за черговим технічним стеком, який застаріє через рік-два, я вирішив інвестувати свій час у метанавичку — взаємодію з ШІ для створення програмних продуктів. Це схоже на те, як колись програмісти перейшли від асемблера до мов вищого рівня — адже сьогодні ніхто не пише системи на асемблері (крім ентузіастів), хоча колись це було нормою.

Іронія в тому, що ви кажете «це непрофесійно», але ж професіоналізм визначається результатом, а не методами. Мій проект працює, має всі заплановані функції і виконаний на сучасному стеку — і якщо він потрібний користувачам, то яка різниця, написав я код власноруч чи згенерував за допомогою ШІ?

Щодо «неправильних стейтментів для молодих розробників» — я вважаю, що саме ваша позиція потенційно шкідлива. Ви пропонуєте їм вчитися писати код, який буде автоматизовано за кілька років. Це все одно, що радити вивчати каліграфію, коли вже існують комп’ютери та принтери. Звісно, знати основи програмування корисно, але витрачати роки на опанування всіх тонкощів фреймворків, які скоро стануть зайвими — це марнування часу.

ШІ не «софт, над яким працюють живі люди» — це парадигмальний зсув у тому, як створюється програмне забезпечення. І замість того, щоб опиратися цим змінам, краще адаптуватися до них першими. Як на мене, розумніше стати тим, хто керує ШІ, ніж тим, кого ШІ замінить.

інвестувати свій час у метанавичку

це вже такий же необхідний скіл, як на мене, як знання git, ci/cd і т.д.

Ви чуєте дзвін, та не знаєте, де він.

GitLab скоротив 15% персоналу

Це просто не правда. Останній лейоф був 2 роки тому на 7% штату. Зв’язано це було з пост-ковідною рецесією та війною в Європі, де сидить дуже багато клієнтів ГітЛаба. Гітхаб в той же час також звільнив 10% штату. ШІ тут взагалі мимо.

Spotify — 17%

Я не розумію, як до музичного сервісу ви змогли приплести ШІ, але, так, ШІ тут знову мимо, бо Спотіфай історично страждає від агресивного розширення Еппл Мюзік, а останнім часом ще й Ютуб Мюзік. Достатньо просто інколи дивитися новини, щоб побачити, яка в Деніеля Ека тряска від того, наприклад, як Еппл додали лослес в свою музику.

Google, Meta та Amazon разом зменшили штат на десятки тисяч розробників

Знову мимо. 22-й рік був складний для всіх із-за рецесії світової економіки. Тим не менше, це не завадило тому ж Амазону продовжувати збільшувати headcount. Та й гугл не втрачав «десятків тисяч розробників. Мета штормило більше інших, але вони уже практично вийшли на рівень до рецесії. Більше того, Мета зараз дуже активно наймає.

GPT-3.5 і GPT-4o

А ви порівнювали? Я, наприклад, сидів на платній підпискі чатгп деякий час. Ця херня навіть тестами покрити нормально не може середньої складності апі контроллер написаний на го. Я вже мовчу про написання хоч трохи складної осмисленної логіки.

Ще рік тому всі говорили про Angular і Vue, зараз — про NextJS

Ми Некстжс використовували в проекті з мільйонним хайлоадом уже в 2021-му році. Якщо ви тільки зараз про нього дізнались, то це не значить, що його ніколи не було. Та й Анугляр зараз живіше усіх живих.

Замість того, щоб гнатися за черговим технічним стеком, який застаріє через рік-два, я вирішив інвестувати свій час у метанавичку — взаємодію з ШІ для створення програмних продуктів. Це схоже на те, як колись програмісти перейшли від асемблера до мов вищого рівня — адже сьогодні ніхто не пише системи на асемблері (крім ентузіастів), хоча колись це було нормою.

Це саме тупе порівняння, яке я колись читав. Ассемблер не втратив своєї актуальності і по цей день. Те саме Сі, Сі++. На реакті драйвера для відеокарти не напишеш.

Іронія в тому, що ви кажете «це непрофесійно», але ж професіоналізм визначається результатом, а не методами. Мій проект працює, має всі заплановані функції і виконаний на сучасному стеку — і якщо він потрібний користувачам, то яка різниця, написав я код власноруч чи згенерував за допомогою ШІ?

А що на вашому проекті з секюріті, наприклад? Ваша система пройде аудит безпеки? Де секрети зберігаєте? Скрізь використовуєте сертифікати для ZTN? То ж то воно.

це парадигмальний зсув у тому, як створюється програмне забезпечення.

Ні, на даний момент, ШІ це не більше ніж організований індекс в людські знання цифровізовані та накопичені в інтернеті. Не більше.

Звісно замінить — і не просто «колись у майбутньому», а вже зараз активно витісняє

Те саме говорили про факси, коли вийшли телефони; про телефони, коли з’явився інтернет; про радіо, коли з’явилися телевізори; про телевізори: коли з’явився інтернет. А воз і нинє там ©

Авжеж ШІ в якійсь мірі замінить рутинну роботу, як колись автоматизовані лінії збору на фабриках Форда замінили людей (частково, авжеж). Так безкоштовний чатгпт повністю замінив мені граммарлі з жаднючою підпискою за 30 баксів. Тому, якість простіші таски типу зверстати лендінг чи переписати пост в блозі гарною англійською, — це буде автоматизовано, як це уже було автоматизовано через масу інших сервісів ще до будь-якого ШІ.

Чи може ШІ написати мені мікросервісну архітектуру з рівнем безпеки, що пройде якийсь банальний аудит на ISO 27001? Зараз — ні. В найближчому майбутньому — сумнівно. Тому точкові спеціалісти і надалі будуть цінуватися і за їх голови будуть пропонувати нормальні гроші. А рутину, так, рутину автоматизує ШІ.

Дякую за розгорнуту відповідь! Це дуже цінно, коли людина ділиться власними міркуваннями, а не просто заперечує.

Але, на жаль, у ваших аргументах простежується класична логічна помилка, яку психологи називають «зацикленням на минулому досвіді». Ви порівнюєте трансформаційний потенціал ШІ з попередніми технологічними змінами, але це порівняння не зовсім коректне.

Основна відмінність сучасного ШІ від усіх попередніх технологічних революцій полягає в тому, що він вперше в історії безпосередньо копіює ту функцію, яка відрізняє програмістів — здатність перетворювати абстрактний опис у функціональний код. Факс не писав листи замість секретарки, телефон не вів перемовини замість менеджера. А ШІ пише код замість програміста — і з кожним місяцем робить це краще.

Звісно, ШІ сьогодні ще не може «з нуля» створити мікросервісну архітектуру банківського рівня або пройти ISO/IEC 27001:2022. Але чи могла вона рік тому створити нвіть простий React-додаток? А два роки тому? Прогрес показує експоненційне зростання, і вже зараз Claude чи GTP-4 можуть згенерувати враження на тему секретів, сертифікатів, Zero Trust Network та інших компонентів безпеки. Через рік-два? Хто зна.

Мої слова про скорочення в технологічних компаніях — це лише симптом, а не причина. Можливо я помилився в деталях (дякую за уточнення), але загальна тенденція оптимізації витрат у технологічному секторі існує, і ШІ її лише прискорить.

Щодо «організованого індексу людських знань» — це фундаментальне нерозуміння принципів роботи сучасних LLM. Вони не просто індексують, а створюють нове на основі патернів, що наближає їх до творчості. Моя стаття — приклад того, як відбувається ця синергія людини і машини: я не просив Claude скопіювати існуючий проект, а описав власну ідею, яку Вона допомогла реалізувати.

Найчастіше люди відкидають ідеї, які загрожують їх самосприйняттю та професійній ідентичності. Це нормальна психологічна реакція. Але варто спитати себе: чи не заважає цей захисний механізм побачити реальність такою, яка вона є?

Я не кажу, що всі програмісти зникнуть — але вже зараз один програміст із навичками ШІ може виконувати роботу кількох. А це неминуче змінить ринок праці. Просто не треба боятися цих змін, а краще підготуватися до них.

P.S. До речі, про асемблер — такі, він існує, але скільки в процентному відношенні програмістів зараз пишуть на ньому, порівняно з 1970-ими? Ось і з традиційним програмуванням буде подібна трансформація.

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

Ви плутаєте тепле з м’яким. ШІ саме копіює те, що уже було зроблено програмістом раніше. Уже зараз розвиток не скільки якісний, як кількісний. Уже було багато досліджень про те, що почалась деградація сучасних великих моделей так як вони почали навчатися на тому, що самі ж генерують. Тобто, недовго музика грала.

Мої слова про скорочення в технологічних компаніях — це лише симптом, а не причина.

Ви зовсім не розібрались в питанні і продовжуєте вірити в надуману причину. Це типова проблема belief perseverance в психології. Наприклад, великий лейофф в Мета відбувся в середині 2022, а перша версія ЧатГПТ вийшла тільки 30 листопада, а ще через місяць в Мета відбувся анфріз і знову почався найм.

Щодо «організованого індексу людських знань» — це фундаментальне нерозуміння принципів роботи сучасних LLM. Вони не просто індексують, а створюють нове на основі патернів, що наближає їх до творчості.

Ні, це не так. Ось саме точне коротке пояснення сучасних мовних моделей, що я випадково зустрів в Твіттері:

> LLMs are probabilistic language models that generate outputs by predicting the most likely next word, based on patterns learned from massive amounts of human-written text. They implicitly encode a vast amount of human knowledge but don’t retrieve or understand it in a traditional sense.

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

Я можу підкинути вам літератури по ЛЛМ-ках, якщо ви хочете підтянути базу.

Я не кажу, що всі програмісти зникнуть — але вже зараз один програміст із навичками ШІ може виконувати роботу кількох. А це неминуче змінить ринок праці. Просто не треба боятися цих змін, а краще підготуватися до них.

Я чув щось подібне про лохчейн, про нфт, про біг дату. Зараз про ШІ. Нічого новго. Люди в силу власного невігластва привикли ідеалізовувати речі характеристиками, які вони не розуміють, як працюють.

P.S. До речі, про асемблер — такі, він існує, але скільки в процентному відношенні програмістів зараз пишуть на ньому, порівняно з 1970-ими? Ось і з традиційним програмуванням буде подібна трансформація.

А скільки в процентному відношенні було автомобілів в 1900-му році? Ви знову городите нісенітницю по причині банального незнання мат частини.

Цікаво спостерігати, як людина, котра звинувачує інших у «невігластві», сама демонструє класичний приклад мислення лінійними термінами в експоненційному світі.

«Нічого нового» — кажете ви. «Те саме про лохчейн, про нфт, про біг дату».

От тільки я порівнюю не хайпові технології, а парадигмальні зсуви в продуктивності. Автоматизований ткацький верстат. Конвеєрне виробництво. Персональний комп’ютер. І тепер — генеративний ШІ.

Поки ви сперичаєтесь про технічні деталі Meta layoffs і дату виходу ChatGPT, вам повністю не вдається помітити слона в кімнаті: інструмент, який ще не існував 2 роки тому, вже сьогодні дозволяє мені створювати функціональні продукти без знання React/TS/NextJS.

Те, що ви описуєте ШІ як «банальну симуляцію натуральних» мов, показує не ваше глибоке розуміння, а, навпаки, нездатність побачити практичні наслідки цієї технології. Банкомат теж «банально» видає гроші — але скільки касирів він замінив?

Мій проект не теоретична дискусія — це живий, функціональний доказ. Я створив повноцінний NextJS/TS/React/MongoDB додаток без попереднього досвіду роботи з жодною з цих технологій. Замість того, щоб витрачати місяці на вивчення документації, проходження курсів і набивання шишок на перших помилках — я одразу перейшов до продуктивної роботи. Традиційний шлях «спочатку вивчи, потім створи» зайняв би щонайменше у п’ять разів більше часу, а результат був би ідентичним — працюючий продукт з тими ж технічними характеристиками. ШІ не просто збільшив ефективність — він принципово змінив саму парадигму створення програмного забезпечення, і мій проект є прямим підтвердженням цього факту.

Пропонувати мені «підтягнути базу» по ЛЛМ — це як читати лекцію водієві електромобіля про принципи роботи двигуна внутрішнього згоряння. Ваше розуміння технічних деталей не впливає на факт того, що за два місяці я створив повноцінний проект у екосистемі, з якою не був знайомий.

P.S. Я не буду сперечатися з кожним вашим пунктом — це безглуздо. Час розсудить нас краще за будь-які аргументи. Зустрінемось у 2026-му?

От тільки я порівнюю не хайпові технології, а парадигмальні зсуви в продуктивності. Автоматизований ткацький верстат. Конвеєрне виробництво. Персональний комп’ютер. І тепер — генеративний ШІ.

Так і ідея великих мовних моделей не нова, а ШІ сьогодні — це чистої води хайп.

Банкомат теж «банально» видає гроші — але скільки касирів він замінив?

Скільки? В кожному банку більше касирів, чим банкоматів в будівлі.

Зустрінемось у 2026-му?

По рукам!

а ШІ сьогодні — це чистої води хайп

може й хайп.
але цей хайп пише чимало коду — сам.
перший раз я його в 2023 застосував.
і чим далі — тим більше, бо пише він все краще і розумніше.

можна так, і «інтелектом» його не вважати.
але ж — пише код, замість мене? ну і ок, яка різниця, як він називається.

Комент згенерований ШІ).

Але, на жаль, у ваших аргументах простежується класична логічна помилка, яку психологи називають «зацикленням на минулому досвіді».

Ви порівнюєте розвиток минулих моделей ШІ і екстраполюєте його, не зважаючи на обмеження технології. А воно є, вам на нього вказували, але ви проігнорували його.
images.app.goo.gl/xdYnoakKNaT8jWrY6

Можливо я помилився в деталях (дякую за уточнення), але загальна тенденція оптимізації витрат у технологічному секторі існує, і ШІ її лише прискорить.

Тут ви кажете щось типу «так, мій аргумент розбили, але теза, яку він би мав підтвердити все ще валідна бо мені так хочеться». Судячи з наведених вище цифр ця тенденція не існує, а існувала, і існувала через економічні фактори, а не ШІ.
Ну і в цілому, питання з якою метою ви створили цей топік? Якщо хочете знайти роботу, то це дуже-дуже погана стратегія, бо ваше позиціонування зараз виглядає не як «людина з нестандартним мисленням, яка вміло підбирає технології під різні задачі», а більше як «людина, яка ігнорує важливість розуміння інструментів і принципів їхньої дії». Майте на увазі, що ви змогли використати ШІ винятково через ваш досвід з програмуванням в цілому. Тобто, звичайній людині, щоб зробити те ж саме треба (wait for it) навчитися програмуванню. Отак круто ШІ нас всіх замінив

Моя фраза про «ШІ нас замінить» була частково іронічною, але технологія вже зараз трансформує професію програміста — це факт, не теорія.

Щодо обмежень ШІ — так, вони існують, але темпи їх подолання вражають. Ще у 2019 експерти вважали, що генерація якісного коду неможлива роками. Що маємо сьогодні?

Про скорочення в ІТ — це не вигадка. GitLab справді оголосив про 15% скорочень у лютому 2024, Microsoft скоротив біля 2000 робочих місць. Це документовані факти. «Економічні причини» та «причини економії ресурсів завдяки автоматизації робочих процесів» є тотожними.

Мета моєї статті — не тільки пошук роботи (що природно і нормально), але й поширення досвіду створення проекту за допомогою ШІ. Я не ігнорую важливість розуміння інструментів, а досліджую нові підходи. Якщо узагальнити, то я довів, що програмісту не обов’язково володіти певним стеком технологій, щоб створити продукт (хоч і не «готовий до продажу», але це лише справа часу, якщо технологія відома).

Чи справді я вважаю, що ШІ нас всіх замінить? Це залежить від того, чи зможе людство адаптуватися до співіснування із сутністю, що на багато порядків розумніше за нього. Наприклад Homo Sapiens систематично винищує інші види або навіть — згадайте історію про неандертальців. Вчені оцінюють, що людська діяльність призвела до зникнення приблизно 680 видів тварин і понад 9000 підвидів протягом останніх кількох сотень років.

Чи ви справді вважаєте, що ми будем потрібні хоч для чогось майбутньому ASI? А якщо взяти до уваги, що AGI та ASI створюються по «образу і подобі» людини, тобто людина впроваджує свої наміри та свій спосіб мислення в те, що стане значно на багато порядків переважати людину? І ви після подібних думок будете продовжувати вважати, що ШІ не замінить нас? Якщо так -то це ваше право, але для мене це надзвичайна наївність.

Про скорочення в ІТ — це не вигадка... A оголосив про N% скорочень, B скоротив біля M ...
І ШІ не замінить нас?

Алярмізм це природньо. А є якась вибірка в тому які саме категорії в тих «нас» скороченнях, кому вже боятися а кому ще чекати роками?

Щодо вибірки нічим допомогти не можу, але посилання на «приклад з життя» надати можу
x.com/...​tatus/1906997466072769025

То якийсь cry baby cry, крім згадування faang та we are people — по категоріям щось нічого там.

Якщо десь відповідна інфо/стат поки не зустрічалася — які власні погляди на: — що першим підпаде під АІ-оптимізацію — вебпрограмінг?

Якщо це реальний досвід, а не вигаданий, то це доказ того, що автомати замінюють людей вже зараз.

Думаю — так, веб. Можливо тому, що веб-програмування це найпоширеніше програмування (адже JavaScript найпоширеніша мова, так?) і автоматизувати його захочуть багато хто.

Напевно найлегше автоматизувати/оптимізувати з точки зору впровадження ШІ, наступними тоді мають бути всі safe мови java/rust/go/dart/etc.
Можна навіть припустити що розповсюдження електрон вебаппс як прекурсор АІ.

Напевно найлегше автоматизувати/оптимізувати з точки зору впровадження ШІ, наступними тоді мають бути всі safe мови java/rust/go/dart/etc.

Ну... Не знаю що безпечного у Java, Go, Dart. Але якщо брати Rust, то AI геть не розуміє концепцію borrow checker. Якщо брати Agda, то він геть не розуміє залежні типи.

не знаю що безпечного у Java, ...

Аспект на якому зараз найбільш акцентуються бігкомпані — memory safety, плюс значно менша вірогідність UB.

Rust, Agda, ...

Все в свою чергу, резонно спершу те що більш розповсюдженно (база софту який існує в розрізі safe coding).

Я не кажу, що всі програмісти зникнуть — але вже зараз один програміст із навичками ШІ може виконувати роботу кількох. А це неминуче змінить ринок праці. Просто не треба боятися цих змін, а краще підготуватися до них.
Тому точкові спеціалісти і надалі будуть цінуватися і за їх голови будуть пропонувати нормальні гроші. А рутину, так, рутину автоматизує ШІ.

Согласен. От массовых увольнений и сокращения найма пока спасает неготовность менеджмента управлять с учетом наличия AI. После того как менеджеры поменяют «нормы выработки» на одного разработчика, массовые сокращения и начнутся.

неготовность менеджмента управлять

Коли говорять про АІ і що заважає широкому впровадженню в майбутньому — то вказують на проблеми соціального фактору (перепрофіль якихось спеціалізацій + universal basic income) і адаптацію економіки. Менеджери(аі?) та їх готовність то таке, незначний нюанс.

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