Исследователи из компании Aqua Security опубликовали результаты анализа статистики о 50 тысячах наиболее загружаемых пакетов в репозитории NPM. 7500 (15%) из наиболее загружаемых пакетов оказались связаны с устаревшими пакетами и прекратившими существование проектами. Для упрощения определения устаревших пакетов среди зависимостей, используемых в своём проекте, предложена утилита Dependency-Deprecated-Checker, опубликованная под лицензией MIT...Подробнее: https://www.opennet.me/opennews/art.shtml?num=60472
А шо так мало то? 🤔
Хвастаются, какой у них маленький процент.
Очередная статистика от "менеджеров" тупой гонки за новые пакеты, которые вовсе не лучше и не безопаснее старых.
Использование старого связанно с опасностью неисправленных дыр, использование нового связано с опасностью 0-day дыр ....
Вообще какое то подкармливание паранойи, а по сути ниочем.
Это они ещё до кода на Лиспе не добрались. У нас пару библиотек используется, которым по 20+ лет. Код как работал тогда, так и сейчас продолжает, хотя автор одной из них уже давно умер.
как проект делаете?
Небольшой командой из четырёх человек, крайне сосредоточено.
какой проект делаете?
Офигенный. На лиспе. Подробностей не скажу, деанон. Но если можешь себе представить очень большое школьное расписание, с десятками тысяч предметов, тысячами аудиторий, тысячами учителей, миллионами учеников и довольно сложными правилами построения -- интервалы, периодичность итд -- то будет очень похоже.
Какой диалект лиспа? В основных обратную совместимость же не ломают, поэтому и все работает, даже 20+ лет назад написанное. Хотя это довольно молодой код.
Когда я пришёл уже был SBCL. До этого вроде бы на LipsWorks всё крутилось, но отказались по экономическим причинам.
Нашёл чем удивить. Много современного софта родом из 90-х, тот же линукс. И даже там скорее всего получится найти девственно древний код. А в компаниях вроде гугла и даже местных яндексов тем более. Это всё с/c++
Линукс пишется каждый день. А код, про который я говорю не менялся за эти 20+ лет ни капли, несмотря на радикальную смену интерпретатора в какой-то момент. Просто работает. И такая ситуация для Lisp и его диалектов обычное дело. Попробуй собрать современным gcc пару тысяч строк нетривиального кода на с/c++, который двадцать лет никто не трогал. Тебя ждут удивительные сюрпризы!
Сначала в npm сделают, потом в cargo. Скриньте.
Всё, что надо знать о хламокодинге, как он есть.
Если проще - больше половины лефтпадов из топ 50к так или иначе фиксируют версии, и это правильно, но вот проблема - в условиях хламокодинга это не живёт, хламокодеры просто бросают свой хлам, и он пованивает незаметно для остальных.
Зато можно кодить быстро.
> "Пок-пок-пок, хламокодинг!"Кажется диды забыли как было лет 20 назад, когда на каком-то форуме находились нужные либы, которые вполне работали, но не обновлялись примерно никогда.
ИЧСХ никаких уязвимостей в них даже никто не искал, ибо не барское это дело.
Диды может и забыли, а ты то чего забыл? Го в танчики рубиться?
> Диды может и забыли, а ты то чего забыл?Не знаю, может еще мараз и деменция не настигли)
> Го в танчики рубиться?
Не, спасибо, я больше про стратегиям (+ не люблю раков).
Просто, в каждой второй теме старческое кряхтенье и пукареканье типа "а вот раньше писали огого! а вот сейчас смузи и лефтады, уууу".
При этом забыли уже и как писали, и какие образцы калостроения выдавали.
Типа xorg, где баги 10-20 летней давности находят до сих пор.
>> Диды может и забыли, а ты то чего забыл?
> Не знаю, может еще мараз и деменция не настигли)
>> Го в танчики рубиться?
> Не, спасибо, я больше про стратегиям (+ не люблю раков).
> Просто, в каждой второй теме старческое кряхтенье и пукареканье типа "а вот
> раньше писали огого! а вот сейчас смузи и лефтады, уууу".Ну вообще-то dev пакеты сопровождаются мэинтейнерами дистров. Если пакет умер, его обычно исключают из реп, а сам софт в configure требует либу и если там баг, то они поднимают версию.
В мирке жс маразм происходит из-за легкости публикации пакетов. Деды даже бы опу не подняли, чтобы делать пакет с одной функцией.
> При этом забыли уже и как писали, и какие образцы калостроения выдавали.
На этом сейчас все стоит, если что.
> Типа xorg, где баги 10-20 летней давности находят до сих пор.Сравнил сложный большой проект с помойкой независисых микромодулей.
давай будем реалистами. сейчас много чего уже стоит на js.
а то, что тебе не нравятся микромодули - не значит, что им нет места.
управлять ими сложнее, но в отличии от дидов, они вполне умеют в semantic versioning.
> управлять ими сложнее, но в отличии от дидов, они вполне умеют в
> semantic versioning.Во-первых semantic versioning - это только про нумерацию. Многие либы в твоем жс ее нарушают, например, тот же typescript.
Во-вторых, в Линуксе используется схема именования для разделяемых библиотек вида libFOO.so.MAJOR.MINOR
> давай будем реалистами. сейчас много чего уже стоит на js.Давай
Что написано на JS ?
На уберпопулярном питоне можно назвать yt-dlp, даже хоть сколько-то распространенных cms нет.
> Что написано на JS ?Весь современный веб.
> В мирке жс маразм происходит из-за легкости публикации пакетов.То что пакет условно-легко опубликовать не значит, что после публикации все побегут им пользоваться
Отдельный разговор о китайцах и индийцах - но им в большинстве откровенно плевать какой кусок навоза толкать в проект
> Деды даже бы опу не подняли, чтобы делать пакет с одной функциейОдна функция - она бывает очень разной
Например, хорошая проработанная модалка с кучей настраиваемых параметров - вроде бы, одна функция
И система навигации по страницам или экранам с возможностью обработки т.н диплинков - тоже, вроде бы, одна жирная функция
Вообще-то, на НПМе уже давно чего только нет. А у слышавших лишь звон до сих пор на уме какой-нибудь лефтпад( проблема которого была в том, что раньше разработчик мог просто выпилить свои пакеты и плевать на зависимости, а не в том что пакет был весьма специфическим )Касательно самой новости - почему-то даже не рассматривается вариант поддержки древних проектов по меркам веба и нпм-а, которым приделали непрерывную интеграцию и разработку
Размер шрифта на кнопке захотели поменять - проект улетел на сборку с нуля со скачиванием горы старых пакетов. Прямо-таки чудо-расчудесное
> лефтпад( проблема которого была в том, что раньше разработчик мог просто выпилить свои пакеты и плевать на зависимости, а не в том что пакет был весьма специфическим )Проблема которого, что бяку воткнули в 100500 пакетов, совершенно не задумываясь и удаление пакета обножило проблему.
Сколько ещё таких "подсчитать количество пробелов в строке" мин заложено ?
> Го в танчики рубиться?Как будто что-то плохое
20 лет назад был всего лишь 2004 год и, конечно же, такого не было. Дедам стоит провести темпоральную перекалибровку
Не 'устаревшие', а проверенные и стабильные.
Желающих прыгать по 'модным' граблям все меньше и меньше.
И что в модуле request устаревшего? Вчера отправил при помощи модуля request http request, он дошёл. Это протокол устарел! Надо протокол поменять, тогда и библиотеки перестанут работать!
> http requestЗачем тебе для столь банальной операции нужен модуль от васяна?
> Зачем тебе для столь банальной операции нужен модуль от васяна?Мне не нравится дефолтный API.
>>Исследователи из компании Aqua Security опубликовали результаты анализа статистики о 50 тысячах наиболее загружаемых пакетов в репозитории NPM. 7500 (15%) из наиболее загружаемых пакетов оказались связаны с устаревшими пакетами и прекратившими существование проектамиДа тут в последнее время ОСЬ раньше устаревает, чем пакеты! Я вот обновил пакеты, обновил старое ядро на Минте (которое действует до апреля 2027) и все норм! Зачем мне переходить на ОСЬ, которая по мнению разработчиков "лучше и новее"? Ради новых рюшичек и фишечек? Да нахрена? До 2027 года время еще есть, и разрабы еще 1000 таких систем напишут! Только вот зачем? Раздуть системные свойства дистрибутива? Нет уж, увольте, я пока на старом дистре писижу, пока время X не придет!