Вайбкодинг: плагин для Obsidian
В последнее время о вайбкодинге не писал только очень ленивый. Даже я писал. Кто-то его не очень жалует, кто-то любителей повайбкодить всячески критикует, кому-то это нравится, а кто-то вообще может считать, что за этим будущее. Даже сам термин еще до конца не определен. Одни считают это просто развлечением, в то время как другие - частью работы. Лично для меня вайбкодинг это возможность создавать что-то используя программирование не особо вникая в детали этого самого программирования.
Например, я давно хотел попробовать сделать расширение для браузера. Но то недоставало желания сесть и разобраться в тонкостях создания и особенностях JavaScript'та, то не было достаточно времени. Статьи и полезные материалы по теме регулярно добавлялись в закладки и прочие списки, а руки так и не доходили.
А потом возникла необходимость, я сел и подумал, а почему бы не завайбкодить? Все так делают, чем я хуже? И спустя час я уже пользовался расширением. Не вникая в детали, так и не разобравшись в итоге с JavaScript, я вместе с Gemini сделал реально работающую и полезную вещь. Очевидно, что там костыли на костылях и все в таком духе. Но лично мне ехать, а не шашечки.
Потом уже как обыденность сделал еще четыре расширения. Принцип таков - возникает необходимость в чем-то, обычно нужно автоматизировать некий процесс, я сажусь и быстро делаю.
Тут важно отметить, что это не бездумный процесс типа - написал промпт, копи/пасте и случилось чудо. Конечно же, я вполне представляю себе как работают и подключаются расширения в браузере, что такое json и как работает всплывающее окно с настройками и почему оно в html, да и код JS, в конце-концов, я тоже вполне могу прочитать и даже заметить явные косяки или попробовать его отладить через средства самого браузера. То есть ИИ выступает не в роли волшебного черного ящика с прекрасной кнопкой "Сделай мне хорошо", а в роли удобного и быстрого инструмента. Хотя может и сделать хорошо. Даже если человек не очень опытный, но умеет задавать вопросы и читать ответы, то вполне сможет по инструкциям от ИИ сделать очень многое.
На мой взгляд, мы сейчас находимся в моменте очередной смены парадигмы в программировании. Так, когда-то писали код на языках низкого уровня, на ассемблерах, отдельно под каждую архитектуру. Затем стали появляться языки высокого уровня. Все выше и выше, все больше абстракций. Они были все проще и программисту не уже не нужно было разбираться как устроен компьютер на низком уровне, не было необходимости напрямую работать с памятью, регистрами или отдельными устройствами. Он мог просто писать код и код работал. Да, знаток асма сможет написать более оптимальный код. Он имеет больше возможностей из-за доступа к машине напрямую. Но процесс написания им кода очень медленный. И уже в моменте появления и развития языков программирования высокого уровня появились мнения представителей старой школы о том, что высокоуровневое программирование это баловство. Но в итоге скорость и простота разработки победили необходимость работать напрямую с железом. Да, асм все еще нужен, иногда используется и его знатоки ценятся. Но в большинстве случаев хватает языков программирования высокого уровня и программистов способных быстро написать работающий код на Python, не понимая как обратиться напрямую к памяти.
Сейчас у нас намечается очередной перелом. О котором, кстати, мечтали разные люди во все времена. Мол не хочу изучать этот язык для компьютера. Пусть лучше он научиться понимать мой, человеческий язык и просто будет выполнять мои команды. Именно так появились языки программирования высокого уровня. Ну ок, кажется время настало. Можно сказать, что текущий ИИ предлагает условно сверхвысокоуровневый язык программирования. Когда ты просто можешь описать, что ты от него хочешь и получить готовый код. Насколько Python далек от машинных кодов и близок к человеческому языку, настолько использование ИИ позволяет программировать описывая задачу обычным человеческим языком. При этом на любом, не обязательно даже английским, под который заточено большинство обычных языков программирования.
Это очередной этап развития программирования. И это очень круто, на мой взгляд. С какой стороны не посмотри. Каждый раз, когда появлялась возможность упростить себе жизни, сделать более доступными какие-то сложные вещи, люди радовались. Когда-то Delphi показал, что интерфейс программы можно делать легко и быстро, буквально накидывая на форму компоненты. WYSIWYG-редакторы избавили от необходимости вникать в детали оформления. Конструкторы сайтов позволили их создавать самому обычному человеку. Все эти инструменты снижали уровень входа. Давали возможность что-то создавать людям, которые могли творить не обращая внимания не некоторые технические преграды. Сейчас у нас появился еще один инструмент. Который помогает, но не заменяет, как не заменили все упомянутые выше инструменты.
Вот такая небольшая простынка размышлений получилась, а я ведь просто хотел рассказать, что сделал еще одну вещь, которую тоже долго хотел попробовать, а руки все никак не доходили - плагин для программы Obsidian.
Всегда хотел вести подсчет количества набираемого текста. Вот люблю я циферки и разные подсчеты. Есть, конечно, готовые плагины. Но вот такой вот я, хочу все сделать сам. Да и просто интересно, а как оно там работает? Поэтому взял и сделал, вместе с Gemini, разумеется. Хотя там ничего сложного-то и не было, кроме кода в TypeScript, с которым я ранее никогда не работал. Но по факту это считай тот же JS, так что...
В общем пара-тройка промптов, компиляция:
И плагин готов, подключен и работает:
Эту статью, как и все прочие уже давно, пишу тоже в Обсидиане. В процессе еще и скриншоты делаю:
Но это в процессе, под конец вышло больше тысячи слов. Не очень и много. Хотя изначально планировал написать пару абзацев. А потом меня куда-то понесло.
Вечно я занимаюсь непонятно чем, вместо того, чтобы спать. Ох уж этот увлекательный вайбкодинг. Но, повторюсь, для меня это не просто промпты и копи/паст, а по факту обучение через практику. Я и код предложенный полистал, и на структуру плагина посмотрел, еще и с npm поразвлекался. Сплошная польза.
Изменено пользователем IgorLutiy
3 Комментария
Рекомендуемые комментарии
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти