開発者として、私はあなたの人生を楽にしてくれる新しい言語機能に興味を持っています。たとえば、Java 5はジェネリックとアノテーションをその言語にもたらしました。あなたの生産性を確実に高めることができる機能です。私は戻ってJavaプラットフォーム上で作業を十年近くで見るとプラットフォームの強制的なバージョン管理メカニズムは、Javaの最も痛烈に必要な機能ですか?
はしかし、私はバージョン管理関連の問題は非生産的と不費やした努力の最大の犯人であることを見つけます。正しいバージョンのjarファイルを探したり、いくつかのバージョニングの競合を調整したり、依存ライブラリをアップグレードしたりするのにかかる時間と時間。Javaで作業を開始したときには、それほど難しくありませんでした。 。今日の典型的なWebアプリケーションでは、Spring Framework、Hibernate、Strutsのように簡単に使用できます。これらのすべてには、多数の従属第三者図書館があります。今日、私の耳のアーカイブには通常、40以上のサードパーティのライブラリが含まれています。本当の瓶詰め!
注釈では、たとえば、Hibernateの設定ファイルを管理する必要はありません。素晴らしい機能ですが、私の記述子を別々のファイルに保管しているという事実から多くの問題が発生しているのを見たことはありません。ジェネリックでは、キャスト文を書くことはできませんが、プログラミングキャリア全体では、タイプセーフなコンテナを使用することで防ぐことができたバグを覚えていません。バージョン管理の問題に対する解決策がはるかに価値があったでしょうか?
すべてのこれらの問題は、(冗談ではない!)Maven、ivy、One Jar、Jar Jar Linksのようなツールの数をもたらしている、でも適切Jar Hellという名前などあなたがこれらのツールのいくつかを使用している場合でも、あなたははるかに影響されないからです問題。私はMaven 2を使用しており、大きな助けとなっています。それでも、それはそれ自体の世界です。初心者のプログラマーは、それを学ぶのにしばらく時間がかかります。レガシープロジェクトをMaven構造に移行することも苦労します。
.NETで、彼らはDLL地獄と.NETアセンブリの管理と教訓を学んだようだ
ははるかに簡単です。OSGIのようなJavaプラットフォームと代替のためにこの問題を解決する計画があるようです。私はいくつかの基本的なプラットフォームと強制バージョン管理機構がひどくJavaはライブラリはOSにより密接に結びついているということである上、.NETが持つ
これは質問よりも解説のようです。 – cletus
私はそれが両方のビットであると思います(解説と暴言)。 私は基本的に他の人が私と同じ苦労をしているかどうかを見たいと思っていました。これまで何年もの間、これは私のチームにとって最も緊急の必要でしたが、この問題を効率的に解決できないという不満を感じます。 – Dan
Rantかどうかは、まだ正当な質問です。投稿の本文に質問が繰り返されていなくても、タイトルは少なくともあります。 – tvanfosson