Комментарии 60
Вся суть статьи в этой картинке (она упоминается в статье):

2. zlib —...Последний значимый релиз — 2022 год. Что будет дальше — неизвестно.
21. log4net (.NET) — ...Коммиты приходят редко, активность минимальна.
А никто не задумывался, зачем мы вообще гонимся за коммитами и релизами? Что если библиотека уже умеет делать всё, что от неё требовалось. Может стоит рассматривать проекты как «завершённые» в том смысле, что они «уже готовые и добавить к ним нечего», а не в смысле «заброшенные»?
А никто не задумывался
Задумывался. Я задумывался.
Результат "задумывания": довольно часто проекты необходимо менять, даже если там всё хорошо: выходит новый стандарт языка, меняются компиляторы, меняются версии ОС (например, появляются новые системные API, в которых поддерживаются длинные/национальные пути к файлам).
Если проект не меняется годами (хотя он и рабочий), то нет никакого отличия от заброшенного проекта. Вероятность, что проект именно заброшен - выше. Проверять самому, что всё ещё рабочее? Лучше поискать что-то более свежее.
Вывод из "задумывания": если проект живой, то можно делать в репозитории небольшие изменения (даже не в коде). Например, в readme обновлять список поддерживаемых версий компиляторов.
Ну вот тот же zlib:
выходит новый стандарт языка, меняются компиляторы — это C, он будет вечно обратно-совместим, более того, злиб специально написан так, чтобы компилироваться любыми компиляторами
меняются версии ОС (например, появляются новые системные API, в которых поддерживаются длинные/национальные пути к файлам). — да этой библиотеке как-то пофиг, это же чистый алгоритм, он не лезет в ОС, и работает даже там, где нет ОС
это C, он будет вечно обратно-совместим
Пример приключений с обратной совместимостью C: https://habr.com/companies/cloud4y/articles/996168/ (typedef enum { false, true } boolean;)
Проект в наше время не может быть финальным, завершенным.
Могут появится уязвимости. Особенно сейчас, когда за их поиск взялись нейросети, не имеющие потолка по продуктивности в отличие от кожаного хакера.
Для проектов с зависимостями банально устаревают зависимости, и проект больше не собирается в актуальном окружении.
Иногда появляются неожиданные баги, даже в самом вылизанном коде.
Если единственный мейнтейнер умер, или другим способом пропал насовсем (сел в тюрьму или в дурку, ушел в монастырь, ...), есть приличный такой шанс на то, что злоумышленник через энное время восстановит доступ к репозиторию через поддержку от имени автора. "У меня сломался ноут, бекапа не было, всё потеряно, помогите, вот сканы паспорта и другие доказательства, что это я." Ведь автора, чаще всего, никак нельзя точно верифицировать, особенно если он живет за пределами ЕС/США.
Вроде бы эти события не требуют коммитить каждый день и релизить каждую неделю (ну кроме экосистемы js, где ваши зависимости успевают устареть к моменту, когда завершается npm install, а новый фреймворк выходит каждые 300 наносекунд)
А что значит это "наше время"? Что есть завершенность продукта? Я вот одну утилиту использую уже около 30 лет - Total commander. Начинал еще с 16 битной версии в вин3.1. В середине нулевых вышел какой-то большой апдейт, я один раз его настроил на быструю навигацию по фс, завернул в него портабельные приложения, вынес необходимое на панельку, и с тех пор этот чемодан ездит со мной. Продукт обновляется, но даже не помню какая там версия сейчас актуальная и какая у меня установлена. Я просто знаю что при загрузке ос меня встретят те же 2 панельки что и вчера, и внутри будет все разложено так как я привык за десятилетия.
Ты это скажи безопасникам на аудите. Завернут твой релиз из-за протухшей зависимости, и пойдешь сам форкать "идеальную" библиотеку)
Так они при аудите только на коллекцию CVE смотрят (даже не вникая, а вообще применимо оно сейчас или нет), а не на последний апдейт
Не только. Например со временем в целом меняются подходы к разработке ПО и некоторые подходы ранее считавшиеся ок, теперь считаются небезопасными. В одной компании для mission-critical софта, например, явно запрещено использовать старые сильные функции типа strcpy, в вместо них предписывается всегда использовать strncpy. И старый код просто не пройдет аудит безопасности.
Наверное, можно было бы выступить против самого подхода к разработке. Можно ли было бы представить мир, в котором есть только проприетарное программное обеспечение? Но если мы хотим, чтобы любой труд всегда оплачивался, то надо сделать так, чтобы оплавичался именно любой труд. Человек что-то протестировал, что-то проанализировал — заплатите ему. Например.
С другой стороны, нужно централизованное производство программного обеспечения. То есть — всегда должна быть группа людей, к которым стекается программный код и которые всегда на связи. И нужны некие общие спецификации. Без спецификаций не будет никакого порядка.
Мы нормализовали это до такой степени, что удивляемся, когда что-то идёт не так.
Всё идёт не так, как запланировано, потому что нет плана, нет архитектуры, никто не занимается архитектурой, никто не считает это необходимым, все считают, что не может быть никакой архитектуры. Между тем, именно архитектура задаёт границы (не нужно слишком много релизов, не нужно слишком много разного программного кода) и направления деятельности (что и как нужно делать, а чего делать не надо).
Опенсорс изначально рос из хаоса и личных пет-проектов, немного наивно требовать от него корпоративной архитектуры
С другой стороны, нужно централизованное производство программного обеспечения
Нет, спасибо
"Лес рубят - щепки летят".
open server берут деньги за скачивание дистрибутива пара сотен рублей и правильно делают. я платил и не разорился. а то что разработчики годами работают бесплатно это им к психологу надо. брали бы по 1 центу за скачивание хотя бы. к нейросетям запросы идут по токену апи. что мешает сделать такой же доступ к npm. npm раздает платные токены. а потом оплату делит между разработчиками пропорционально количеству скачиваний.
Они не берут. Они предлагают заплатить. Можешь и не платить.
Хорошо бы иметь общественно одобряемый механизм получения каких-то копеек за скачивание - это да. Гитхаб мог бы озолотиться как посредник....
Достаточно большая часть опенсорса пишется за зарплату и некоторая часть за гранты.
Я сам сейчас пишу за зарплату какую-то часть, другую в свободное время.
Один знакомый, мейнтейнер openbgpd, получал гранты от RIPE и живёт на них вполне успешно.
А корпорации, зарабатывающие миллиарды на чужом труде, в большинстве своём не чувствуют никакой обязанности это исправить.
Во-первых, у корпораций нет никакого "своего" труда. Есть только труд рабочих. А заработок корпораций — это неоплаченный труд рабочих
Во-вторых, корпорации не могут ничего чувствовать. Чувствуют только люди.
В-третьих, ожидать социальной ответственности от коммерческих предприятий, это наивность граничащая с глупостью. Особенно от корпораций. Единственная ответственность, которая у них есть — перед акционерами.
Мейнтейнерам же, чтобы не выгорать, стоит заняться управлением собственным временем и тратить на любимый проект не более чем комфортно именно им.
А заработок корпораций — это неоплаченный труд рабочих
Это верно только если минус на балансе тоже распределяется пропорционально между рабочими и они несут пропорциональные риски.
Минус на балансе, а так же "движение рынка" или фантазия таролога запросто заканчивается для рабочего увольнением. Является ли этот "риск" пропорциональным? По-моему нет. Но есть нюанс...
Для владельца бизнеса минус на балансе может закончиться банкротством или уголовным срок. Не хотите ли разделить этот риск? Ну например квартиру продать чтобы компания по долгам рассчиталась.
Это было давно. Сейчас - в редких случаях, если бизнес маленький. Подавляющее большинство (со)владельцев бизнеса рискуют только долей в уставном капитале/стоимостью акций и больше ничем. Риски уголовки и административки несут наёмный управляющий(гендиректор) , глав.бух., главный инженер и т.п.
Ну давайте посмотрим новости только за последние пару лет(это первая страница гугла, даже искать не надо):
Основателя ChronoPay Павла Врублевского приговорили к 10 годам колонии
Владелицу ювелирного дома Darvol приговорили к семи годам колонии
Основательницу стартапа Frank приговорили к семи годам тюрьмы по иску JPMorgan
Суд в Сан-Хосе штат Калифорния признал виновной основательницу стартапа Theranos Элизабет Холмс в обмане инвесторов и назначил наказание в виде 11 лет и трех месяцев лишения свободы
Ну так как, вы готовы вместе с владельцем бизнеса сесть на 11 лет? Ну чтобы по справедливости было, это же ваш труд в компанию вложен.
Основателя ChronoPay Павла Врублевского приговорили к 10 годам колонии
За мошенничество - изготовление фиктивных платежек и хищение
Владелицу ювелирного дома Darvol приговорили к семи годам колонии
За мошенничество - обманным путём получила свыше 200 млн
Основательницу стартапа Frank приговорили к семи годам тюрьмы по иску JPMorgan
За мошенничество - завысили в 10 раз количество пользователей перед продажей (цена считалась от количества пользователей - 300к вместо 4.7млн)
Суд в Сан-Хосе штат Калифорния признал виновной основательницу стартапа Theranos Элизабет Холмс в обмане инвесторов и назначил наказание в виде 11 лет и трех месяцев лишения свободы
За мошенничество - это тот самый чудо-стартап который обещал экспресс-тесты крови по цене шаурмы, который раздували даже после того как поняли что реализация невозможна
Во всех примерах рассматриваются провальные решения конкретного человека, в отрыве от организации, и неприменимы в данном контексте
Кроме последнего - там заранее весь стартап был надувательством
Ну так за что еще по вашему должно уголовное дело заводиться против бизнеса? За потери прибыли что ли? Вы сначала пишите что уголовные риски владелец бизнеса не несет, а теперь начинается "ну это решение конкретного человека". Мало того, что это никак не аргументирует вашу позицию, так еще и является тавтологией, потому что любое решение это всегда решение конкретных людей, с именами и фамилиями.
Подавляющее большинство (со)владельцев бизнеса рискуют только долей в уставном капитале/стоимостью акций
Так это тоже огромный риск. Тысячи историй, когда натурально человек вкладывал все свои накопления, взятые кредиты и даже недвижимость под залог в свой бизнес, а бизнес прогорал.
Так что вполне справедливо, кто несет риски, тот и снимает сливки.
Как раз минус часто именно между рабочими распределяется: "Сложные времена, мы семья, надо затянуть пояса(нет денег на премии)", нелплачиваемые переработки, уволили половину, раскидали обязанности на оставшихся без доплат или с минимальной доплатой...
Зато если прибыль, рабочие её не ощущают никогда или почти никогда.
Заметной отвратительной чертой левацких агиток является то, что они всегда транслируются с позиции превосходства, цедятся сквозь зубы: во-первых во-вторых, категоричный безапелляционный тон, "учение Ленина всесильно, потому что оно верно", и тому подобное. Когда я вижу эти агитки на Хабре (ладно бы на Пикабу, там ЦА соответствующая), то это всякий раз напоминает мне, что интеллект сам по себе никак не характеризует качество и уровень мышления; ресентимент легко умножает на ноль способность к критическому мышлению.
Во-первых, у корпораций нет никакого "своего" труда. Есть только труд рабочих. А заработок корпораций — это неоплаченный труд рабочих
Представляю, как удивится автомеханик, который чинил вашу машину, когда узнает, что ваша машина теперь частично принадлежит ему, так как в ней содержится его труд. Остальные же доли владения распределены между сборщиками на заводе, уборщицей в цеху, охранником на проходной, и главным бухгалтером.
Вашего в автомобиле ничего нет, вы его незаконно изъяли у рабочих посредством спекулятивной торговли с корпорацией-автопроизводителем.
Во-вторых, корпорации не могут ничего чувствовать. Чувствуют только люди.
Снег растаявший - он вода; Расстаются, когда ложь; Засыпают, когда тьма.
В-третьих, ожидать социальной ответственности от коммерческих предприятий, это наивность граничащая с глупостью. Особенно от корпораций. Единственная ответственность, которая у них есть — перед акционерами.
Как хорошо, что вы развенчали наивность граничащую с глупостью Господи сколько пафоса, я не могу)))
Окей, а перед кем должна быть ответственность у менеджмента предприятия, если не перед акционерами? Перед вами? Директор должен вас усыновить и сделать целью своей жизни ваше личное благополучие?
Звучит интересно, но сперва стоит уточнить, перед кем вы сами несёте ответственность, помимо себя и своей семьи. Почему бы вам самому не взять на себя ответственность за корпорацию, не начать отвечать личным имуществом по её обязательствам, а? Вы так громко разоблачили социальную безответственность корпораций, что обществу теперь необходим пример, а как надо правильно делать! Иначе грешным делом закрадётся мысль, что где-то уже звучали такие речи, был один такой оратор, Полиграф Полиграфович звали)
Так себе статья, люди сами себе хобби преобразуют в смысл жизни и страдают. Чтобы спастись от выгорания на бесплатной и необязательной работе - просто прекрати ее делать.
Если хочешь монетизации - пихай куда можно призывы, либа при запуске в логи писать должна про то что ты один и хочешь кушать. Или можно сделать новую лицензию, что компании с доходом больше X$ не могут пользоваться библиотекой без доната/спонсорства в размере 0.001 от прибыли, но не больше Z$. Для гигантов вроде openssl точно бы сработало.
Когда я делаю pip install, то не знаю кто написал либу, выгорел он, родился у него ребенок или автор умер. Это в интересах автора донести мысль, что это для него не хобби, а работа.
Ну, а если такое же соображение применить, например, к учителям? Типа, не хотите выгорать не малооплачиваемой и неблагодарной работе — уходите в бизнес.
Учителя так и делают в целом - общедоступное школьное образование скатывается все ниже и ниже. Качественный уровень подготовки теперь обеспечивают репетиторы. К чему это приведет - не проблема учителей, ушедших из школ.
Очень нравится модель с монетизацией каждого PR - нужна фича - донатим по чуть чуть больше на ее верификацию, и внедрение вне очереди среди прочих или в принципе.
Конечно, есть риск, что CVE не будут оплачивать, ведь фичи нужны маркетологу быстрее..
Зависит от CVE. Есть такие, что могут легко заруинить весь бизнес и на такие выделят приоритетные ресурсы.
А есть примеры ее успешного внедрения?
А то у меня есть опыт подобного, но люди готовы донатить какие-то копейки типа сто рублей максимум. Если пытаться оценивать это по рыночной ставке разработчика то там никогда не наберется на что-то сложное, если только у проекта не миллион активных юзеров (именно тех кто в код лазает, а не просто использует). И в итоге по факту все равно неоплачиваемая работа, только пользователи получают еще моральное право еще сильнее давить: "ну мы же заплатили, программировай давай!".
Что-то подобное когда-то видел у Joan -система бронирования, у них было в разделе для желающих добавления функций типа формы для голосования, и оценка в деньгах для внедрения "побыстрее". Думаю, тут может быть что-то типа "я добавлю это за 1000 долларов, либо проверю чужой пуллреквест за 100". Этакий вебкам для разработчиков, с тип меню и токенами))) Тут фишка скорее именно в том массовости донатов по чуть-чуть.
Массовость донатов по чуть-чуть лучше бы при скачивании была. Скачал - оплати несколько центов. Скачали десять миллионов раз и некто получил под миллион долларов...
Сейчас условный гугл скачал бы один раз и положил бы к себе в свою монорепу. По факту пользователей миллиард, а скачивание одно. Если доводить идею до конца, то это всё превратилось бы в огораживание типа app store под контролем пары корпораций. Оно точно надо?
Так и пускай потом и мейнтейнит.
Можнож и скачать, а потом на торрентах раздавать.
Вот только мне, и уверен миллионам других людей проще взять нормальное у авторов. Особенно если таков ОБЫЧАЙ и есть лёгкий способ оплатить эти десять центов.
Что-то надо. То как есть скоро кончится. Люди смертны, а в новых поколениях все меньше желающих за идею страдать.
Мне почему-то кажется, что ничего не поменяется до серии кризисов. И, честно, я не верю в модель "за скачивание" - как только это появится условный npm добавит кеширующий режим и ручеёк оскудеет. Скорее будущее за поддержкой от фондов как в случае с rust. Основную прибыль от open source извлекают крупные компании - хочется мотивировать их поддерживать такие фонды
От корпоратов ждать совести бесполезно, у них KPI на урезание костов. Они скорее наймут десять эффективных менеджеров для оценки рисков, чем задонатят разработчику либы
А теперь ИИ прочитали и запомнили тонны этого бесплатного опенсорса и теперь выдают за "своё" по соточке. Опенсорсу хана имхо.
Проблема в самом существовании "мейнтейнеров" - единоличных владельцев, которые взваливают на себя всю работу но при этом имеют всю полноту власти и всю ответственность.
Если б передача полномочий была не исключительным событием (не сильно отличающимся по степени эффекта от создания форка), а происходила регулярно и ненадолго - то появились бы нормальные механизмы контроля власти новых "временных управляющих".
Людей, готовых безвозмездно вкладывать годы и годы в чужой проект - мало, а вот тех, кто готов потратить на это несколько недель - найти должно быть достаточно несложно.
А как среди этой толпы временных управляющих вычислять недобросовестных или некомпетентных?
Иметь много, для принятия изменений в код надо вердикт от нескольких, доверие каждому определяют конечные пользователи.
Именно такое и было с xz, и как видим, не помогло.
Где вы столько их возьмёте :)? Ну т.е. сейчас проблема, что нету и одного, а тут внезапно несколько возникнут из ниоткуда.
Никто чужой проект тащить не станет. Ни временно ни постоянно. И если вы лишите проекты "хозяев", то они в лучшем случае загнутся.
Единственная причина почему люди продолжают это всё тащить - внутренняя ответственность за созданную инфраструктуру. Мы в ответе за тех, кого приручили. И это единственная достойная мотивация с которой всё это жизнеспособно.
Нормальных не найдешь.
Верным признаком подходящего человека будет попытка тебя с лестницы спустить после подобного предложения.
А вот вредоносных и просто дураков будет толпы желающих.
Даже если платить очень не факт что это сработало бы.
Проблема не в том, что у нас толпы мейнтейнеров и мы их можем ротировать, их и без ротации не хватает...
Эм... Не понял, о чём вы, о какой "единоличности" в опенсорсе то? Форкнул - и дорабатывай в любом направлении, автор оригинала тебе не указ.
Я делал опенсорсный скрипт, получил 200 звезд на Гитхабе, но сразу предупредил, что кому надо - форкайте и пользуйтесь. Опен сорс - это как научная статья, просто показывает путь.
то, что кто-то решил, что опен сорс кому-то обязан поддерживать качество - ну, это его выбор. Я не знаю, откуда это проросло. У ученых не требуют, чтобы их статья регулярно обновлялась и содержала свежайшие апдейты.
Предлагаю так же относиться к опенсорсу. Он показывает путь, показывает решение. Возьмите его за основу. Если у вас тоже проект для исследования путей - вам должно быть без разницы качество его кода. Для первых шагов, для доказательства концепции, для исследования путей сойдет любой уровень.
А если вы компания с бюджетом и вам нужна надежность - ну, просто возьмите показанный путь и сделайте лучше, в чем проблема?
“Ты исправь - нам надо!”, “Ты добавь - нам будет полезно!”, “Ты напиши побольше примеров - станет больше пользователей!”, “Подумаешь, объяснил в сотый раз то, что написано в README, не буду я свое время тратить на чтение - не будь таким токсичным!” - типичный набор “заходов” юзверов моего опенсорса за последние 10 лет :)
требуя передать репозиторий «сообществу» — которое, разумеется, никто из них не представлял.
Хуже — это лучшие люди города!
Ну вот у меня на гитхабе библиотека. >44 млн скачиваний, >1300 звёзд.
Один раз кто-то хотел было задонатить мне 500 баксов. Я его развернул, ибо мне налогового консультанта нанять, чтобы провести донат, дороже будет стоить.
Если он уйдёт — никто не придёт.
А вот это утверждение на чём основано? Есть прецеденты? Откуда такая уверенность?


Bus factor = 1: 22 критичные для индустрии библиотеки, которые держатся на одном человеке