На конференции Node.js Interactive озвучены (https://www.linux.com/news/event/Nodejs/2016/state-union-npm) заслуживающие внимания достижения проекта NPM, в рамках которого сформирован крупнейший репозиторий пакетов в мире (если не принимать во внимание, что многие пакеты включают лишь несколько (https://github.com/stevemao/left-pad/blob/master/index.js) строк кода). В настоящее время в NPM размещено более 380 тысяч пакетов. Для сравнения (http://www.modulecounts.com/) в репозитории Apache Maven присутствует 173 тысячи пакетов, в Rubygems.org - 127 тысяч, в Packagist (PHP) - 123 тысячи, в PyPI - 96 тысяч, в nuget (.NET) - 70 тысяч, в CPAN - 34 тысячи.
За последние 28 дней через NPM было установлено 18 миллиардов пакетов и загружено 6 миллиардов пакетов (66% установок осуществлено из кэша, поэтому число загрузок меньше, чем число установок). Еженедельно примерно 160 новых разработчиков публикуют в NPM свои первые пакеты. Число зарегистрированных пользователей NPM составляет 314 тысяч, из которых 102 тысячи являются активными разработчиками, публикующими свои пакеты. Примечательно, что несмотря на то, что NPM создавался для серверного использования с Node.js, около 80% пользователей используют NPM в том числе при разработке фронтэндов (клиентские web-приложения), а 20% - только на стороне фронтэнда.Что касается прошлогоднего инцидента (https://www.opennet.me/opennews/art.shtml?num=44104), в результате которого удаление пакета разработчиком привело к возникновению проблем в тысячах зависимых проектов, то для предотвращения подобных ситуаций в NPM было принято правило, разрешающее удаление пакетов только в течение 24 часов после их публикации. После этого срока разработчик не может удалить пакет, а имеет возможность лишь пометить его неподдерживаемым.
URL: https://developers.slashdot.org/story/17/01/14/0222245/nodej...
Новость: http://www.opennet.me/opennews/art.shtml?num=45861
Пакетов-однострочников типа isarray, ага. Сомнительное достижение
Зато хороший рейтинг кодоспамеров получился.
npm быть не должно , вспомнити npm leftpad а еще js тоже быть не должно , он тормозит , вспомнити атом
Анонима быть не должно, вспомните анонима
> npm быть не должно , вспомнити npm leftpad а еще js тоже
> быть не должно , он тормозит , вспомнити атомА зачем иронизировать, если это так и есть? Или какая-то из названных Вами проблем решена?
Смыс ли? Никакая нерешена , это же npm , тут проблемы не решают а создают , вспомнити как они отключили leftpad
> NPM стал крупнейшим репозиторием пакетовfixed: NPM стал крупнейшей мусоркой пакетов
как в своё время CPAN
> как в своё время CPANТак название почти говорящее. И вообще, если в нормальные репы пакеты берут только если они соответствуют определенным критериям качества и поддержки, то в этих рассадниках спама просто хаотично навален какой-то крап. Который зачастую никто не поддерживает. Секурити в ауте. Ну и нахрен такие пакетные системы сдались? Чтобы червяков с серверов почаще удалять?
в первую очередь такие репы портят репутацию самого языка, меня лично это отторгает.
Как можно испортить то, чего не было. JS всегда был уделом веб-макак. Тех, кто действительно умеет на нём строить приложения осне мало.Да и те, кто умеют (типа Гугла), стараются изобрести свой велосипед, только чтоб не тра..ся с JS.
Рассматривай npm как twitter: регистрировать свой общемировой id (имя пакета или имя @аккаунта в твиттере) могут все, администрации практически нет, каждый пишет о том, что хочет.От того, что мусорных пакетов много, страдает только и только сама администрация npm, которая обязалась их хостить. Конечный разработчик об их существовании ничего не знает и ограничивается самыми популярными пакетами (jquery, express, koa, yargs и т. д.) -- их названия обычно заучиваются наизусть.
Много хелло-ворд-пакетов? В твиттере тоже много хелло-ворлд-аккаунтов с "Привет! Это мой первый твит!" Аналог твиттеровского followers - это пакеты, которые зависят от твоего. Аналог твиттеровского following - это пакеты, от которых зависишь ты.
Так что npm можно рассматривать как своеобразную социальную сеть.
Aсоциальную
> Так что npm можно рассматривать как своеобразную социальную сеть.Только сравнивают зачем-то с репозиториями...
Согласен с предыдущими ораторами, содержимое NPM по сравнению с тем же Maven Central это "день и ночь". "Устройство /dev/urandom стало крупнейшим репозиторием пакетов".
Интересно. Хоть одну софтину посоветуйте. Которая что-нибудь крутое даст. Пока знаю только:/usr/lib/node_modules/chromeos-apk/chromeos-apk com.google.android.apps.authenticator2-2.apk --archon
Распаковывалку андроидовских приложений для использования в Google Chrome.
И как их потом использовать? Подробнее, пожалуйста...
jade/pug — очень удобный html шаблонизатор. есть конечно jade4j, но он пока не принял обновления в виде собственно pug
мне одному кажется, что понятие "пакет" в разных репах разное, и мерить лучше модулями, которые везде примерно "одинаковые"?
> мерить лучше модулями, которые везде примерно "одинаковые"?Модули тоже сильно разнятся между языками.
Цедзип... Проблема не в том, чтобы было больше кода/пакетов, а в том, чтобы его было меньше. Это как с результатами поиска в гугле.
"А 1000 знаков в минуту можете?" - "Могу, но такая фигня выходит..."
1000 символов осмысленного текста это реальность.
> 1000 символов осмысленного текста это реальность.Это такой тридцатигерцовый шелест, да?
PS: тьфу ты, ~16 Гц, конечно -- тогда всё-таки "ну не знаю" :)
> В настоящее время в NPM размещено более 380 тысяч пакетов.А говорит ли о чём-либо количество? Решающую роль играет качество пакетов. Как там с качеством-то дела?
> За последние 28 дней через NPM было установлено 18 миллиардов пакетов
> и загружено 6 миллиардов пакетов (66% установок осуществлено из кэша, поэтому
> число загрузок меньше, чем число установок).А как они, собственно, узнали об этих установках из кэша? npm об этом куда-то отчитывается?
> принято правило, разрешающее удаление пакетов только в течение 24 часов после их публикации.
И теперь будут по старинке выкладывать обновы с пустым пакетом?
> Как там с качеством-то дела?учитывая что код пишут не рептилоиды, а все те-же люди - качество такое-же как везде
зайди на гитхаб, ткни в любую репу и посмотри на количество коммитов с фиксами после последнего релиза> npm об этом куда-то отчитывается?
наверное проверяет доступные версии, и если нет обновлений - ставит из кеша
> а все те-же людиНе-е-ет! Жабоскриптомакаки.
> учитывая что код пишут не рептилоиды, а все те-же люди - качество
> такое-же как везде
> зайди на гитхаб, ткни в любую репу и посмотри на количество коммитов
> с фиксами после последнего релизаТы так хорошо расписал зачем в линухе нормальные репы есть. Туда таких макак не пускают или как минмум держат в карантине энное время.
> Ты так хорошо расписал зачем в линухе нормальные репы есть.Я так хорошо расписал откуда в линухе весь код.
У ядра/иксов/кед/гнома/х-всей/кути/... у всех есть гит, и (наверное) там ядро/иксо/пр... макаки пишут.
А остальное стадо находится в перманентном ожидании фиксов, когда репо-макаки закинут очередную обновушку.Обычный же человек не стесняется из гита поставить, если нужно, и потом багрепорт/пулл-реквест состряпать, и в максимально короткие сроки заиметь фикс.
Вон рядом новость про Calligra, и эта самая калигра уже как пол года 3.0 в гите, и нормально собирается (хоть и подглючивает). А в некоторых репах появится еще через пол года.
> Обычный же человек не стесняется из гита поставитьОбычный человек и про гит то ничего не знает.
>> Как там с качеством-то дела?
> учитывая что код пишут не рептилоиды, а все те-же люди - качество такое-же как вездеИ среди людей рептилоидов предостаточно. И качество кода часто коррелирует с уровнем грамотности сообщество, возникшего вокруг того или иного языка.
> зайди на гитхаб, ткни в любую репу и посмотри на количество коммитов с фиксами после последнего релиза
Количество коммитов, знаете ли, тоже не очень хорошая метрика. У нас в конторе наибольшее число коммитов и фиксов имеет репозиторий, код в котором - такая лапша, что никто понять её не может. ;)
>> npm об этом куда-то отчитывается?
> наверное проверяет доступные версии, и если нет обновлений - ставит из кешаВозможно. Спасибо, я об этом не подумал.
> учитывая что код пишут не рептилоиды, а все те-же люди - качество такое-же как вездеВообще-то люди разные, и на разные проекты порой сбегаются очень разные люди.
> заслуживающие внимания достиженияА в чём достижение то? Это же катастрофа.
Так и запишем:"порог вхождения в жабаскрипт крайне низкий."
Это бьет по твоему самолюбию?
Это факт
Им нужен garbage collector. ;-)> Еженедельно примерно 160 новых разработчиков публикуют в NPM свои первые пакеты.
И не стыдно, ведь, людям. ;-)
> ... в NPM было принято правило, разрешающее удаление пакетов только в течение 24 часов после их публикации. После этого срока разработчик не может удалить пакет, а имеет возможность лишь пометить его неподдерживаемым.
Посмотрим, насколько быстрым и удобным будет поиск через несколько лет при таком росте.
>> Еженедельно примерно 160 новых разработчиков публикуют в NPM свои первые пакетыЭто ~160 новых хеллоуфордов еженедельно!
NPM — крупнейшая коллекция хеллоувордов.
Количество != качество.
Но при правильном развитии, согласно диалектического материализма, увеличение количества может привести к качественным изменениям.
А может и не привести:)
Количество обязательно перейдёт в качество. Проблема в том, что большое количество не означает хорошее качество.
Ага, какже, что они этимправилом заткнули? К npm нет вообще никакого контроля, по нему в любой момент может прилететь троян и хрен ты что заметишь.
> в любой момент может прилететь троян и хрен ты что заметишьЭто характерно для любогопакетоного менеджера. Особенно при первой установке.
>> в любой момент может прилететь троян и хрен ты что заметишь
> Это характерно для любогопакетоного менеджера.Чисто теоретически -- вполне возможно.
Чисто практически -- есть такие вещи, как цифровые подписи и контрольные суммы.
И мейнтенер(ы) пакета, которые чисто из практических соображений, просто чтобы прикинуть, что за проблемы могут прилететь при сборке новой версии, иногда все же поглядывают в git/svn/hg/и.т.д diff обновлений софта.Нет, конечно есть еще вероятность, что они [мейнтенеры] или пропустят по невнимательности или даже "сами скурвятся", но в первом случае это все еще намного надежнее подхода "все свое смотрю я сам" (который, опять же, никто не запрещает), а во втором - группа людей, долгое время занимающаяся этим, "на виду", контролирующие друг друга, и т.д. -- все же, имхо, предпочтительнее самостоятельных разборок с кучей разнообразных авторов и их возможными тараканами, для каждого отдельного обновления каждой отдельной софтины.
Короче, выпустили мы релиз нашего приложения. Он еще не скоро пойдет в работу, поэтому для сборки клиентской части используется нпм. Сам знаю, что так делать нельзя, но все-таки:
Перед тем как собрать проект я на всякий случай сделал git clean -dfx.
Локальные Нода-модули уничтожились.
Npm install выдает мне ошибку, типо версия пакета, которая у меня прописана в package.json не существует. Разумеется все исправилось сменой версии. Но, что бы не говорили, я считаю, что нода для рабочего приложения - как пластмассовая отвертка.Вот так ребята
Сколько батхёрта xD Хотя это самая вменяемая и гибкая экосистема, причём опенсорс. Лучше бы аналитики опеннета сами бы свой уровень чутка подтянули и разобрались в теме.
Как я и предрекал 7 лет назад, JS обойдёт все остальные языки программирования, он будет просто везде, а ещё через 7 лет на нём напишут ядро ОС и драйвера для неё и это будет не навеска над Linux, а полностью самостоятельная ОС.
И разумеется, его будут компилировать.
Фреймворки и приложения - всё на JS. Встроенный графический конструктор приложений, в котором разберётся и ребёнок; количество JS-программистов будет возрастать по экспоненте.
7 лет назад все считали JS языком для разработки сайтов и только, сегодня же вы мне не поверите, но уже через несколько лет, вы услышите о старте этого проекта и через 7 лет он будет готов!
И 64 Гб хватит всем, ага!
Чёрным по белому написано: "И разумеется, его будут компилировать."
Будет немного тормознее, чем скомпилированный C++, но железо через 7 лет будет уже совсем другое, даже смартфоны. Ты особой разницы не почувствуешь.
Зато разработка будет быстрой и лёгкой. И может быть, этот язык спасёт умирающий open source, а та JS-ОС придёт на смену Linuxу.
Ну пока Яву на ЯваСкрипте не перепишут -- да, 64ГиБ будет хватать всем.
Аминь!
Это будет 2024, время пошло.
Как не умели графики рисовать так и пакеты и них получаются.
Всякий раз обновляя npm замирает сердце, не отвалится ли что.
1. Количество не показатель качества - соглашусь, но и не показатель обратного. Мне важно N - хороших пакетов. То что в репозитории будет N + M, где M - это трэшь и угар мне глубоко до лампочки. Есть параметры: как давно обновлялся, как часто обновляется, сколько установок и т.д. Человек с прямыми руками сможет определить годный пакет самостоятельно. Конкуренция.
2. Про безопасность не надо ляля. В гугл-сторе строгая проверка (автоматическая а затем ручная) чтобы заехать в магазин приложений. Это никого не спасло. Вирусы туда заехали отлично, при обновлениях вирусы и трояны внедрялись тоже замечательно. А уже сколько там кала это отдельная тема. В то же время мы видим обратную сторону этих проверок, а именно выкидывание разных приложений (под формальными предлогами) неугодных владельцам гугл стора (AdBlock и ежи с ними).
3. Вообще хэйт вокруг JS понятен. Серьёзные люди много лет писали на java/python/c++ и тут появляются какие-то хипстеры со своим смузи в руках и начинают красочно рассказывать менеджерам и руководству как круто будет все переделать на node js с сокетами и блэкджеком. Понимаю, стул пригорает.
4. Хорошо это или плохо, но JS победит как минимум PHP/Python/Ruby. Потому, что разработка дешевле будет в будущем (низкий порог вхождения), а скорость написания кода выше. А руководство увеличение прибыли любит.
5. Все языки которые становятся внезапно популярными и при этом имеют низкий порог вхождения вызывают лютый хэйт (CSharp/Ruby). Зависть она такая.
6. У всех сердца замирают при обновлении, npm тут не лучше не хуже.
7. Поиск - это вообще не про количество. Ранжирование никто не отменял.
P.S. Иррациональная ненависть - это очень плохо, потому как к ней все привыкли и уже никто не обращает внимание теперь на адекватную критику недостатков языка из-за того, что кучка полыхающих седалищь неадекватно критикуют и забивают этим эфир.
> Мне важно N - хороших пакетов. То что в репозитории будет N + M, где M - это трэшь и угар мне глубоко до лампочки.И будешь ты половину жизни тратить на то, чтобы найти в этом трэше и угаре один хороший пакет. Точнее, через пару дней плюнешь и сам начнешь писать, ибо найти что-то в огроменной куче гоbна будет слишком сложно.
> через пару дней плюнешь и сам начнешь писатьа потом толкнёшь в репу.
При установке хороших пакетов трэш и угар прилетят по зависисмостям:
https://medium.com/friendship-dot-js/i-peeked-into-my-node-m...
А зачем ему nodejs? Столкнулся недавно с проблемой - надо было написать хомяк, так в открытом доступе теперь и скриптов не найти без этого npm, качал с гуглапи.
Чем только люди не занимаются, лишь бы не нарушать заветы своей религии ненависти к определенным языкам/инструментам.
Нпм как гитхаб, только нпм.
Что-то подумалось: лет десять-пятнадцать тому разбирались, как будет правильно -- "репозиторий", "репозитарий" или вообще "депозитарий"; только разобрались -- и тут оказалось впору искать новый термин...
> На конференции Node.js Interactive озвучены (https://www.linux.com/news/event/Nodejs/2016/state-union-npm)
> заслуживающие внимания достижения проекта NPM, в рамках которого сформирован крупнейший""[...] whereas doing your own package manager is *fun*, or at least it looks like fun at first, so it will be repeated over and over and the same design [U]mistakes will be done over and over because the software industry is among the worst in learning from the past[/U]. "" --http://lists.gnu.org/archive/html/guix-devel/2017-01/msg0168...
> репозиторий пакетов в мире (если не принимать во внимание, что многие
> пакеты включают лишь несколько