• ベストアンサー

javascriptのnpmとは

npmを検索するとたくさんでてきますが、python のpip 、javaのMavenみたいな感じです、みたいな説明ですが、そもそもパッケージ管理なんて使ったことがないのでイマイチよさが分かりません。パッケージを管理しなくても困ることがないような趣味程度のプログラミングしかしていませんが、パッケージを管理すると何がいいのでしょうか? 具体的にパッケージを管理しないとこんなまずいことになるとか例えがあるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5085/13290)
回答No.2

> そのアプリはたくさんのライブラリを使用しており、どれがどれに依存していたのかも忘れたとしても、コマンドひとつで全部自動で動くようにまでしてくれるということでしょうか? > どこまでが手動で、どこまでが自動なのかがイマイチ解りません。 パッケージ管理を使ってインストールしたライブラリは、何をインストールしたかを管理するデータが作成されるので、そのデータを元にコマンド一つで復元が可能です。 各ライブラリには、そのライブラリが必要とする他のライブラリの情報が書かれたデータファイルが付属しているので、依存関係にあるライブラリが全て自動でインストールされます。 ご自身が作ったプログラムを他のマシンにインストールする際も、ご自身が作ったプログラムとライブラリの情報が書かれたデータファイルをコピーして、あとはパッケージ管理を使ってインターネット経由で必要なライブラリをインストール出来るので、ご自身で管理するプログラムは自分で作った分だけで済ませられるので、管理するプログラムの容量が小さくなるメリットもあります。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5085/13290)
回答No.1

自分が書いたプログラムだけで全ての処理が完結するのであればパッケージ管理は必要ありません。 ある程度処理内容が複雑になってくると、プログラムを書いたり動作確認をする時間が多くなり開発工数を圧迫してしまいます。 そう言った場合、必要な処理を既存のライブラリを使う事で賄えるのであればコーディング、単体テストの時間を省く事が出来ます。 しかし、利用するライブラリ自体が他のライブラリに依存していたり、バージョン依存がある場合はインストール作業が面倒ですし、自分が書いたプログラムで利用したライブラリがバージョンアップで互換性が無くなった場合など依存関係が発生した場合に、特定のバージョンのライブラリをインストールして利用しなければいけなくなり管理が煩雑になってしまいます。 そう言った依存関係を含め外部ライブラリを容易にインストールしたりバージョンアップの管理等を容易にしてくれるのがパッケージ管理です。 かつては、あるプログラムを利用するために依存するライブラリを十数種類バージョンを確認しながらコツコツとインストールしたりしたモノですが、今はパッケージ管理を使えばコマンド一つでインストールできるので便利です。

takahasi5634
質問者

補足

回答ありがとうございます。 例えば自分の作ったアプリが今まで動いていたのにいつのまにか動かなくなっていたとして、 そのアプリはたくさんのライブラリを使用しており、どれがどれに依存していたのかも忘れたとしても、コマンドひとつで全部自動で動くようにまでしてくれるということでしょうか? どこまでが手動で、どこまでが自動なのかがイマイチ解りません。

関連するQ&A

  • 電子帳票&電子印鑑のパッケージ開発用プログラム言語

    http://dstmp.shachihata.co.jp/solution/about/ パソコン決裁(電子文書(プリントアウトせずペーパーレスでe-文書法にて管理)、電子印鑑) 例えば、上記の様なパッケージを開発するなら どのようなプログラム言語が適しているでしょうか? と言う質問です。 JAVAに関してもメリット、デメリットがあるわけで、 JAVAが良いと言う話もあるのは、JAVAは、Swing、JavaFx、AWTなどGUIが得意だからでしょうか? Python&Cycloneフレームワークや、Go lang&Ginなどで、電子帳票、電子伝票、電子印鑑システムなどのパッケージを開発するのはメリット、デメリット、開発効率、コストなど何が良くて何が悪いのかなど、何か情報を与えて頂けないでしょうか? クライアント一万同時アクセス問題にも対応する方が良いと思います。 JAVAは、2018年現在、今後サポートが有料になったり、バージョンアップを今後は、より頻繁に行なって行く方針が発表され、企業とプログラマーから嫌われているのではないでしょうか? しかし、私の知っている情報が浅くて、 もっと具体的に、JAVA、Python、GO言語あたりで、 電子書類、電子帳票、電子印鑑、などのパッケージ開発に どのプログラム言語が向いている向いていないなどがあれば、 教えて頂ければ幸いです。

  • JavaScriptからJavaのプログラムを起動

    JavaScriptからJavaで作ったプログラムを起動させたいのですが、可能でしょうか?具体的には、Firefoxの拡張機能を作っているのですが、Firefoxで処理した情報をJavaのプログラムに引数として渡すことを考えています。 過去の質問や検索の結果、WSHで実現できるのではないか考えたのですが、自分の理解・勉強不足もあって実現に至っていません。セキュリティの問題でやはり無理なのでしょうか?そもそも理解が間違っているのか?可能であれば、方法を伝授していただければと思います。 またWSHに限らず、このような方向性ではどうかといった助言もいただければと思います。

  • javaの学習で

    大学でjavaを習っているんですが、難しくって困っています。僕はプログラミング言語を初めて習うんですが、授業はほとんど説明がなくいきなりプログラムを作っていくという感じなのでほとんどわからなくて困っています。なのでjavaについて詳しい解説がのっているいるサイトとプログラミングの演習が回答のっているサイトを教えてください。お願いします。

    • ベストアンサー
    • Java
  • python を使って SNS 作成

    現在、pythonを学習中のプログラミング初心者高校生です。初級者にわかりやすいとのことでpython勉強し始めました。しかし、スクリプト言語にはphp perl rubyなどがあるので僕の選択肢が正しかったのか不安になってきてしまいました。 とりあえず今のところpythonとhtml,cssの勉強をしています。その後javascriptなどを学ぶつもりです。 そこで質問があります (1)Pythonを使った場合sns作成の、最善な方法(直線的に、どの言語を学び具体的にどのように作っていくべきか) (2)そもそもpythonではなくそれ以外のスクリプト言語の方がSNSを作るのに向いているのか  またその場合どのような手順で進めるべきか *僕が作りたいのはアメーバピグのようなゲーム要素は取り入れないつもりです どうかご教授宜しくお願いします!

  • Python? PsychoPy?

    以前、どのプログラムをやればいいかというような質問をさせていただいたものです。 その時の皆様のご回答により、早速Pythonをやろう!と意気揚揚だったのですが・・・。早速路頭に迷っております。 Pythonを検索しているときにPsychoPyというものを見つけました。心理学実験に使用するプログラムがさらりと組めるようになりたいということが目標なので、こんなソフトウェアがあったのか!と嬉しかったのですが、Pythonとは別物?みたいです。 Pythonの心理学実験用みたいな感覚だったのですが、まったく違うのですか?GUIというか、視覚的に操作できて、プログラムって感じからは程遠いです。Presentationのように、視覚的な操作ではだめになったときに、コードを書くようなプログラミングが登場するのですか? この2つの違いを、(サルでもわかるように)詳しく教えていただけますでしょうか。 どっちをやるべきか・・・

  • 携帯アプリ作成手順

    ほんの趣味ですが、携帯アプリを自作しようと考えているものです。 JAVAが基本であるとか、各キャリアごとの云々…という話は聞くのですが、肝心の製作の流れが理解できていません。 Google検索などでは、調べ方がよくないのか『作成代行業』のようなサイトばかりが拾われて目的のサイトが見つけられませんでした。 プログラミング自体は何とかできるので、そういった『流れ』を説明しているサイトをご存知の方がいましたらどうか紹介してください。よろしくお願いします。

  • 工高1年生でも解るJAVAの入門書

    はじめまして、私は工業高校1年生なのですが、これまでも趣味でVisual Basicでのプログラミングをある程度していました。 学校ではC言語を勉強しているのですが、iアプリの開発をしてみたいと思い、JAVAを勉強しようと思いました。 そこで、工業高校1年生レベルでも解るJAVAの入門書がないかと探したのですが、なかなかどんなものがいいのかわかりませんでした。 私がVBを勉強したときには、林晴比古さんの「明快入門 VisualBasic 2005」を読んで勉強していました。できればサンプルプログラムがたくさんあって、説明がしっかりとしている本が良いと思うのですが……よろしくお願いします。

    • ベストアンサー
    • Java
  • もし仮に5つの言語(Python, Java, C/C++, Perl

    もし仮に5つの言語(Python, Java, C/C++, Perl, LISP、アセンブラ)を学ぶとした場合の学習順序 こんばんは。 もしこの5つを何年かかけて学ぶとした場合、この学習順序をどうおもいますか? ちなみにこの5つの言語は、linuxなどのOSやオープンソースソフトウェアの開発に携わっている方たち(ハッカーの方たち) が、OSや言語開発をするなら学ぶべき言語として主張していました。(クラッカーではなくハッカーです) この方たちがいうには pythonをはじめに学習し、次にjava それからC/C++, Perl, LISP、アセンブラの順番が良いと言っていました。 特にpythonを一番に学び、javaを2番に学ぶべき理由としては↓ まず Python から始めることをおすすめします。設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん対応しています Java もプログラミングを学ぶにはよい言語です。 Python よりはむずかしいですが、できるコードは Python より高速です。二番目の言語としてはとてもすぐれていると思います。 本気でプログラミングをするなら、C を勉強するしかありません。これは Unix の中核となる言語です。C++ は C と密接な関係にあります。片方を知っていれば、もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に勉強しようとするのには向いた代物ではありません。 それ以外に Perl と LISP があります。Perl は実際的な意味からも勉強しておく価値があります。アクティブ Web ページやシステム管理にとても広く使われているからです。自分では Perl を使わなくても、読めるようにはなっておきましょう。LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。 さらに、visualbasicやC#などはやめた方が良い。と主張しています。↓ ウィンドウズの下でハッキングを学ぶのを、拘束衣を着て踊りを学ぶのに例えたのは、あれは冗談じゃないんですよ。 Visual Basic や C# にはそれぞれ個別に問題があります。その大きなものは、移植性がないことです。マイクロソフトの独占言語だというだけで、もうすでに失格ですし、ほかの Basic と同じく言語としての設計もまずく、悪いプログラミングの習慣が身についてしまいます。 足りなかったのでこちらに。 みなさんはこの順序や考えについてどうおもいますか? 本当にpythonは最初に適した言語なのでしょうか? 長文になってしまい申し訳ありません。 できればひとりでも多くの技術者の意見が聞きたいです。なんでもかまいません。 もし良ければ回答お願いします。

  • 検索エンジンのつり方

     独自の検索エンジンを作りたいと思っているのですが、 JAVA程度しか知識がなく、他の知識は詳しし知識を持っている知人がいるので、共同でやりたいと思ってるのですが、何かためになるサイト、資料、知っておかなければいけないプログラミング用語ありましたら教えてください。

  • Access プログラミング

    Accessのプログラミングというのはどの位の難度なのでしょうか?Accessに関しては遊ぶ程度にしか使ったことがありません。プログラミング自体はC++,Java等問題なく、データベースはMySQLをPHPと連動させて、予約システムや在庫管理などを作ったことがあります。 下調べとして、いくつかのHPを見て簡単そうに見えましたが、実際にやってないものでプログラム経験者の方の意見をお聞きしたいです。2日程度の勉強で、なんとかなるものでしょうか?