Sun Javaコーディング規約ドキュメント(ここ:http : //www.oracle.com/technetwork/java/codeconv-138413.html)には、次のように記載されています。
「ソフトウェアのライフタイムコストの80%はメンテナンスに費やされる」
この統計の出所を知っている人はいますか?アサーションを疑うことはありませんが、私は帰属なしで統計を作成することもできます。他のステートメントの基礎として使用し始める前に、これがどこから来たのかを知りたいのです。
Sun Javaコーディング規約ドキュメント(ここ:http : //www.oracle.com/technetwork/java/codeconv-138413.html)には、次のように記載されています。
「ソフトウェアのライフタイムコストの80%はメンテナンスに費やされる」
この統計の出所を知っている人はいますか?アサーションを疑うことはありませんが、私は帰属なしで統計を作成することもできます。他のステートメントの基礎として使用し始める前に、これがどこから来たのかを知りたいのです。
回答:
最初に、メンテナンスの意味を定義する必要があります。通常、50%を超えるメンテナンスコストには、機能強化と欠陥の除去が含まれます。
80%の数字は特定の調査に直接起因するものではないようですが、このページで言及されている調査の50%を超える範囲にいくつかの信頼できる数字があります:https : //web.archive.org/web/ 20120313070806 / http://users.jyu.fi/~koskinen/smcosts.htm
応用ソフトウェア測定の表3-7 、第3版。調査した8200のプロジェクトのうち、新たに開発されたのは2410のみであることを示しています。1385年はメンテナンスプロジェクトで、残りは拡張プロジェクトでした。これは、既存のコードを維持しているプロジェクトの約70%に相当します。
バリーベームのソフトウェア工学経済学。そして、それは80%ではなく、50%-75%です。
第30章。ページ533-534。
http://www.amazon.com/Software-Engineering-Economics-Barry-Boehm/dp/0138221227
Java Code Conventionsから-1997年9月12日、Sun Microsystems。
この引用は、以下のドキュメントの紹介に表示されます。
1.1コード規約がある理由
2011年までに、このドキュメントはかなり古くなります。ソフトウェアとシステムは、Javaを含む、およびJavaを除く多くの言語で開発されています。
ただし、Javaは非常に遅く、C / C ++に比べてメモリフットプリントが非常に大きくなります。一部のユーザーは、PHPやC / C ++などの他の言語と比較して、Javaの実際の実行速度が遅いことを経験すると、プログラムに問題があると思うことがよくあります。次に、パフォーマンスを改善しようとして無駄にお金が費やされます。このため、私はいつも、タイタニック号に飛び乗り出航する人々の動機に疑問を投げかけています。Javaで多くのプログラムを実装することは意味がないので、特にパフォーマンスやメモリフットプリントが問題になる場合はそうです。
LinuxやPythonやC ++でbashスクリプトと同じソフトウェアを実装するよりも、Java実装であるためにJavaで何かを実装するのに多くの時間を費やす人を実際に目にしました。
Javaを絶対に避けないように言っているわけではありませんが、適切な仕事に適したツールがあり、最近のJavaよりもはるかに多くのツールがあります。
ついにJavaを非推奨にしたAppleにおめでとう。