Comments 39
На ум пришла такая паралель: лет 10 назад, пришла тема 3D-принтеров, и радостные прогнозы, мол, скоро и заводы будут не нужны, каждая хозяйка напечатает себе новую сковородку прямо на кухне, ну и прочее. Аддитивные технологии, мол, будущее уже здесь. Улеглось как-то, затихло.
3Д принтеры сейчас набирают популярность локально, особенно на предприятиях, поэтому я бы не сказал,что тема затихла.
Ну так это же классическая кривая новых технологий (кривая Гартнера).

И часто какая-то область содержит комбинацию технологий, каждая из которых имеет свою кривую. В результате получаем сложную кривую, на которой то подъём, то спад, то короткое плато.
От того что каждая кухарка будет на с++ вайбкодить ничего полезного не выйдет. "Зачем мне брать какую-то библиотеку? Я напишу свою за несколько часов." Конечно, конечно. Зачем писать что-то когда есть готовое? Вот вы с агентами боролись, но почему? Вся статья кричит "все делаем с нуля, велосипеды рулят". Но где же фраза "я написал гптчат за вечер, все резко и дерзко"? Призывать все с нуля будут только глупцы, а не архитекторы с кучей стажа. Действительно умные люди уже давно все сказали, читайте Брукса, сами знаете какую книгу. Переиспользование уже созданного это один из двигателей прогресса.
Переиспользование уже созданного это один из двигателей прогресса
Двигатель, за счет экономии времени, но есть и минусы :
- несмотря на огромное коммьюнити и сотни контрибьюторов, безопасность все равно под вопросом (регулярно всплывает "срочно обновите React, и openssl, и openssh, и докер, и nginx, и ядро, и еще чего-нибудь"), и нередко дырка в какой-то фиче, которую 95% не используют
- не растут твои компетенции, когда используешь чужой код, ведь, как правило, не нужно понимать, как он работает. многие современные разработчики не знают, как выглядит сырой HTTP, потому что они просто используют либу
- привыкаешь к чему-то не самому удобному и красивому, за счет его массовости, глаз замыливается, и уже не возникает мыслей, что можно сделать лучше, соответственно, что-то лучшее и не появляется
К слову, если ИИ напишет, компетенции тоже не растут
Если мне нужно вывести элементарный грид и кнопку, то я не буду писать их заново сам, это полный бред. Newtonjson миллионы пользовались/пользуются и будут пользоваться. Да мне плевать как он что делает, главное что делает. Зачем мне знать как работает сырой хттп? Может ещё знать как куда чего в памяти прыгает? Зачем, если я калькулятор детский делаю? Программирование это борьба со сложностью, инкапсуляция позволяет ее уменьшить. Это не просто так один из главных принципов ООП. А тут велосипеды предлагают, действительно чего это я.
Вы пишите "не смотря на огромное коммунити", так даже огромное коммунити не может справится, а тут речь про соло велики на колене. Смешно. Прогресс появляется, когда нет готовой реализации под твою задачу и ты ее уже пишешь сам, при этом зачастую базируясь на наработках других людей и это нормально. Вот как раз большинство новых алгоритмов и программных продуктов так и возникает.
Обычно ценность стандартных инструментов начинаешь понимать только после пары лет поддержки собственного велосипеда в проде
Переиспользование уже созданного это один из двигателей прогресса.
Дешёвое переиспользование. Не в смысле именно денег, а вообще.
Зачем писать что-то когда есть готовое
1. Обычно нужно с перламутровыми пуговицами.
2. Возможности своего кода знаешь. Даже так ЗНАЕШЬ. А в чужом... не знаешь какие там грабли и сколько их. Речь не об ошибках, а просто надо читать доки, разбираться что там имел ввиду автор, что-то будет неочевидно, и т. п...
В 2021 очнуться и узнать, что есть редакс и тс - ты сам походу велосипед
А Эволюция именно так и происходит. Каждая мутация организма является “велосипедом”, но именно так из одноклеточных появилось всё богатство и многообразие Природы.
Некоторые фреймворки (динозавры) господствовали миллиарды лет, а потом вымерли, из-за неспособности адаптироваться к изменившимся условиям.
Другие (акулы, крокодилы, jQuery), незначительно адаптируясь, умудряются выживать миллиарды лет. Но они уже не господствуют, а просто занимают свою (пока свободную) нишу. Очередной “велосипед” может запросто потеснить их.
Зачем мне брать какую-то библиотеку? Я напишу свою за несколько часов. Я уже не помню, когда я подбирал какую-то библиотеку. Я пишу на разных языках программирования и даже не знаю, какие библиотеки и фреймворки у них существуют.
Ох уж эти джаваскриптезеры. Они походу реально думают, что кроме их дырявого веба больше ничего не существует.
Прочитал статью спасибо, но так и не понял гравийный велосипед покупать или кросс-кантри?
даешь каждой кухарке велосипед с С++
Библиотеки без зависимостей, написанные прямыми руками, и с документацией - норм велосипеды. Ничего против не имею.
а время потраченое на написани этой библиотеки?
а ошибки которые в этой библиотеке есть, и которые будут найдены, в проде?
а отсутвеие документации - и невозможность работать с этой библиотекой другим?
"Библиотеки без зависимостей, написанные прямыми руками, и с документацией " -
существует, направо от сферического коня метрового диаметра в музее идеального
Чувак постоянно велосипедит и думает, что все вокруг делают то же самое.
За 20+ лет работы нигде такого не видел, всегда начинают с поиска подходящей либы и делают свой велосипед, только если ничего подходящего не нашлось.
Сильно зависит от культуры в компании. В геймдеве или эмбедде кастомные велосипеды до сих пор встречаются на каждом шагу
всегда начинают с поиска подходящей либы и делают свой велосипед, только если ничего
Да, и так появляются либы в npm которые выполняют функции сложения и вычитания, на которые потом миллионы зависимостей подвязываются.
Но, как ни странно, велосипедов ни стало меньше. Каждая кухарка теперь действительно пишет велосипед на C++. И кухарки все кругом. Мир сошёл с ума. Зачем мне брать какую-то библиотеку? Я напишу свою за несколько часов.
Конечно, легко во всём винить себя, но ещё легче — Неда Фландерса Комитет.
Я давеча спросил у железного дурака, как сделать хороший синглтон. (Я понимаю, что «хороший синглтон» это как «вкусное дерьмо», но иногда просто хочется поесть в «Макдональдсе» сделать по-настоящему удобный интерфейс к логгеру). Он мне выдал из своей базы код CRTP singleton mixin с бойлерплейтом для использования. Я попросил вариант без бойлерплейта (и без макросов!), и он выдал the passkey idiom. В принципе, это оказалось то, что мне нужно. Следующий вопрос был: какая пара классов в стандартной библиотеке C++ за это отвечает. Ответ: никакая. Даже в boost¹ и loki нет готовых к использованию классов. Бери готовый текст и копипасть в проект.
Получается, если человек хочет сделать без велосипедов, даже если он преодолевает свою неприязнь к стандартной библиотеке C++, всё равно оказывается, что нельзя. А у меня теперь есть ещё одно дополнение к header-only library с гордым именем CppUtils.h.
Я хочу сказать, что больша́я доля вины за то, что человечество реюзает код через базу данных чатботов, а не через библиотеки, лежит не на тех, кто даёт, а не тех, кто НЕ даёт.
¹Тем самым, boost вновь доказал свою квантовую природу. Если в нём есть нужный функционал (которого нет в std), тебе говорят: «Ну так, а что ты хочешь. boost это же почти стандартная библиотека». А если в нём нет чего-то важного (как, например, the passkey idiom), тебе говорят: «Ну так, а что ты хочешь. boost это же всё-таки не стандартная библиотека, как авторы захотели, так и сделали». Очень удобно.
На самом деле это хорошо. Это смена парадигмы. Зачем мне tailwind, если агент прекрасно напишет кастомный css, под заданный мной дизайн? Зачем тащить в проект JS-фреймворк, если агент легко пишет чистый javascript код? Профессия фронтендера уходит в прошлое.
А чистый JavaScript код думаете будет более понятный, быстрый и компактный?
Смотря для кого. Для агента - скорее да. Фреймворки же написаны для облегчения разработки людьми, и нужны они людям.
Хорошо, а если просто все перевести в 0 и 1, это тоже будет более понятно агенту?
И Вы, и Ваш оппонент - утрируете. Есть уровень абстракции библиотеки. Выше абстракция - проще типовые случаи, больше спрятано под капотом. Но нетиповые случаи могут породить монструозные конструкции. Вот у вас и получается шкала влево-право от 0/1 к фреймворку для всего. Точка оптимума на этой шкале у разных людей разная, а у моделей она влево явно смещена.
Своя in-memory бд это весело, пока ты не уволишься и следующему бедолаге не придется поддерживать этот шедевр без документации
Звучит как манифест "... и в продакшн" :)
Надо замкнуть цепочку, чтобы водопад велосипедов, вместе с отзывами велосипедистов, возвращался обратно в ИИ. Это запустит эволюционный отбор велосипедов. Тогда следующие рожденные велосипеды будут иметь правильную наследственность.
У велосипеда обычно очень маленький фактор автобуса.
Собственно, тупые иишницы прямо об этом и говорят. Вот уйдёт ракитектор, и кто и как будет сопровождать проект? Джун полезет на стековерфлоу, хоть с иишницей, хоть человеческим голосом живых человеков спросит, а никто и не знает...
Велосипедный взрыв