Разработчик испортил свой известный проект, чтобы «наказать» корпорации — почему это происходит в open source сообществе Статьи редакции
Протест разработчика faker.js и colors.js — пример того, что открытые разработки стали для других «само собой разумеющимся», считают авторы. Из-за этого уважение к труду падает, а разработчиков редко благодарят деньгами или другой помощью.
Зачем уничтожают программы
4 января 2022 года разработчик библиотек faker.js и colors.js Марак Сквайрс обновил их так, что они прекратили работать. Его разработки свободно распространялись на GitHub и в менеджере пакетов NPM. faker.js использовали для генерации случайных данных для тестирования приложений, а color.js для окрашивания символов в консоли.
Еженедельно библиотеки скачивали 2,5 и 22,4 млн пользователей соответственно, от них зависела работа более 21 тысячи приложений. После обновления при запуске faker.js и colors.js в консоли у пользователей несколько раз печаталось слово «свобода», после чего в ней генерировалась последовательность символов без смысла.
Атака автора faker.js и colors.js на собственные проекты обратима — в интернете остались предыдущие версии библиотек. Самому Сквайрсу GitHub ограничил доступ к его аккаунту. Журналисты выяснили, что ещё в ноябре 2020 года разработчик писал, что не хочет поддерживать работу коммерческих предприятий бесплатно.
В файл с инструкцией к faker.js версии 6.6.6 Сквайрс добавил вопрос «Что на самом деле случилось с Аароном Шварцем?». Он делает отсылку на американского интернет-активиста, который в 14 лет стал соавтором первой спецификации RSS — в январе 2022 года её используют для отображения лент новостей около 30 млн активных сайтов.
Шварц также принимал участие в разработке лицензий Creative Commons и форума Reddit.
Шварц выступал за свободное распространение информации. В январе 2011 года его задержали по обвинению в загрузке 4,8 млн научных статей из онлайн-библиотеки JSTOR. По мнению федеральной прокуратуры, он получил их нелегально, взломав аккаунт MIT. В январе 2013 года он покончил жизнь самоубийством.
По мнению The Verge, разработчик намекнул, что смерть Шварца носила насильственный характер. В своём Twitter он опубликовал ссылку на обсуждение этой теории на Reddit.
Свободный труд и интернет
По оценке The Verge, намеренная атака на faker.js и colors.js со стороны автора показывает, что перед интернетом стоит «моральная и финансовая дилемма» работы с open source ПО. Разработчики таких решений жалуются на выгорание и отсутствие уважения к своему труду, а от их решений зависит работа многих других приложений — как в случае со Сквайрсом.
TechRepublic пишет, что когда у проектов есть платная поддержка, пользователи возмущаются отсутствию бесплатной, а когда её нет, ругают разработчиков за редкие обновления. Авторы open source ПО часто работают безвозмездно, но дают пользователям возможность благодарить их за работу пожертвованиями.
Выдвигая требования и не поддерживая разработчиков, пользователи забывают, что многие из сервисов и технологий в интернете работают за счёт бесплатного труда, пишет Vice.
Активность и энтузиазм программистов позволили создать RSS и множество других проектов. Но когда авторам ПО не хватает сил или времени на продукты, в них могут появиться как ошибки, так и серьёзные уязвимости.
В декабре 2011 года один из разработчиков криптографической библиотеки OpenSSL Стивен Хэнсон начал работать над программной надстройкой Heartbeat. Она позволяла поддерживать соединения активными без необходимости постоянного переподключения с авторизацией. В написании кода Хэнсону помог энтузиаст и программист Робин Сеггельман.
В апреле 2014 года в коде OpenSSL обнаружили уязвимость Heartbleed — она позволяла несанкционированно читать память на сервере или устройстве клиента и расшифровывать данные, которые они передают между собой.
Выяснилось, что уязвимость появилась в обновлении 2011 года. Бывший гендиректор OpenSSL Foundation Стив Маркесс заявил, что причиной ошибки стало выгорание разработчиков и отсутствие финансирования — их бюджет составлял всего $2 тысячи ежегодных пожертвований и менее $1 млн выручки в год от платной поддержки и индивидуальных консультаций.
В команду OpenSSL постоянно входило 3-4 человека, которые поддерживали продукт из почти полумиллиона строк кода. Из них, по словам Маркесса, Хэнсон был единственным программистом, который работал над OpenSSL полный рабочий день. Он зарабатывал куда меньше, чем мог бы со своими навыками, но ставил развитие open source ПО в приоритет.
Как отмечает Vice, в системе интернета явно что-то нарушилось, когда за безопасность глобальной сети начал отвечать один «перегруженный работой и низкооплачиваемый» программист Хэнсон.
По словам Маркесса, правительства и коммерческие компании привыкли применять OpenSSL «как что-то само собой разумеющееся». По данным платформы StackShare, эту библиотеку используют CNN, Alibaba Travels, Fujitsu и ещё около 4 тысяч компаний.
Vice пишет, что уязвимость Heartbleed указала на наличие «системного заболевания» в сообществе open source из-за недостатка финансирования. После её обнаружения OpenSSL Foundation получила около $9 тысяч пожертвований за две недели.
Маркесс заявил, что даже если средства будут поступать в том же темпе, их не хватит для оплаты хотя бы шести постоянных сотрудников. Выход из этой ситуации бывший гендиректор видел в привлечении средств от коммерческих компаний и правительства.
Маркесс и Хэнсон покинули проект в 2017 году, с тех пор команда разработчиков увеличилась до шести человек. По информации Vice, в этом OpenSSL помог грант от Linux Foundation Core Infrastructure Initiative — его поддерживают пожертвованиями Amazon, Google, IBM, Microsoft, Facebook и Intel.
Например, если в поддержку решений начнут больше вкладываться крупные компании, они могут нарушить принципы управления сообщества и попытаться повлиять на его развитие, отмечает Vice. В то же время без денег на постоянную работу с ПО проектам сложно привлечь профессиональных программистов.
9 декабря 2021 года новую уязвимость обнаружили в другой популярной open source библиотеке журналирования log4j для языка программирования Java, её разрабатывали программисты-энтузиасты из Apache Software Foundation.
Находке присвоили высший уровень опасности и назвали её «самой крупной и самой критической за последнее десятилетие» — библиотеку использовали в корпоративном ПО, программах с открытым исходным кодом, а также на серверах государственных учреждений по всему миру.
По оценке Financial Times, хакеры запустили с помощью найденной ошибки более 1,2 млн атак, под угрозой оказались серверы Google, Microsoft, Tesla, Cisco, Cloudflare, VMware, Amazon, Twitter, Steam, Tencent, Baidu и многих других.
Как монетизируют ПО
Open source проекты распространяются бесплатно, их может скачать любой человек, а их код доступен для просмотра и изменения. Но большинство крупных образцов такого ПО всё же монетизируются тем или иным способом.
Одним из очевидных вариантов для программистов стала программа добровольных пожертвований — пользователи могут отблагодарить разработчиков любой суммой. Но, как показал пример OpenSSL, таких сборов не всегда достаточно для полноценной работы.
Альтернативным способом заработка становится платная служба поддержки пользователей — такой подход, например, используют разработчики дистрибутива Ubuntu из компании Canonical. Ранее они также продавали сувениры и одежду с символикой своей разработки, но позже закрыли магазин по неназванной причине.
Создатели WordPress распространяют свою систему управления содержимым сайтов бесплатно. Сторонние разработчики зарабатывают на продаже дополнительных коммерческих модулей — например, расширяющих функции для онлайн-магазинов. Сама компания платно предоставляет услуги хостинга, ставит на его бесплатных версиях рекламу и собирает пожертвования.
Иногда компании также пользуются методом двойного лицензирования. Например, система управления базами данными MySQL распространяется по лицензии GPL, то есть свободно и бесплатно, но если разработчики хотят использовать MySQL в своих программах, они должны публиковать их по той же open source лицензии. В других случаях создатели предлагают оплатить коммерческую лицензию с сервисной поддержкой.
Разработчики веб-сервера и почтового прокси-сервера nginx распространяют его как проект с открытым исходным кодом, но предлагают компаниям платную поддержку. Они также разработали платную версию Plus, для которой при оплате подписки действует круглосуточная поддержка и присутствуют дополнительные функции, недоступные в open source версии.
По оценке автора библиотеки обработки изображений .NET ImageSharp Джеймса Саута, иногда пользователям кажется, что отдельные проекты имеют финансовый успех из-за количества загрузок или отзывов.
Разработчик генератора статического контента .NET Statiq и сайта Discover.NET Дейв Глик считает, что авторам open source проектов нужно искать новые модели продаж и альтернативные лицензии распространения своих продуктов.
В качестве примера он привёл два варианта посредников: платформу Tidelift, через которую можно продавать подписку на обновления и поддержку приложений, и Sdkbin — через неё можно автоматизировать продажи и формирование чеков, что должно облегчить работу с отделами закупок компаний.
Если разработчики open source приложений не найдут новые способы монетизировать свою работу, проблемой в ближайшем будущем может стать не только намеренное отключение и удаление ПО. Разработчики могут отказаться дорабатывать свои программы.
Как отмечает The New Stack, когда энтузиасты покидают проекты или редко их обновляют, те оказываются беззащитны перед новыми уязвимостями и ошибками. В таком случае, исправлять их приходится уже самим пользователям и компаниям, и это явление может стать массовым.
Стучать кулачком по столу и биться в истерике - это банально истерика, и мало того, «сломанная» версия никому ничего не сломает, все исходники в инете, все пакеты в прокси репозиториях
Детишки ноют что их не носят на руках
Читать лицензию gnu или mit они, видать, не захотели
Хотите денег - делайте проприоритарку изначально
Поздно делать проприоритарное по? Меняйте лицензию, делайте подписку, раз либа настолько публичная - подписчики появятся, если фичи в новой версии будут лучше чем в старой под открытой лицензией
Я смотрю вы не уважаете труд людей, которые бесплатно создают продукты, которыми пользуются миллионы.
Дело не в истерике одного человека. Такое ощущение, что вы первые десять строчек в статье прочитали.
Автор пишет о СИСТЕМНОЙ проблеме. Когда в условиях недофинансирования, в массовых технологиях на значимых сервисах появится ошибки и уязвимости.
использовать js куски которые пишутся за час из какогото стороннего репозитория - вот ЭТО системная проблемма говнопрограммистов на ява скрипт, потмоучто яваскриптеры и не программсты.
такой код мог быть только в тестовом окружении впринципе или какихто скрытых частях тестовых.
Куски кускам рознь. На js есть разные библиотеки, которые значительно экономят время разработки.
И считать программистов какого-то языка недопрогркммистами я считаю неверно и оскорбительно.
JS хорошая технология, которая быстро и эффективно позволяет решать широкий спектр задач. И на мой взгляд, дальше она будет только развиваться и более плотно входить в обиход.
яваскрпит создавался для домохозяек, что там считать - это факт эваскрипт не язык программирования поэтому он и называется скрипт блин
опенсорс это скорее путь подключить энтузиастов к платному софту - а не пользовать бесплатный софт в корпоративном софте. или обшими услилиями делать один большой проект. поделия марака это вообще не опенсорс это какаято хрень собачья которая годится как понт при собеседовании просить за это денег смешно. эт окак просить денег за ответы на формуме
Яваскрипт это язык, и вполне себе эффективный.
Нужно понимать границы применимости тех или иных технологий, а не просто топить бездумно за какую-то из них. Java, плюсы, питон или что-то другое.
В своей области JS хорош. Он позволяет быстро, низкозатратно и эффективно решить большое количество задач.
Вам это может сколько угодно не нравится, но это реальность.
Какой по вашему мнению язык благородный?? Java?? Наверное по вашему мнению половину языков в мире мусор.
да это эффективный язык сценариев
Вы сами на нем в каком веке писали?? Обновите свои знания по технологии.
то что у него расширилось апи ничего в нем не изменило, и то что машина стала быстрее он всеравно остался такимже тупым и энерго-неэффективным. сложнее он не стал и квалификация для написания сайтов не стала требоватся выше. более того раньше нужно было больше дряни в голове держать по разным браузерам. то что теперь работу программиста делает домохоязйка не делает ее программистом а скрипты не делают полноценным опенсорс
ситуация такая - домоъхозяйка написала свою версию рецепта оливье и требует за него деньги, ей не платят и она добавила в рецепт цианид. вот это повод для новостей
"остался такимже тупым и энерго-неэффективным."
Python тоже имеет низкую энергоэффективность. И что с этого?? Нужно теперь похоронить все подобные языки??
Есть КОНКРЕТНЫЕ сферы эффективного применения тех или иных технологий.
Если вы считаете JS мусором, то это ваше право. Пишите сайты на Java. Кто вам запрещает?? Да вот беда, почем-то большинство программистов имеют иное мнение.
"сложнее он не стал и квалификация для написания сайтов не стала требоватся выше."
Я не понял, с точки зрения бизнеса, зачем это нужно?? Это совершенно не нужно. Ну пишите на фортране, если хотите. Для бизнеса выгодно снижение издержек при повышении эффективности. Если есть технология, которая может проще и эффективнее решать задачи, то это хорошо. И в усложнении нет никакого смысла.
"квалификация для написания сайтов"
Здесь же я отмечу, что JS применяется не только для написания сайта. Вы уверены, что вы программист и разбираетесь в технологии?? Такое ощущение, что вы программист прошлого тысячелетия.
"более того раньше нужно было больше дряни в голове держать по разным браузерам. то что теперь работу программиста делает домохоязйка не делает ее программистом а скрипты не делают полноценным опенсорс"
Вообще то, open source это не только JS. Это так, на секундочку.
питон это тоже не язык программирования
питон, яваскрпит, пхп это языки сценариев которые создавались для домохозяек - я это времяпрекрасно помню, когда была мода на свои домашние странички и каждый школьник делал сайты - разработчики этих языков прямо так и говрили - мы создаем их для того чтобы люди могли сами себе сделать сайт. но потом оказалось что даже это имбицильное говно слишком сложное и нужны скриптописатели чтобы делат ьсайты
сайты не надо делать на яве, хотя впринципе можно - разработка сайтов это задача низкоквалифицированных скрпиптописателей, вот и все
Настоящие программисты переключают транзисторы руками
весь постыл в том что гордится нечем если ты пишешь на питоне или js , да даже ява созданна для тупых - если ты не можешь писать на скриптах то ты тупой, если можешь то ты домохозяйка в представление настояших программистов 1995 года - вот это просто пойми а потом хихикай
чтобы транзисторы руками переключть много знаний не надо на 3 курсе вуза профильного все справляются
Ну да, конечно. На этом, думаю, можно закончить. Привет вам из 21 века вашему 20. Вы видимо в прошлом тысячелетии код писали.
яваскрпит никак не изменился - за это время, тайпскрипт или es4 впринципе можно считать языком программирования с большой натяжкой но всеравно очень простым и для новичков
повторяю - то что сейчас многие задачи программиста может решить домохозяйка не делает ее программистом. просто сейчас программисты не нужны - компы могут переваривать плохой код достаточно быстро благодары высокой производительности и хорошим компляторам тогоже в8
с нетерпением жду когда яваскрипт можно будет написать на яваскрипт а не на схх
С чего вы взяли, что каждая домохозяйка может статьи программистом?? Вы неоднократно это повторяете, но можете ли вы доказать свои слова??
Не парьтесь, тут "илитка" :)
чтобы писать на яваскрипт не надо быть программистом
причем тут программисты - тут максимум уровень сисадмина
программист это высококлассный специалист с вышим тезхническим образованием, на крайняк на скрипте может писать алгоритмист( онже прикладной математик)
ВСЕ буквально скрипты создавались чтобы НЕ программисты могли писать код. читаешь документацию и пишешь.
А чтобы на Java или С++ нужно писать, нужно быть программистом??
Программист, если что,то не образование. Программист это профессия. И чтобы писать код даже на ассемблере, не нужно закончить вышку по ИТ.
И вы так и не ответили, какой язык программирования по вашему мнению является достойными.
программист это профессия окей, тут сложно спорить
но тогда надо так и писать яваскрипт программист, потмоучто яваскрипт программист это свосем не уровнеь схх программиста
как гоншик формулы1 это не тоже самое что водитель трактора
чтобы колейдер андронный соорудить тоже можно не заканчивать вышку но способность писать на схх мне коечто говорит о чедовеке, а на явасрипте должны мочь писать буквально все, если вы не можете писать на яваскрипт или питон то вы тупой
Кому надо?? Вам?? Ну пишите.
Вообще, то программисты всегда указывают стэк, с которым они работают. И это не только языки программирования.
Вы пишите какие-то поверхностные вещи, как будто не имеете отношения к ИТ.
Надо людям чтобы не марать имя программиста обошением с скриптерами им прочим сбродом.
я не думаю что гонщикам формулы один было бы приятно если бы их обощали с таксистами. у меня пригорает когда язык созданный для домохоязек в серьез обсуждают как язык программирвоания и опенсорс
Bash это тоже скриптовый язык.
Только он важен и нужен в своей области.
Питон используется в своей области.
JS используется в своей.
На чем писать сайты по вашему мнению?? На чем вести разработку датасаентистом?? На чем писать программы для администрирования серверов??
Вы пишите некомпетентную чушь, которую не понимаете.
Я убежден, что вы не программист, а тролль, который в этом ничего не понимает.
это вы не понимаете что писать сценарий и писать сложную программу высокопроизводительную это разные задачи
принципиально и нельзя называть программистом датасаентиста, а если уж назваете то так и пишите питон-программист или js-программист ваше сравнение оскорбляет людей с высшим образованием в области системного программирвоания и тп
Я писал на разных языках, C++, Java, JS, TS, Python и ещё кучу разных других. И понимаю, что они все подобные. У каждого есть свои границы применимости. И все они одинаковые по сложности. Кто-то у чём то легче, кто-то сложнее.
Взять тот же питон, у него своя сложность, и она заключается не в написании кода.
У Java своя, у JS своя. Кто-то в чём то лучше, кто-то хуже. Но нельзя сказать, что вот он один идеальный язык.
Где то нужны плюсы, где то питон. И так далее.
Те кто этого не понимают, просто слабо представляют ИТ отрасль. И мне видится, что вы ИТ на картинках видели. Пишите поверхностные и ошибочные вещи.
С питоном да, ложная лёгкость написания. Отличие С от питона в том чтобы написать прогу на С тебе надо долго писать, а в питоне долго читать библиотеки ибо нюансов безумно много. Как итог они для разного созданы но нельзя сказать что на чем то проще "писать"(а не говно кодить)
Я убежден, что вы не программист, а тролль, который в этом ничего не понимает.
я говорю на испанском французском итальянском, ну как говорю знаю пару фраз, вот и вы также писали на схх
если ваш основной язык схх — естественно вы легко напишите любую программу на любом языке - программист на java врятли сможет чтото выдать на схх, скриптописатель на js 100% не осилит
я в этом отлично разбираюсь тк долгое время учил людей переходить на схх с шарпов и понимаю разницу уровня подготовки
Знаете что интересно??
Я вроде бы говорю очевидные вещи, и спокойно всё объясняю.
А вы пишите какую-то дичь и уповаете на что?? Что вы приводите в качестве доказательства что какой-то язык программировая нормальный??
Есть, например, такой язык как G-коды. На котором программируют станки с ЧПУ. Это тоже программисты. Да, может быть у них не так сложно писать, но это ложная простота, потому что написание программ требует глубокого понимания технологии машиностроения.
Если взять питон, то там тоже ложная сложность. И требуется понимания других областей.
У питона своя область применения, у баша.
Вы говорите, что js говно, но если вас послушать и выкинуть js, то что станет с областью его применения??
На чем писать сайты??
Вы не программист, вы тролль, который не писал ни строчки кода.
И на этом наш разговор окончен.
Знаете что интересно??
Я вроде бы говорю очевидные вещи, и спокойно всё объясняю.
А вы пишите какую-то дичь и уповаете на что?? Что вы приводите в качестве доказательства что какой-то язык программировая нормальный??
я привожу доказательства что js и питон языки сценариев для домохозяек - отличные прикладные инструменты, TypeScript вообще обожаю. и баш тоже - языки ли это программирвоания - согромной нятяжкой, программисты ли те кто на них пишут - с огромной натяжкой
Язык ABC
В 1982 году Гвидо ван Россум окончил университет и попал в команду разработчиков института CWI, где до 1986 года занимался проектированием языка ABC — прототипа Python. ABC задумывался как инструмент для пользователей, которые до этого не программировали и не разбирались в устройстве компьютеров. Должен был получиться удобный язык с простым синтаксисом, на котором легко учиться писать программы.
В 1989 году системе Amoeba не хватало языка сценариев, поэтому Гвидо ван Россум планировал мини-проект: собирался написать язык программирования на основе наработок ABC. В период рождественских праздников Гвидо сделал первые наброски и вскоре показал коллегам прототип будущего Python.
вот такой текст будет в описании любого скрипта - умный дядка сделал язык для домохозяек, а теперь все возомнили себя программитсами - ну ок
C#-комьюнити вообще очень слабое, потому что 146% пишет крайне унылый энтерпрайз
Геймдевы с экспертизой в крестиках, алгоритмах и системном программировании дадут неебаца фору любому webshit, только рыночек это не ценит.
шарпы это язык который делали чтобы быстро писать схх совместимый код в задачах где не нужна забота о памяти и типах - UI/UX и веб-сервера
нет никакой сложности ни в одном языке виртуальных машин и скриптов они создавались для слабоподготовленных кодировшиков. даже Rust в своем ядре несет идею о плохих программистах. C++ C D b Pascal это языки для профессионалов которые понимают что зачем и почему они делают, да там есть проблеммы со строками (кроме паскаля)
Java C# зяыки для подготовленных
а Питон и ява это вообще не языки программирвоания это языки сценариев
никто не говорит что есть идеальный язык, речь про то что квалифицированный программист на с может писать на любом говноязыке и не будет у него нигде сложностей, а питонист не сможет и яваскриптер не сможет. поэтому говрить что языки взаимозаменяемы это чушь - да яваскриптер может многие задачи решать, но считать эго программистом смешно. эт оприкладной специалист не более типа сисадмина (которых тоже многие называют программистами)
Да, в нем даже можно классы на лету создавать, говно какое-то, а не язык
я удвилю но в схх тоже можно классы на лету создавать и вритуальыне таблицы, и даже JIT сделать налету можно - просто надо быть чутка не тупорезом и чуть больше потратить сил
например в quake3 (тогда еше кармак работал видимо) был свой компилятор C в виртуальную машину и можно было классы на лету создавать просто это не особо афишировали и использщовали - аналог NaCl от гугл