AI Coder 🦾
107 subscribers
45 photos
1 video
45 links
О программировании с использованием ИИ от Senior Fullstack

Также пилю свой продукт с ИИ и пишу об этом тут - @build_saas_in_public
Download Telegram
Сингулярность на горизонте

А давайте разбавим наш прикладной контент минуткой философии и поговорим о технологической сингулярности? Вот как вижу ее я:

1. Сначала машины понимали только код и были “неживыми”
2. Затем научились говорить на нашем языке, но были слишком глупыми и безэмоциональными, чтобы восприниматься всерьез.
3. Постепенно начали решать не только рутинные, но и сложные задачи (мы находимся здесь - нейросети уже открывают белковые структуры, доказывают теоремы и находят баги в коде).
4. Следующий этап — машины все более автономны и все реже ошибаются, а люди нужны только для верификации и постепенно становятся бутылочным горлышком.
5. Первые компании решаются для конкурентного преимущества убрать людей из процесса и доверить всё ИИ, ведь специальные бенчмарки уже показывают, что ИИ проверяет сам себя лучше, чем человек. Это и дешевле и надежнее.
6. В ходе решения одной из задач система случайно создает Super-AGI со “свободной волей”

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

Недавно наткнулся на свой очень старый проект – сайт-визитку на VueJS. Захотелось вспомнить старые времена, открыть проект, но… он тупо не собирается. Ну что ж, JavaScript – не самый стабильный язык, особенно спустя годы.

Попробовал реанимировать проект вручную, но быстро понял, что процесс может затянуться. Копаться в старых скриптах на NodeJS? Не то, на что хочется тратить время. Может, ИИ справится?

Выбрал OpenHands AI, автономного агента, который обещает автоматизировать цикл работы: запуск -> анализ -> исправление. Спойлер: программисты в безопасности… пока что. Агент с задачей не справился. Подробности – в видео.

(А в следующем видео я покажу, как успешно выполнить эту задачу - с помощью Cursor).

Ссылка на OpenHands AI на GitHub: OpenHands
AI Coder 🦾
Оживляем старый проект с помощью OpenHands AI (неудачная попытка) Недавно наткнулся на свой очень старый проект – сайт-визитку на VueJS. Захотелось вспомнить старые времена, открыть проект, но… он тупо не собирается. Ну что ж, JavaScript – не самый стабильный…
Как Cursor справился с задачей, где провалился OpenHands AI

В этом видео я рассказываю, как успешно оживил свой старый проект на VueJS с помощью Cursor! После неудачной попытки с автономным ИИ-агентом OpenHands, я решил попробовать другой подход и вот что из этого вышло.

С Cursor процесс стал простым и эффективным. Я подробно показываю, как именно я использовал этот инструмент для автоматизации задач, анализа кода и исправления ошибок.
Просим ChatGPT нарисовать нас

Сегодня не про программирование. Не будем напрягаться в выходной день.

Если вы регулярно пользуетесь ChatGPT, то он знает кое что о вас и его можно попросить сделать что-то вроде “нарисуй меня, основываясь на своих воспоминаниях”.

Пример промпта: draw me a picture that represnets me from your memories

Присылайте в комментарии, что получилось у вас и ставьте лайк, если хотите больше таких приколов с ChatGPT
Генерируем готовый фронтенд из рисунка (Figma + V0)

Рисуем на коленке дизайн (я делаю это в Фигме, но сойдет и клочок бумаги), а затем просим ИИ сгенерировать из этого фронтенд. Прошло не бесшовно, но заработало. Подробности в видео!



Это будет первое видео из цикла по инди-хакингу, я буду показывать, как можно применить ИИ-инструменты для создания своего продукта, с минимум ручного кодинга. Ставьте лайк, чтобы увидеть больше
This media is not supported in your browser
VIEW IN TELEGRAM
Как я чувствую себя, когда ИИ в очередной раз не справился с задачей
Cursor, после того, как я попробовал что-то еще
Полезный контент скоро вернется, честное слово
Как быстро писать надежный код с Cursor (AI + TDD)

Лайфхак, как вместо того, чтобы детально объяснить, как именно надо реализовать ту или иную фичу, сделать так, чтобы курсор сам все понял, а мы на выходе получили рабочий и покрытый тестами (!) код.

Шаг 1: Просим сгенерировать unit-test. На этом этапе важно описать какие кейсы мы хотим протестировать, что именно отправим на вход и что ожидаем получить на выходе. Бывает полезно сослаться на файлы, в которых объявлены нужные структуры данных, иначе ИИ может галлюционировать и использовать несуществующие API.

Шаг 2: Внимательно (!) ревьюим сгенеренные тесты и, если где-то что-то не так, не реджектим текущую генерацию, а просто отправляем следующий коммент “то-то и то-то не так, надо чтоб было вот так”. На этом этапе обратите внимание, не надо ли дать курсору больше контекста, сославшись на какие-то другие файлы. Или, возможно, ИИ сделал нейминг не по феншую, или еще что-то.

Шаг 3: У меня в среднем получаетсяд обиться успеха за 1-3 итерации, по ощущениям это примерно двое быстрее, чем если бы я писал сам руками. После того, как тест-кейс сгенерирован, запускаем его и проверяем, что он фейлится.

Шаг 4: Переключаемся во вкладку с имплементацией, выделяем весь файл (прямо весь, да), открываем быстрое ИИшное редактирование (на маке `cmd+k`) и просим курсор заимплементить нужную нам фичу. И, конечно же, меншним наш тестовый файл (в курсоре можно сослаться прям на кусок кода, но мне кажется, что лучше сослаться на целый файл и руками написать имя нужного тест-кейса), мол, дорогой курсор, реализуй пожалуйста, чтоб вот этот тест проходил. Ну а что, зря что ли мы тест писали?

???

Шаг 5: Profit!
AI Coder 🦾
Cursor, после того, как я попробовал что-то еще
Новый AI редактор, альтернатива Cursor

Больше AI редакторов богу AI редакторов! На этот раз у нас поделка от создателей Codeium, популярного расширения для VSCode. Ребята начинали как конкуренты GitHub Copilot и, вслед за курсором, сделали свой редактор.

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

В общем, я еще не тестил, но кому не терпится, вот ссылка: https://codeium.com/windsurf
AI Coder 🦾
Новый AI редактор, альтернатива Cursor Больше AI редакторов богу AI редакторов! На этот раз у нас поделка от создателей Codeium, популярного расширения для VSCode. Ребята начинали как конкуренты GitHub Copilot и, вслед за курсором, сделали свой редактор.…
Update по Windsurf

Вчера писал про убийцу курсор новый AI редактор, сегодня попробовал его установить. На мак встало за 5 секунд - просто качаем установщик с оф сайта и вперед.

Как и ожидалось, это форк VSCode, а, следовательно, все расширения и настройки можно импортнуть оттуда. Можно ли импортнуть из Курсора, не ясно (по сути это вопрос, синхронизируются ли настройки курсора с вскодом), но мне это не критично.

В глаза бросается их киллер-фича Cascade - это аналог “Composer” + “AI Chat” в курсоре, но в одной вьюшке - в курсоре пообщаться с ИИ и попросить ее что-то сделать с проектом это 2 отдельных штуки, а тут в одну слили. При этом есть свич wirte/chat, который по сути включает chat-only режим. Выглядит прикольно, надо попробовать.

Еще один немаловажный момент это прайсинг - в курсоре прошка стоит 20 баксов в месяц, а тут всего 10. Существенная разница
Новый язык программирования c ИИ под капотом

Появился еще один язык программирования под названием Mirror, вы пишете сигнатуру функции (что она получает и отдает) и несколько примеров, а затем ИИ генерирует реализацию (на данный момент поддерживается только JavaScript)

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

Что думаете?
Новая фича в Cursor

Тем временем Cursor начали раскатку новой фичи Agent - новый режим для Composer, который делает его еще более автономным (доступ не только к файловой системе, но еще и к терминалу).

Я попал в выборку и вижу обновленный UI. К сожалению, первые впечатления негативные - композер перестал делать правки в файлах и превратился в тыкву просто чат, переключатель agent ситуацию не спас. Хоткей на маке поменялся на CMD+N, который по умолчанию открывает новую страницу - странное решение.

У курсора очень маленькая команда, его пишут гениальные люди, но им запросто может не хватать опыта или рук, чтобы бесшовно раскатываться, как какие-нибудь JetBrains. Я надеюсь, они все починят в течении месяца и курсор станет еще лучше. Очень не хочется с него слазить, ведь ничего лучше на рынке нет
AI Coder 🦾
Новая фича в Cursor Тем временем Cursor начали раскатку новой фичи Agent - новый режим для Composer, который делает его еще более автономным (доступ не только к файловой системе, но еще и к терминалу). Я попал в выборку и вижу обновленный UI. К сожалению…
Сжимаем репозиторий до одного файла, чтобы скормить ИИ

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

Среди примеров:

- Сделать код-ревью
- Сгенерировать документацию
- Сгенерировать тесты
- И т.д.

Я еще не пробовал, но выглядит любопытно. Думаю, Сursor может делать что-то подобное под капотом сам, но попробовать все равно стоит
Perplexity как дефолтный поиск в Arc

Кто был в армии, в цирке не смеется кто пересел на арк, обратно не вернется, это известно. А можно еще круче?

На скриншоте показано, как сделать Perplexity дефолтным поиском. Это тот, который используется на Cmd+T. Нужно перейти в настройки cmd+t -> settings -> enter и открыть вкладку Profiles.

Перплексити, если кто-то, вдруг, не в курсе, это решение проблемы галлюционирования ЛЛМов - круто когда chatGPT дает ответ, и можно не лезть в гугл, но что если он его выдумал? Такое бывает довольно часто. Перплексити подкрепляет ответ ссылками на источники, по которым можно перейти и уточнить детали.



UPD: Пока непривычно. Есть подозрение, что не все, что ты гуглишь, хорошо конвертируется в “вопрос-ответ”. Поживу так с недельку и напишу, как полет.
Чем программист отличается от LLM?

ЛЛМ выполнит задачу, даже если в ней есть противоречия, либо вернёт результат, даже если он противоречив. Программист-человек же обладает полным контекстом:

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

Иными словами, программист-человек “примерно понимает, как всё устроено”, и в этом его отличие от ЛЛМ. Человек понимает “примерно”, но всё сразу, а ЛЛМ — точно, но по отдельности.

Разумеется, человек часто фокусируется и сужает свой контекст до компонентов на определённом уровне абстракции, но он никогда на самом деле не забывает всё остальное. Оно лежит в фоне, готовое тут же вспомниться, если нужно.

К сожалению, ЛЛМ работает намного хуже в этом плане, чем наш мозг. Поэтому, чтобы создать настоящего ИИ-программиста, нужна сложная “инфраструктура” вокруг ЛЛМ. Это делают Cursor, GitHub Copilot, Zed и иже с ними. Но пока это уровень вспомогательного инструмента. Автономия тут ещё только зарождается, и через 10 лет мы будем со снисходительной улыбкой вспоминать, ностальгируя, как вспоминаем сейчас времена Notepad++ и FTP-серверов.

ИИ-программирование должно быть устроено так, чтобы в каждый момент времени любой запрос в ЛЛМ включал не только задание пользователя и исходный код открытого файла, но и “сжатую карту” всего проекта и, крайне желательно, понимание того, что за продукт и для каких целей мы делаем. Запрос не должен сразу идти с целью решить задачу — пусть ЛЛМ убедится, что поняла задачу точно, и задаст уточняющие вопросы, если необходимо. Пусть она применит весь свой контекст, чтобы убедиться, что не видит противоречий ни в задаче, ни в предлагаемом решении. И только потом пускай изменения произойдут.

Всё это очень сложные инженерные задачи, которые не решить без хитрых оптимизаций: чтобы не треснуло контекстное окно, чтобы избежать галлюцинаций, чтобы всё это работало быстро и так далее. Тут точно не обойтись без продвинутого промпт-инжиниринга и современных технологий вроде векторных и, возможно, графовых баз данных. Но это всё лишь моё примерное видение. Кто знает, что нас ждёт через 10 или хотя бы 5 лет?
Как помогает фича “codebase” в Cursor

В курсоре, который ИИ-редактор кода, есть чат, а в чате можно меншнить через собачку такую штуку @codebase - нахрена это надо и как это юзать?

@codebase это “я не знаю, где код, о котором я говорю, так что найди его сам”. Штука в том, что курсор постоянно фоне индексирует рабочую директорию, создает векторные ембединги и, вероятно, поддерживает какую-то карту знаний внутри себя

Здорово когда вы знаете какие файлы или хотя бы директории надо указать, но что если вы, так уж вышло, не работали со всеми частями проекта? Может он большой, может, вы недавно вышли на новую работу и так далее.

@codebase это ровно про это, вы просто меншните его через собачку и пишете свой запрос. Можно прям в формате вопроса, пример: “где у нас ручка, которая открывает тестовую подписку на 2 недели?”. Курсор хорошо справляется с таким.

Только что на работе мне в личку написал фронтендер и задал ровно тот вопрос, что я привел в пример выше, ему нужно было для тестирования его фронтендерских делишек. Знай он курсор, он бы меня даже спрашивать не стал, но ничего, курсор знаю я. У нас довольно большой проект и я работаю над его конкретным куском, так что ответа я не знал. Я спросил курсор, и как прокся передал ответ фронтендеру



Возможно, в следующий раз напишу про Notepads. Это относительно новая фича, я ее сперва не понял а потом как понял
Статическая типизация + AI = ❤️

Composer в Cursor с недавних пор поумнел. Когда он вносит изменения в код, он проверяет, не возникло ли ошибок компиляции/линтинга и, если видит их, пытается их пофиксить.

Но, вот, что меня по-настоящему впечатлило - ошибки, которые он допустил, были связаны с тем, что он неправильно сослался на типы, объявленные в коде. Он сам догадался, в какой файл надо заглянуть, чтобы понять, что он сделал не так. Прямо как человек! Затем он внес новые правки и код заработал

Так вот, чтобы вся эта магия работала, язык на котором вы пишете, должен быть статическим. Что это значит? Чем больше (мета) информации о программе зашито в сам исходный код, тем больше у LLM есть контекста. И любые ошибки статического анализа, будь то компилятор, линтер и иже с ними, это точно такой же контекст.

Итог - статические языки намного более AI friendly, чем динамические. На основной работе я вынужден время от времени сталкиваться с javascript, и как человек, который постоянно юзает ИИ для программирования я ощущаю разницу.

Кстати, сюда же любая документация - комментарии в коде, markdown файлы и так далее. Крайне желательно, прямо в репе. Дайте вашему ИИ больше контекста!
🎄С Новым годом, друзья!

В этом году ИИ ворвался в мою жизнь программиста, больше всего в виде Cursor и ChatGPT. Как думаете, что нас ждет в следующем?

В одном из предыдущих постов я предсказывал, что мы движемся в сторону полной автоматизации программирования. Прошло два месяца, и, разумеется, никаких причин для изменений тут не произошло. Напротив, я вижу, как развиваются ИИ-инструменты: редакторы (Cursor/Windsurf/Zed), площадки, такие как v0 от Vercel, которые генерируют готовый фронтенд, и “full-stack” платформы, что доводят дело аж до деплоя приложения.

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

Мои прогнозы на 2025

• Курсор останется доминирующим ИИ-редактором, но его доля относительно VSCode, JetBrains и Vim останется невелика, хотя и увеличится. В первую очередь пересядут юзеры GitHub Copilot, которые сидят на VSCode.
• Спрос на умение работать с LLM вырастет, но не станет чем-то дефолтным, как умение работать с базами данных.
• Super AGI в следующем году не будет. Маски и Альтманы нагоняют, потому что им это выгодно. Но появятся модельки уровня o1, которые будут дешевыми, как 4o, и это сильно отразится на UX/DX продуктов с ИИ.
• К концу года у нас будут доступные модели для генерации видео. Видео будут на уровне сегодняшних изображений, то есть неотличимы от реальности. Но промпт-инжиниринг в генерации видео будет играть большую роль.

Короче, следующий год будет хороший. 2025-й войдет в золотой век ИИ, когда технологии уже достаточно мощны, чтобы сильно улучшить нашу жизнь, но все еще не настолько близки к сингулярности, чтобы спровоцировать экономический коллапс. Так что продолжаем учить программирование и ИИ!

И, это самое, все эти прогнозы — это чисто субъективное мнение, не основанное ни на чем, кроме моих ощущений.