web-dev-qa-db-ja.com

開発速度の目安

プログラミング言語の実行速度を測定する多くのテストを見てきましたが、開発速度を測定するテストを見つけたことがありません。

動的言語で作業すると開発速度が上がると聞きましたが、その証拠はありますか?動的言語が効率的でないと言っているわけではありませんが、もしそういうものが存在するなら、科学的な研究の結果を見たいです。

さらに良いのは、保守施設に関する情報です。一部の言語は他の言語よりデバッグが簡単ですか?

編集:私は主に、構文が近い2つの言語の違いに興味があります。たとえば、Cでのプログラミングは通常、Javaでのプログラミングよりも遅くなると思います。 JavaでのプログラミングはC#でのプログラミングよりも高速ですか?

10
DistantEcho

もちろん、プログラミング言語は違いをもたらします。ただし、特に同様の構文を持つ言語の制約を考えると、言語の特定の側面よりも、プログラマーが各言語に慣れ親しんでいることがはるかに異なると思います。

6
JohnFx

私にとってこれは、どのタイプのペイントブラシですばやくペイントできるかに似ています。

あなたが商品を何をペイントするかを考えると、ブラシが大きいほど、ペイントが速くなります。

優れたコードをアートフォームと見なすと、ブラシのサイズよりもブラシの方が正確です。

申し訳ありませんが、これは実際の質問に対する答えではありません。

2
DanSingerman

これが適切かどうかはわかりませんが、興味深いです

Mythical Man Monthで、フレッドブルックスはアセンブリ言語と高レベル言語を比較した研究について言及しています。彼らは、プログラマーが両方で年に同じ量の命令を生成したが、高水準言語の命令は複数のアセンブリ言語の命令に等しいことを発見しました。したがって、高水準言語に切り替えることにより、プログラマーは、アセンブリー命令から言語命令への平均的な倍数が何であれ、生産性の向上を達成しました。

C対Java/C#についても同様です。C#とJavaの実際の違いはわかりません。しかし、抽象化のレベルを上げるたびに、生産性が向上します。しかし、それはまた、マシンが実際に行っていることに対する制御を減らすことになると思います。あなたは言語があなたが望むことをしていることを信頼しなければなりません。たとえば、高性能ソフトウェアでは、実行時と実行時間を完全に制御できる場合を除いて、ガベージコレクションは受け入れられません。

1

生産性とは? productとは何ですか?数学的に言えば、誰にもわかりません。

KLoC?

循環的複雑度?

機能ポイント?

ビジネスレベルを見て、同様の作業をしている他のプログラマーとのパーセンタイル比較を実行し、プログラマーごとに提供される機能を測定する必要があると思います。それらは統計的に意味を測定して保持することができるように非常に洗練された微妙なポイントです。

1
Paul Nathan

これがどのようにテストされるか想像してみてください。同じ言語(プログラマーの経験と知識のばらつきを取り除くため)と異なる言語(言語を比較するためのデータを取得するため)の両方で繰り返し独立して開発された現実世界のプロジェクトが必要です。実験はすぐに手に負えないサイズに成長しているように思えます。

実験を「縮小」する方法、または前述のように実際に実験を実行する試みについて聞きたいです。

0
kasterma