Выберите язык

Russian

Down Icon

Выберите страну

Portugal

Down Icon

Почему стартап стоимостью 10 миллиардов долларов позволил мне заниматься виброкодингом и почему мне это понравилось?

Почему стартап стоимостью 10 миллиардов долларов позволил мне заниматься виброкодингом и почему мне это понравилось?
Я провёл два дня в Notion и стал свидетелем потрясений в отрасли. Кроме того, я отправил немного реального кода.
Дизайн ногтей: Daddy Does Nails; Фотограф: Skye Battles

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

Процесс подачи заявки оказался на удивление простым: сначала мои редакторы согласились, а затем технологический стартап Notion, которому я предложил свою безумную идею, согласился разместить её у себя. Почему? Сложно сказать. Возможно, потому, что сотрудники Notion полностью перешли на кодинг с использованием вайбов (здесь «вайб» — это эвфемизм для «с помощью ИИ»). Некоторые технологические компании подсчитали, что теперь от 30 до 40 процентов их кода пишется с помощью ИИ.

Notion — это стартап из Сан-Франциско с тысячей сотрудников, финансируемый венчурным капиталом и оценённый в 10 миллиардов долларов. Он создаёт превосходное приложение для ведения дел и заметок , включающее в себя столько шаблонов, таблиц и способов форматирования задач, что разобраться в нём — задача не из лёгких. На YouTube гуру продуктивности пытаются разобраться в Notion, используя избитый термин « личная оптимизация ». Одно из таких видео называется «Как начать работать с Notion, не теряя рассудок». У него 3,4 миллиона просмотров.

Я должен был приступить к работе в Notion в качестве инженера по кодированию вибраций в четверг в середине июля. Накануне вечером я с паникой смотрел эти видео на YouTube. Конечно же, мне нужно быть опытным пользователем приложения, если Notion позволяет мне — знатоку английского языка! — ковыряться в кодовой базе. Во время предыдущего ознакомительного звонка новый коллега посоветовал мне скачать платформу для программирования ИИ Cursor и поэкспериментировать с ней. Я так и сделал. Из этого домашнего задания не получилось никакого реального кода.

Мой рабочий стол в первый день в Notion.

Фотография: Лорен Гуд

К счастью, в Notion мне предстояло парное программирование, а это означало, что я буду работать бок о бок с опытными программистами. По прибытии Сара Сакс, ведущий инженер ИИ в Notion, усадила меня за стол. Меня ждали служебная сумка и ноутбук. Сакс сообщила, что на следующий день я буду представлять свою работу сотрудникам на еженедельном демонстрационном совещании. Устраивало ли меня это? Я ответил «да». Мы все были готовы к работе.

В нескольких шагах от меня сидел Саймон Ласт, один из трёх соучредителей Notion. Он долговязый и застенчивый инженер, отказавшийся от управленческих обязанностей, чтобы сосредоточиться на роли «супер-инженера» — индивидуального разработчика. Он встал, чтобы пожать мне руку, и я неловко поблагодарил его за то, что он позволил мне писать виброкод. Саймон вернулся к своему ноутбуку, где наблюдал за работой ИИ, который писал код для него. Позже он рассказывал мне, что использование приложений для ИИ было похоже на управление группой стажёров.

С 2022 года в приложении Notion появился помощник на основе искусственного интеллекта, помогающий пользователям составлять заметки. Теперь компания преобразует его в «агента» — тип искусственного интеллекта, который будет работать автономно в фоновом режиме от вашего имени, пока вы занимаетесь другими задачами. Чтобы реализовать это, инженерам-людям приходится писать много кода.

Они открывают Cursor и выбирают одну из нескольких моделей ИИ, которую хотят использовать. Большинство инженеров, с которыми я общался во время своего визита, предпочитали Claude или напрямую использовали приложение Claude Code. Выбрав бойца, инженеры просят свой ИИ написать черновик кода для создания нового продукта или исправления какой-либо функции. Затем программист-человек при необходимости отлаживает и тестирует результат (хотя ИИ тоже помогает в этом), прежде чем запустить код в эксплуатацию.

Генеративный ИИ по своей сути чрезвычайно затратен. Теоретическая экономия достигается за счёт времени. Другими словами, если бы ИИ помог соучредителю и генеральному директору Notion Ивану Чжао закончить свои задачи раньше, чем ожидалось, он мог бы спуститься в джаз-клуб на первом этаже своего офисного здания на Маркет-стрит и немного побыть в блаженстве. Иван любит джаз. На самом деле он заполняет время, работая больше. Мечта о четырёхдневной рабочей неделе так и останется мечтой.

Моя рабочая неделя в Notion длилась всего два дня, настоящий кодоспринт. (В обмен на полный доступ к их логову я согласился называть рядовых разработчиков только по имени.) Моим первым заданием было исправить отображение диаграммы, называемой «русалкой», в приложении Notion. Два инженера, Куинн и Моди, рассказали мне, что эти диаграммы существуют в Notion в формате SVG и, несмотря на то, что они называются масштабируемой векторной графикой, их нельзя масштабировать или приближать, как JPEG-файлы. В результате текст на «русалках» в Notion часто нечитаем.

Куинн пододвинул ко мне свой ноутбук. Он открыл приложение «Курсор» и запустил Клода. Ради интереса он пролистал часть кодовой базы Notion. «Итак, кодовая база Notion? Там много файлов. Вы, наверное, даже будучи инженером, даже не знаете, куда идти», — сказал он, вежливо обращаясь ко мне как к инженеру. «Но мы всё это проигнорируем. Мы просто попросим ИИ на боковой панели сделать это».

Куинн объяснил, что его стратегия кодирования вибраций часто заключалась в том, чтобы спросить ИИ: «Эй, почему эта штука такая?». Вопрос заставляет ИИ сначала провести собственное исследование, а ответ помогает сформировать подсказку, которую мы, инженеры-люди, должны написать. После «размышлений» Курсор сообщил нам потоком текста, что диаграммы русалок в Notion — это статические изображения, которые, помимо прочего, не имеют обработчиков кликов и не интегрированы в полноэкранную инфраструктуру. Конечно.

Используя заметки Клода, я составил запрос и вставил некоторые заметки от команды инженеров в Cursor, например:

Тикет: Добавить полноэкранный режим / масштабирование к диаграммам русалок. Клик по диаграмме должен увеличить её на весь экран.

Заметки из Slack: «Диаграммы русалок должны масштабироваться и быть полноэкранными, как загруженные изображения. Они же просто SVG, так что, если нужно масштабировать, мы, вероятно, можем использовать SVG -> DataURL -> Компонент изображения».

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

Но, на самом деле, не совсем. Они всё ещё были слишком маленькими, некоторые детали были прозрачными, а поля вокруг них требовали отступов; кроме того, будет ли это работать в приложении как в светлом, так и в тёмном режимах? Следующие полчаса я потратил на внесение этих изменений, а Куинн и Моди подробно мне всё объясняли. Через полчаса у нас была расширяемая и читаемая схема русалки.

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

По часовой стрелке: Я осваиваю азы с Люси, Энди и Бруксом.

Фотография: Сара Сакс

В этот момент Claude от Anthropic, который обеспечивал работу Codegen, вышел из строя. Сара Сакс, которая была с нами в комнате, получила сообщение на свой телефон, словно врач скорой помощи. Она поспешила выйти из комнаты. Кодирование и сортировка по алфавиту временно приостановились. Бульдоги будут появляться раньше биглей, пока Claude не вернётся в сеть.

Следующее задание было таким же открытым, как и задание Люси: создать всё, что я захочу. Свобода нервировала, словно тест Роршаха для программистов. Что я увидел, взглянув на мигающий курсор? Я решил, что пользователи Notion должны иметь возможность составлять «умный» список дел за один шаг. Они могли бы открыть приложение и ввести «заказать корм для животных повторно», и ИИ Notion понимал бы, что они имеют в виду. Я также хотел, чтобы эта функция не дублировала пункты из других недавних списков дел.

Я его разбивал. Я был ответственной нянькой кода, наблюдая, как он каскадом сыпется перед моими глазами, а затем пробирается в мир. Вот только моя логика была ошибочной. Мой хак со списком дел каким-то образом допускал бесконечное количество дубликатов вместо того, чтобы избегать их. Кто был виноват: я или ИИ?

Дизайнер по имени Брайан объяснил мне, как это работает. «Представьте, что вы разговариваете с умным стажёром», — сказал он. И снова со стажёрами.

Я изменил логику и попробовал ещё раз, более подробно изложив, как я представляю себе работу виджета. «Отличная идея», — ответил Клод, вечно подхалимничающий, и принялся за работу. Сорок минут спустя мы втроём создали прототип моей маленькой, но… нет, я имею в виду, убойной функции. Согласно счётчику токенов в Claude Code, мы потратили на её создание 7 долларов. Мне сказали, что другие инженерные проекты стоят гораздо дороже, особенно если программисты позволяют ИИ работать часами. Когда я закончил первый день, было ещё светло.

В пятницу утром я пришёл на демо-сессию. В конференц-зале нас ждали сырные тарелки в честь дня рождения швейцарского сотрудника. Программисты взяли кофе, банки Celsius и стаканчики ароматизированной воды, которую налил автомат Bevi на кухне.

Одна из первых демонстраций была посвящена ИИ-агенту Notion, которому наделили памятью, чтобы он мог использовать заученный стиль письма. Другой инженер, ради забавы, написал приложение, которое отслеживало ароматизированные сиропы в любимом сотрудниками напитке Bevi. Мне сказали, что в конце каждой презентации кто-то обычно ударяет молотком по ксилофону. В тот день меня назначили хранителем ксилофона. Атмосфера была лёгкой.

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

Я посмотрел на Куинна и Моди. Мы подсчитали, что наша рабочая сессия длилась около 30 минут, плюс около 15 минут подготовительной работы, проделанной Куинном.

«Ух ты», — сказал кто-то в комнате.

«Осмелюсь представить, как широкая публика учится писать код», — написала программист и писатель Эллен Ульман в эссе 2016 года под названием «Программирование для миллионов».

В 2010-х годах, конечно же, преобладало мнение, что каждый может позволить себе немного поучиться программированию. Мы должны распахнуть двери и вторгнуться в закрытое общество, где пишут код, писала Ульман. Это была наша единственная надежда ослабить тиски кода, окружающие нас как общество. В рамках своей работы Ульман записалась на три массовых открытых онлайн-курса (МООК), которые обещали научить программированию обычных людей. (Смею представить, как она изогнула бровь, когда записывалась.)

«Воткните иголку в блестящий пузырь общепринятой технической мудрости», — призывал Ульман будущих программистов. «Прорвите его».

Развернуть диаграмму русалки или составить список пород собак в алфавитном порядке едва ли было похоже на попытку уговорить программиста. Но во время работы в Notion у меня было такое чувство, будто в моём мозгу открылся люк. Я мельком увидел, каково это — быть анонимным логическим богом, управляющим рычагами. Я также чувствовал себя способным учиться чему-то новому — и имел свободу ошибаться в чём-то новом — в полуприватном пространстве.

И кодирование вибраций, и журналистика — это упражнения в подталкивании и закупках: можете ли вы рассказать об этом подробнее? Можете ли вы рассказать об этом подробнее? Можете показать мне документы? С нашими собратьями-людьми мы можем мириться с некоторой неточностью в разговорах. Если мой опыт кодирования вибраций что-то и подчеркнул, так это то, что ИИ, кодирующий для нас, требует от нас чётко формулировать свои желания.

За обедом в один из моих дней в Notion инженер спросил меня, использую ли я ChatGPT для написания статей. Этот вопрос я слышал не раз этим летом. «Никогда», — ответил я, и её глаза округлились. Я попытался объяснить, почему — это вопрос принципа, а не утверждение, что ИИ способен писать сносные тексты. Я решил не вдаваться в подробности того, как изменения в поисковых системах и эти маленькие сводки ИИ, усеивающие информационный ландшафт, обрушили веб-трафик на новостные сайты. Почти все мои знакомые беспокоятся о своей работе.

Один инженер из Notion сравнил экономическую панику эпохи искусственного интеллекта с появлением первого компилятора. Идею о том, что один человек внезапно станет выполнять работу ста программистов, следует перевернуть, сказал он; вместо этого каждый программист будет работать в сто раз продуктивнее. Его менеджер согласилась: «Да, как менеджер, я бы сказала, что все просто делают больше», — сказала она. Другой инженер рассказал мне, что решение масштабных задач по-прежнему требует совместной работы, выяснения обстоятельств и планирования. Кодирование в стиле Vibe, по его словам, особенно полезно, когда люди быстро создают прототипы новых функций.

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

Эссе Ульман 2017 года завершается некоторым разочарованием. Она справедливо определила, что массовые открытые онлайн-курсы (МООК), которые она наблюдала, представляли собой разношёрстную картину, полную мальчишеских мужчин и недружелюбных преподавателей. Занятия по разработке алгоритмов, как она заметила, проходили с использованием примитивных инструментов, а это означало, что студенты «пытались изучить алгоритмы, оцениваемые неисправными алгоритмами». Движение «научись программировать» теперь кажется странным. Мало кто мог предположить, что всего через десять лет компьютеры будут писать код за них.

Однако Ульман всё ещё находила красоту в написании кода. В этом-то и суть. В этом и суть любого творчества. Если упорствовать, если упорно преодолевать бездну разочарований, «некое очарование прорывается наружу», — писала она. «Это как в те моменты, когда слышишь, как кто-то прекрасно играет на пианино или как саксофон завывает в джазовых импровизациях, и этот звук пробуждает в тебе тоску, желание преодолеть трудности и научиться играть эту музыку».

Кодирование Vibe не разжёг во мне этого желания. Вместо этого я яснее увидел, что мы вступаем в головокружительную эпоху дуализма в сфере ИИ. Уничтожит ли ИИ наши рабочие места или создаст новые? Да. Технически ли я создал функцию в приложении, которое уже достигло ста миллионов пользователей, или же я схитрил, чтобы выполнить задание, полностью полагаясь на ИИ и других людей? Да. Нужны ли мне глубокие фундаментальные знания в области программирования, чтобы стать успешным программистом, или я могу обойтись без знания даже названия используемого мной языка программирования? Тоже да.

В свои последние часы в Notion я признался в этом Ивану Чжао, генеральному директору Notion. «Я понимаю, что всё это время я даже не спрашивал, на каком языке мы пишем код», — сказал я.

Иван выглядел удивленным. «Это TypeScript. Это как улучшенная версия JavaScript». Он помолчал. «Но какой язык вы используете, не имеет значения. Вы выражаете свою мысль на уровне человеческого языка, английского, а теперь машины могут её перевести. Именно этим, по сути, и занимаются языковые модели».

Для Ивана этот момент с кодингом особенно волнителен. Когда он и Саймон Ласт впервые объединились в начале 2010-х (третий соучредитель, Акшай Котари, присоединился позже), они представляли свой продукт как приложение «без кода/с малым кодом», которое поможет людям создавать вещи с минимальным написанием программного обеспечения. Они были готовы принять мейнстрим «без кода/с малым кодом».

Была только одна проблема: «Никому было всё равно», — сказал Иван. «Никто не просыпался и не говорил: „Я хочу сейчас же подумать о разработке программного обеспечения“. Большинство заботило лишь „Мне просто нужно закончить эту таблицу для моего босса“». Несколько лет спустя они перешли к тому, что впоследствии стало Notion.

В октябре 2022 года основатели компании, в которой тогда насчитывалось менее нескольких сотен сотрудников, провели выездной семинар в Мексике. Иван вспоминал, как завершил ретрит короткими речами: вступительным словом, а затем несколькими словами за ужином в последний вечер. В остальное время они с Саймоном запирались в своих гостиничных номерах, пили бутилированную воду и создавали прототипы с помощью новой технологии, к которой у них был ранний доступ, ChatGPT. Они увидели, что она может генерировать. Они поняли, что это изменит всё. На каком-то уровне они понимали, что их первоначальная идея Notion замкнулась в действии благодаря генеративному ИИ.

Я программирую в паре с Брайаном, дизайнером продуктов Notion, который регулярно пишет виброкоды.

Фотография: Сара Сакс

Иван, родившийся в Китае и изучавший когнитивные науки и искусство в колледже в Канаде, тяготеет к качественным продуктам. Он носит роскошные часы (подарок жены), обожает качественную мебель и не раз говорил мне, что люди, преуспевающие в своей работе, часто обладают хорошим вкусом . Его любовь к хорошему дизайну распространяется и на инструменты, помогающие нам общаться; Дуглас Энгельбарт, изобретатель мыши, — его кумир.

Поэтому мне пришлось спросить: что он думает о качестве всего этого кода, сгенерированного ИИ? Не порождает ли кодинг вибраций больше плохого ПО?

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

Иван признал, что у некоторых программистов, особенно молодых, может возникнуть ложное чувство компетентности из-за вайб-кодинга. Именно здесь и пригодится парное программирование, сказал он. Совместная работа менее опытных программистов с теми, кто научился программировать до появления ИИ. «У старших — у них же есть вкус , верно?» — сказал он.

Саймон, со своей стороны, утверждает, что предъявляет к приложениям для кодирования ИИ более высокие требования, чем к инженерам-людям. Именно поэтому ему не нравится термин «виб-кодирование». По его мнению, этот термин принижает возможности этих программистов и людей, которые их используют . Саймон — один из самых плодовитых виб-кодеров в Notion. Он верит, что за этим будущее. В какой-то момент он использовал три разных инструмента для кодирования ИИ одновременно. Это было для него стрессом; это было похоже на то, как будто он снова стал менеджером. Теперь он обычно использует только один инструмент за раз.

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

Эти изменения — это вторжение ИИ-кода — произошли за последние четыре-шесть месяцев. В отдел корпоративных продаж Notion даже введён инженер по ИИ, который обучает продавцов программного обеспечения использованию ИИ в своей работе. И это происходит не только в Notion. Это происходит повсюду . Мой эксперимент с виброкодированием, хотя и был по-солипсистски проницательным, уже отставал от графика .

«Мир становится все более напряженным во многих отношениях, и у меня не такое чувство, что я «высвободил больше времени», а то, что сейчас как никогда важно использовать эти инструменты», — сказал Саймон.

Эта перемена одновременно воодушевляет его и вызывает тревогу. Он рассказал мне, что с теплотой вспоминает недалёкие времена, когда он просто программировал и разрабатывал что-то, «когда не было этой безумной социальной волны. Думаю, было бы безумием не испытывать хоть немного страха».

Только после того, как я покинул офис Notion в пятницу вечером, мои журналистские инстинкты вернулись. Я забыл спросить: чего боюсь?

Поделитесь своим мнением об этой статье. Напишите письмо редактору по адресу [email protected] .

wired

wired

Похожие новости

Все новости
Animated ArrowAnimated ArrowAnimated Arrow