2016-04-03 7 views
1

npmのpackage.jsonファイルを調べたところ、npmは実際にはlodashなどの依存性の高いnode.jsパッケージであることがわかりました。これは、多くのnpmパッケージを破ったleft-padパッケージで発生した状況がnpmにも影響する可能性があることを意味します。 私はいくつかの傾向があることを知っています:pipはPython、RubyのRubyGems、PHPのComposer、JavaのMavenなどで書かれています。しかし、ターゲット言語でパッケージマネージャーを書くのは良いですか?なぜnpmはJavaScriptで書かれたのですか?

+1

"なぜですか?" –

+0

サイドノートでは、 'node'はPythonとC++で動作するので、ノードスタック全体が単独で書かれているのと同じではありません。JS – Quill

答えて

2

非常に理由がNPMは、パッケージマネージャは、その実行時の言語で書かれてすることは自然であるのNode.js

JavaScriptのランタイム環境のデフォルトのパッケージマネージャであるということです。

3

より具体的には、npmは、npm-を使用して書かれました。JavaScriptはnpm leftpadの事件を何もしません。

  1. ソフトウェア依存関係を管理するためのツールです。彼らは1つを使用する必要があります。彼らは他の誰かを使用することを提案しますか?もちろん、あなたがあなたの製品を信頼するならば、それをあなた自身で使うつもりです。
  2. 左のパッド「インシデント」は、深刻な問題が発生するまで、明らかに深刻な懸念を予測したり考えなかったりしたソフトウェアの欠陥以上のポリシー上の欠陥でした。したがって、なぜこれがnpmを使用しない理由になるのでしょうか。
  3. ホストされている何十万ものパッケージのうち、あまりにも頻繁に起こったことはありませんか、ずっと前に修正されていたでしょう。それはかなり印象的です。
  4. キャッシングポリシーを更新するだけで簡単に修正でき、npmに対する脅威でもありません。
  5. 他のパッケージ管理ツールにも同様の問題があった(あるいは悪い)。たとえば、資金調達が不足しているため、Mavenリポジトリ全体がオフラインになりました。これは集中管理されているため、npmには起こりそうにないです。集中していることを確認することに関心のある多くの大きなステークホルダーがいます。
  6. このようなインシデントは、生態系をより安定して成熟させるものです。
  7. すべてのストーリーと同様に、これはすぐに吹き飛ばされます。
+0

_「npmには起こりそうにありません。 npmは分散されておらず、サーバーはまだフリーではありません。 –

+1

そのためですnpmは集中管理されています。 Google、マイクロソフト、リンゴなどの企業はあまりにも多くの企業がnpmにソフトウェアを持っているので、資金が足りなくなったら救済するためのレポは1つだけです。 Mavenは分散化されているため、いずれか1つのリポジトリが失敗し、致命傷を引き起こす可能性があります。 – chriskelly

+0

面白い、それは意味がある:) –

関連する問題