言語的特性は本質的問題ではない

質問: Java における、本質的でない冗長な記述は、どのように大規模開発に役立つのでしょうか。
Java における本質的でない記述がどのように大規模開発に役立つのか - kなんとかの日記

「特に役立つわけでもないし、特に邪魔にもならない」が回答です。

SIでJavaが採用される理由は、大体↓だと思っています。言語的な特性は静的型付けなこと位です。

  • 実績がある
  • 扱える技術者が多い
  • コミュニティが活発
  • 商用/オープンなフレームワーク/ライブラリが豊富
  • 静的型付けの信頼性
  • 主な開発環境がフリー

要するに、「Javaは無難である」に尽きます。で、開発規模が大きくなるほど開発面より管理面が難しくなる。これが、大規模開発であるほどJavaに傾く理由なんじゃないかと思っています。

大規模案件をPythonで…ってなると、実装面のリーダーをどれだけかき集めなきゃならないか。C#も良いとは思いますが、逆にC#じゃなきゃならない理由はほとんど考えつきません。アクセッサは便利だろうけど、乗り換える理由としては弱すぎます。

というか、SI屋にとって本質的な問題は「要件定義」であって、言語的特性が本質的かどうかは問題ではありません。もしもJavaの言語的特性が要件定義の足かせになってるとしたら、乗り換える理由に成り得るでしょうね。

蛇足

正直なところ、大規模云々言う人にまず「大規模である条件とは?」って聞いてみればいいと思いますが…。アジャイルの話題が出るたびに「良いと思うけど、大規模開発には採用できない」みたいな意見を見るけど、個人的には「何でだよ!」って疑問に思ってます。手戻りを想定していないウォーターフォールの方がよっぽど優秀な設計者をかき集めなきゃ!

自分としては、犬小屋ごときでサボれないのに高層ビル建築でサボれるわけないじゃんと思いますが
Java における本質的でない記述がどのように大規模開発に役立つのか - kなんとかの日記

この意見には大賛成です。プログラムは単純な処理のかき集めなので、色んな犬小屋を合体させると何故か高層ビルが出来上がる、そんな世界観です。