【Effective Java】項目47:ライブラリーを知り、ライブラリーを使う

標準ライブラリーの利点

標準ライブラリーを使うことには大きなメリットがたくさんあります。

第一に自作ライブラリと比較して、標準ライブラリは非常に完成度が高いです。 高度なバックグラウンドをもったシニアエンジニアが設計、実装、テストを行っています。 そして、その分野の専門家がレビューし、数百万のプログラマによって実際に使われ、実際にフィードバックを受けています。

また、標準ライブラリは何もしなくても時間と共にパフォーマンスが改善される可能性が高いです。 それらは多くの人々に利用されていて、業界標準ベンチマークとなります。 そのため、ライブラリーの作成者はパフォーマンスを改善する強い動機を持っているのです。

機能追加

標準ライブラリーは主要リリースごとに数多くの機能が追加されます。 Java ではリリースごとに新たな機能が追加され、それらを説明するウェブページを公開しています。

例えば Java8 の機能に関してはWhat's New in JDK 8で説明されています。

ライブラリー自体は大きいのですべてのドキュメンテーションを読むことはできないでしょう。 ただし、すべての Java プログラマjava.lang、java.util、java.io については知っておくべきです。

また、java.util のコレクションと java.util.concurrent についても知っておくべきでしょう。

感想

ライブラリを自作することに関しては、

(ライブラリを自作する)その主張は通常次のようなものです。

 

「完全なロギング / スケジューリング / キャッシング・パッケージは必要ありません。シンプルなものが必要なだけなので、それを実行するものを作成するだけです。そして、それは、特定のニーズに対応したものになるでしょう」

 

しかし多くの場合、作成したシンプルな機能ではすぐに足らなくなり、機能を次から次へと追加したくなり、最終的には完全なインフラストラクチャー・サービスを作成しています。その時点で、通常、既に作ってしまったものがいいものであろうとなかろうと、それから離れられなくなってしまっています。すでに独自のものを作成する全部のコストを支払っているので、汎用の実装へ移行する実際の移行コストに加え、「サンク・コスト」(投下済み費用)の壁も克服しなければならないでしょう。

https://www.ibm.com/developerworks/jp/java/library/j-jtp1126/

という話が「ああ、ほんとその通り」と思ったことがある。