GitHub купил систему управления JavaScript-пакетами npm

20.03.2020      52863

Сервис для хранения репозиториев кода GitHub (принадлежит Microsoft) купил компанию npm. Она создала одноименный сервис для разработки на JavaScript – один из крупнейших в мире менеджеров пакетов для этого языка. 

Что такое npm

Создатель npm – Исаак Шлютер – понимал, что с ужасной упаковкой модулей для JavaScript нужно что-то делать, и разработал собственный менеджер пакетов. 

npm – сервис, который помогает создавать современные решения на JavaScript. Платформу запустили в 2009 году как проект с открытым исходным кодом. В 2013 году проект столкнулся со сложностями – он вышел на тот уровень, когда уже не мог существовать только за счет пожертвований. Поэтому в 2014 году была основана компания npm Inc., которую, купил GitHub. За шесть лет компания привлекла 19 млн долларов инвестиций и до смены владельца оценивалась в 48 млн долларов. 

Сейчас менеджер пакетов входит в состав программной платформы Node.js – платформа позволяет строить решения на JavaScript для любой сферы деятельности: от веб-приложений и мобильных игр до роботов и систем маршрутизации. 

В репозитории хранится 1,3 млн пакетов с открытым исходным кодом. Ежемесячное число загрузок из хранилища достигает 75 млрд, в целом же сервисом пользуются 12 млн разработчиков. 

По словам генерального директора npm Нэта Фридмана, доступность пакетов в npm во многом сделала JavaScript крупнейшей в мире экосистемой для разработчиков. Для npm есть оригинальный консольный клиент, который позволяет устанавливать пакеты из репозитория и публиковать собственные разработки за считанные секунды. 

Что изменится

Сервис npm включает публичные и приватные реестры кода. В GitHub пообещали, что не будут ограничивать использование публичного реестра для пользователей из любой точки мира. 

Фридман не раскрыл деталей сделки. Но уже известно, что часть средств направят на оптимизацию инфраструктуры платформы и реестра. Microsoft намерена улучшить пользовательский опыт работы с npm, а также более тесно взаимодействовать с разработчиками, чтобы своевременно получать от них обратную связь и оперативно реагировать на их запросы. 

Платных пользователей пообещали поддерживать активнее. Так, когда GitHub и npm плотнее интегрируются, коммерческие клиенты смогут конвертировать собственные закрытые npm-пакеты в GitHub-репозитории. 

Кроме того, интеграция GitHub и npm повысит безопасность разработки решений с открытым исходным кодом. А отслеживать изменения в npm-пакетах можно будет из пул-реквестов на GitHub (запросов разработчиков на интеграцию новых функций или исправление ошибок). 


Автор:
Обозреватель


См. также

Новость Законодательство ИТ-Новость Минцифры Цифровая экономика Языки программирования

В Минцифры подготовили второй пакет мер поддержки ИТ-отрасли. В их числе – увеличение лимита доходов для самозанятых разработчиков с 2,4 млн рублей до 5 млн рублей в год.

31.03.2021    18888    user1015646    2       

2

Новость Образование Цифровая экономика Языки программирования

На основании данных, опубликованных международной рекрутинговой компанией Hays в «Исследовании рынка труда России в 2019 году», уровень заработной платы ИТ-специалистов вырос в среднем на 5-10% за 2019 год. Рост зарплаты в этой сфере отмечался и в предыдущих годах, что указывает на уже сложившуюся тенденцию.

14.02.2020    38639    AnastasiaKl    95       

1

Новость Языки программирования

Гвидо ван Россум, «великодушный пожизненный диктатор» Python, больше не работает в Dropbox. Разработчик не планирует оставаться в ИТ-сфере и уходит на пенсию. 

05.11.2019    33783    VKuser24342747    6       

4

Новость Образование Языки программирования

CodeCombat – платформа по программированию, которая в игровой форме учит детей кодить и разрабатывать приложения. Задачи в игровой форме можно решать на JavaScript или Python.

04.09.2019    22480    user1015646    14       

12

Новость GitHub

Pull Panda создает инструменты, которые помогают программистам совместно работать с кодом и проверять его. Теперь разработки стартапа бесплатно доступны всем пользователям GitHub.

20.06.2019    21090    user1015646    1       

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Darklight 32 20.03.20 12:42 Сейчас в теме
А 1С по-прежнему нет ни поддержки библиотек и пакетов кода (расширения тут не в счёт - это другое), ни инфраструктуры по их хранению и распространению, ни программной поддержки для управления их получением и развёртыванием. Печально, но, время одуматься ещё есть, четверть века ещё не минула
Лис Р; portwein; mrChOP93; ivanov660; tolya_kruglov; +5 Ответить
2. Vladimir Litvinenko 2889 20.03.20 13:15 Сейчас в теме
(1) Эх, скоро по наши головы будут отправлять оперативников в жёлтых толстовках, за такую "токсичность" ))
Но авторы новостей сами виноваты - постоянно дразнятся интересными событиями из мира технологий.

Тут нужно ещё сказать что мы с вами сами ждём библиотек от фирмы 1С. В том время как сторонние разработки, предлагающие библиотечный подход к разработке на 1С, не очень внимание привлекают: https://infostart.ru/public/1202858

В OneScript тоже библиотечный подход применяется и развивается, управление через менеджер пакетов opm. Если есть желание писать или использовать библиотеки для автоматизации собственной работы на языке 1С, то можно посмотреть в этом направлении.
3. Darklight 32 20.03.20 14:35 Сейчас в теме
(2)Причём тут токсичность. Я ведь никому ничего не вменял. Просто посетовал на жизнь.

В OneScript - да - с библиотеками дела гораздо лучше обстоят чем в классическом 1С. Несмотря на то, что самих библиотек для OneScript очень мало (но их уже больше (или около того), чем для 1С: Предприятие 8, если считать те, что выложены в виде cfu в пользовательском разделе сайта 1С, и те что немного выкладываются на инфорстарте (в виде cf иногда в виде cfe) - хотя за чистые библиотеки их считать нельзя - ибо такой поддержки в 1С Предприятие 8 нет совсем - это просто куски конфигураций метаданных - иногда чисто текстовые куски алгоритмов - но не перестающие ими быть - что после интеграции их в конфигурацию превразаются в тыкву хаотичную кашу метаданных и алгоритмов).

За ссылку на статью спасибо - интересная - идею всецело поддерживаю - но надо будет ещё подробнее почитать
4. Vladimir Litvinenko 2889 20.03.20 14:59 Сейчас в теме
Надо прекращать мне шутки в комментариях. А то оперативники в жёлтых толстовках в первую очередь за мной приедут ))
Просто посетовал

Да оно и понятно. Просто в последнее время так часто получается, что мы сетуем... понимая при этом, что ничего не изменится. Надо наверное жить с тем, что есть. Библиотечного подхода хотелось бы и чтобы 2104 общих модуля и более 1000 отчетов и обработок в ERP разнести по библиотекам и ограничить контекст работы в каждом модуле импортом. И чтобы в дереве метаданных больший порядок был. Но ведь этого не будет. Пока что только OneScript даёт возможность посмотреть как оно могло бы быть. Надо работать в текущей парадигме, где конфигурация - это в первую очередь схема данных СУБД, а общие модули - что-то вроде вместилища хранимых процедур в одном неймспейсе ))
5. Лис Р 5 20.03.20 15:44 Сейчас в теме
(4) 1C вряд ли изменится, но можно изменить/расширить/углубить свой стек. И тогда неважно будет, сколько там общих модулей в ERP, если пишешь на каком-нибудь Питоне и не касаешься 1С. Все, как говорится, в наших руках
6. acanta 20.03.20 15:49 Сейчас в теме
(4) а как вы предлагаете разграничить модули например казначейство и взаиморасчеты при использовании документов поступление денег на расчетный счет и списание денег с расчетного счета?
Импортировать во взаиморасчеты будете сами регистраторы или только движения?
Предположим что эти модули -разные базы СУБД.
8. Vladimir Litvinenko 2889 20.03.20 16:02 Сейчас в теме
(6)
#Импорт  Казначейство.*
#Импорт  Взаиморасчеты.*
#Импорт  ЭлектронноеВзаимодействие.ДокументооборотСКонтролирующимиОрганами

ВзаиморасчетыСервер.ЗаполнитьДанныеВыбораОснованияПлатежа(....)   //  можно вызвать стат.метод
ОбъектДокументооборота = ДокументооборотСКонтролирующимиОрганами.Новый();  // можно создать объект

Показать

После этого контекстная подсказка показывает не всю вселенную, а только то, что нужно в контексте текущей работы. В дереве метаданных не вызывается фильт по подсистеме (которую ещё найти надо, да и отфильтровать двум и более подсистемам - целый подвиг), а набрасывается "рабочий набор" объектов, с которыми работаешь. Общие модули и те же обработки организованы в дерево библиотек (классов)

Ну и для тех кто не хочет импортом заниматься можно сделать

#Импорт  Вселенная.*


Или вообще отсутствие директив импорта говорит о том, что по прежнему работаем со всей конфигурацией. Это позволило бы сохранить и обратную совместимость с текущими решениями и модулями.

Или хотя бы для контекстной подсказки сделать директивы импорта и тайп-хинты.

Например сейчас в EDT нет захвата объектов в хранилище. Там нельзя себе достаточно быстро рабочий набор объектов набросать. Такая штука как Workset там для этого в меню есть, но когда в последний раз смотрел - не работала, а может быть вообще для другого предназначалась )) Ну и вообще это бы не ограничило контекст текущего модуля.

P.S. Ну вот зачем Вы провоцируете работу воображения??? ))
Артано; ovcharenko.di; Лис Р; ErshKUS; Darklight; acanta; +6 Ответить
9. Darklight 32 20.03.20 17:02 Сейчас в теме
(8)Хорошо бы всё-таки пространства имён ввести и ссылаться уже через них - неважно где реально расположено их содержимое.

Но в таком подходе встаёт вопрос соприкосновения общих точек. Решается тремя путями
1. Большим разбиением на мелкие библиотеки с объединением их в пакеты
2. Установкой зависимостей библиотек друг от друга, а так же от наличия в конфигурации определённых типов метаданных
3. Абстрагированием алгоритмов до контрактов - т.е. когда библиотеке указаны зависимости от контрактов (API, можно представить в виде интерфейсов ООП, ну и Дженерик типы тут тоже хорошее подспорье - т.е. в алгоритмах повышается уровень абстракции) - и при использользовании данных библиотек им на вход нужно подавать данные, удовлетворяющие этим контрактам (каким бы реально объектом они не были бы - это для библиотеки будет не особо важно), а так же регистрировали для библиблиотеки фабрики создания объектов - для данных контрактов (если библиотека должна создавать их экземпляры) или применять иные техники передачи генераторов объектов (да хоть в виде ссылок на функции) - тут очень хорошо помогает применение методологии АОП. Тут ещё могут быть и объекты - представлния - позволяющие обернуть (с конвертацией) один объект в определённый контракт - чтобы передать его туда где ожидается этот контракт.

ну а в коде прописываются либо прямые пути к расположению нужных элементов в библиотеках, либо используются разные техники общего подключения контекстов этих библиотек (в т.ч. на всё решение (проект - элемент всей модульной конфигурации), или на отдельный программный модуль, или только на некоторую область внутри этого модуля - эти задачи в сорвеменных языках программирования очень эффективно решаются пространствами имён
Vladimir Litvinenko; +1 Ответить
13. tindir 23.03.20 08:57 Сейчас в теме
(9)Все отлично. Просто "прелесно"! И АОП и дженерик, нэймспейсы, и инкапсуляция во все поля.

НО приходит в группу по разработке казначейской подсистемы чувак в должности "а чо так просто" (а он в 1с явно есть судя по тому как меняются некоторые "блоки" от релиза к релизу) и говорит "а чо так просто?! вот эти два блока разделить на разные". Выходит релиз, который из-за таких "мягких" изменений ломает кчертям всю локальную разработку, т.к. должны быть выполнены переимпорты и модификация состава дженериков и прочее веселье.

НО приходит 1ц-программист в организацию и начинает писать код. Писать код быстро и по требованиям пользователя. Молодец. Ровно до пересечения его разработок с БСП. И тут кодер не заморачивается и делает "Вселенная.*" во всех модулях. И все. Импортнулись все модуля. Все модуля доступны все. Права не работают. Инкапсуляция нарушена. Дженерики выглядят как постаменты памяти павших программистов в окопах ООП.
14. Darklight 32 23.03.20 10:20 Сейчас в теме
(13)Пару раз так сделает - и поломает всё - и больше не будет - так на всех языках происходит - это и есть наибивание шышек
А если компания не хочет чтобы так было - то должна нанимать обученных специалистов - т.е. сертифицированных - которым рстолкуют как правильно нужно выстраивать архитектуру!
16. tindir 23.03.20 11:53 Сейчас в теме
(14) Вот у меня на руках база, где за 8 лет человек так и "не осознал", а научился изворотливо обходить все "эти ваши женырики и инкопсюляцыи". И сегодняшнего утра (УПП на 8 организаций). Так человек получает организацию "по умолчанию":
	
ОрганизацияВыборка = Справочники.Организации.Выбрать();
Пока ОрганизацияВыборка.Следующий() Цикл
	ТекОрганизация=ОрганизацияВыборка.Ссылка; 
	Прервать;
КонецЦикла;	


А вот так "мы" получаем в многофирменной компании (с большой сцепленностью по процессам внутр подразделений) подразделение организации:
ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(Элемент.Значение.наименование);


И после этого я "плохой программист", потому что опять сломалась загрузка
17. Darklight 32 23.03.20 13:14 Сейчас в теме
(16)Если культура программирования низка - то тут никакой язык не поможет - хоть с наворотами, хоть без. Решение - только кодревью - что очень популярно в среде боле менее серьёзных компаний, вне 1С - там инфраструктура своя есть для этого. С 1С до этого ещё далеко - но язык тут ни причём. Это скорее недостатки IDE и отсутствие соответствующей пропаганды.
Но дело будущее - это всё-таки автоматизированное кодревью - когда IDE сама анализирует код (в т.ч. с применением статистики реального выполнения) и показывает все "узкие" и не оптимальные места.
А далее - либо программист сам их исправляет (по полученным автосводкам и автогсгенерированным рекомендацимя - в т.ч. с автоматическим применением)
Либо они направляются более квалифицированному программисту на согласование и формирование конкретного TODO-списка исполнителям на устранение недочётов.
Но к языку это отношения не имеет - язык тут только обеспечивает возможности сделать то или иное решение более качественно и оптимально.
А сверхвыскоуровневые языки (идеологию применения которых я пропагандирую), например, ещё и могут сами оптимизировать тот код, что на них написан.
Вот, написанный Вами выше алгоритм - будучи предствленным в семантики сверхвысокоуровневого языка (некоего гипотетического для данной предметной области) был бы вполне оптимальным - ведь сверхвысокоуровневые языки не исполняют свою код как набор прямых инструкций - а воспринимают его как набор потребностей - и могут их реализовать наиболее оптимальным способом. Так, как это делает, скажем, движок языка SQL

Хотя вот с этим
ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(Элемент.Значение.наименование);

Конечно автоматизированно очень тяжело бороться - но отчасти тоже можно. Но тут никакой язык с этим не поможет
18. tindir 23.03.20 14:06 Сейчас в теме
(17) У нас светло-солнышко Лустин есть. НО он двигает тему для корп (нет, не так.) К О Р П сектора. И желтый заяц и огурец это все здорово. НО (уже ощущаю себя погонщиком, постараюсь больше так не делать) есть Я (нет, не так) я. Линейный кодер в торговой сети, на 30-50 юзверей. Мне просто некогда писать автотесты, а то что АВТОтесты надо писать, и это отдельный сорт извработы.
Про культуру ой не надо. Есть прекрасные книги и ИТС, в которых даже написано ГДЕ должен стоять реквизит "Организация" на форме, и почему он должен быть. НО Доколе Феодосий из Кемерава думает, что в ЗУПе обертывание конечного исполняющего кода в 33 интерфейса в разных подсистема "ну, перемудрили" и не включает рефлексии...причем он один на все "село".
По поводу кода выше: первый кусок с организацией прекрасен! НО Блдажжж! Хоть и работает он только когда РЛС реализует пользователю только право на одну организацию. А как только человек начинает вести две организации, то не только этот кусок кода разваливается, а вообще вся самописная подсистема. И вот тут встает вопрос не о "культуре питья", а об банальной рефлексии (как основополагающем определении живого существа) человека на внешние раздражители. Если задача "а сделай нам, что бы мы услуги одной кнопкой выставляли" не вызывают вопроса "а как вы это будете делать? а если услуг внутри периода может быть несколько? А если услуги будут одинаковыми?", то это и есть отсутствие рефлексии. Которая по итогу рождают мертвую идею (а код все-таки больше ИДЕЯ, чем набор операндов, которые оптимизатор оптимизирует для транслятора, который транслирует все стек машину обернутую в...кхм). И для мира 1С высокопарные заявления, что "вот дайте нам npm/inteliSence/git/jit/BDD/TDD и мы вообще тут всех в прах и пух разобьем!". Машков: "Время ходить по большому, пукать надо было раньше." это не про нас ("программистов-разработчиков" по резюме и "технолог мучных изделий" по диплому).
oleg-m; Артано; +2 Ответить
7. 3vs 20.03.20 16:00 Сейчас в теме
(1)Ну, может и в 1С когда-нибудь появится свой Исаак Шлютер! :-)
10. pavel06 2 21.03.20 11:22 Сейчас в теме
Интересно, как там монетизировано использование чужих библиотек.
11. Darklight 32 21.03.20 13:03 Сейчас в теме
(10)По большей части они бесплатные - это современный тренд - зарабатывай не на сообществе - зарабатывай на бизнесе - поэтому максимум что бывает - это формальные лицензионные ограничения - требующие оплатить коммеречское использование или отдельно бывают расширенные платные версии библиотек - с отдельными фишками. Ну и донат там тоже очень популярен
12. pavel06 2 21.03.20 18:06 Сейчас в теме
(11)
зарабатывай не на сообществе - зарабатывай на бизнесе


Сомнительная парадигма. Так бизнес будет зарабатывать на сообществе, по примеру Инфостарта, когда он был бесплатным и доступным.
15. Darklight 32 23.03.20 10:33 Сейчас в теме
(12)Написал как есть - там бизнес не особо зарабатывает на сообществе - там бизнес больше думает о привлечении внимания к себе и своей деятельности этого сообщества как потенциальных вкладчиков в этот бизнес (интелектуальных или коммерческих - но по основной деятельности)
Оставьте свое сообщение