アカウント名:
パスワード:
>私の同僚は非常に頭がよく、ソフトウェアの知識も豊富だという情報が真ならば、以下のように考える。
>すべてのプログラムは1つの関数に詰め込まれ、際限ない繰り返しのせいで無駄に引き伸ばされている→関数呼び出しのオーバーヘッドが無視できないくらい大きいプロジェクトであるということを同僚は把握している。
>変数名やクラス名から得られる情報は泣きたくなるほど少ない→変数名やクラス名を冗長にすることのデメリットが、そうでない場合のメリットを上回って大きいことを同僚は把握している。
>コードを短く、読みやすくするための基本的な言語機能は無視されて
そういう記述が必要な場面もある、ということはわかりますが、いまどきのコンパイラはしかるべきコンパイルオプションを指定すれば関数呼び出しのインライン展開やループ展開くらいしてくれます。(最適なオプションを見つけるのに多少の試行錯誤は必要ですが、手で展開するよりは楽でしょう)
初期のガラケーのJavaアプリなんかはメモリ制限やJavaランタイムの最適化機能の関係でOOP言語らしからぬ記述が必要でしたが、そのうちバイトコードレベルの最適化変換機が出現し、さらに機器やJavaランタイムの性能も向上して、いまどきはそういう記述の必要も薄れています。
MozillaがOSSになった頃のC++ Coding Style Guidelineには「C++じゃなくてBetter Cだからな、コードを短く、読みやすくするための(CになくC++で追加された)基本的な言語機能は無視しろ」とあったのですが(今もかな?)これはMozillaは移植性を高く保つ必要があり、当時のC++コンパイラの中には実装が不十分なものがあった、という制限の元での特殊事情です。
件の同僚は「私が生まれる前からプログラミングをしており」とのことなので、貴方の言うようにオーバーヘッドを考慮してそういう記述をしているのだとしても、コンパイラの最適化がしょぼくて手で最適化せざるを得なかった時代の記述スタイルのままの可能性があります。
最終バイナリのアセンブリダンプとベンチマークで確認しながら進めていれば、そういう記述が必要な場面というのはそれほど無いと思います。
「ソフトウェアの知識も豊富」というのが真ならば
コンパイラがどの程度最適化しているのかは把握しているし把握しようとしているはずでしょう。;
だったら、コンパイラが最適化できない環境であるということなのではないでしょうか?
>コンパイラの最適化がしょぼくて手で最適化せざるを得なかった時代の記述スタイルのままの可能性があります。そうならば、「ソフトウェアの知識も豊富」では決してないわけです。
質問者がソフトウェア開発に不向きであるということが質問文から読み取れるわけでそればらな、その質問者がとやかく言える立場でないことは明らかでしょう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
えっと (スコア:0)
>私の同僚は非常に頭がよく、ソフトウェアの知識も豊富だ
という情報が真ならば、以下のように考える。
>すべてのプログラムは1つの関数に詰め込まれ、際限ない繰り返しのせいで無駄に引き伸ばされている
→関数呼び出しのオーバーヘッドが無視できないくらい大きいプロジェクトであるということを同僚は把握している。
>変数名やクラス名から得られる情報は泣きたくなるほど少ない
→変数名やクラス名を冗長にすることのデメリットが、そうでない場合のメリットを上回って大きいことを同僚は把握している。
>コードを短く、読みやすくするための基本的な言語機能は無視されて
Re:えっと (スコア:1)
そういう記述が必要な場面もある、ということはわかりますが、
いまどきのコンパイラはしかるべきコンパイルオプションを指定すれば関数呼び出しのインライン展開やループ展開くらいしてくれます。
(最適なオプションを見つけるのに多少の試行錯誤は必要ですが、手で展開するよりは楽でしょう)
初期のガラケーのJavaアプリなんかはメモリ制限やJavaランタイムの最適化機能の関係でOOP言語らしからぬ記述が必要でしたが、そのうちバイトコードレベルの最適化変換機が出現し、さらに機器やJavaランタイムの性能も向上して、いまどきはそういう記述の必要も薄れています。
MozillaがOSSになった頃のC++ Coding Style Guidelineには「C++じゃなくてBetter Cだからな、コードを短く、読みやすくするための(CになくC++で追加された)基本的な言語機能は無視しろ」とあったのですが(今もかな?)
これはMozillaは移植性を高く保つ必要があり、当時のC++コンパイラの中には実装が不十分なものがあった、という制限の元での特殊事情です。
件の同僚は「私が生まれる前からプログラミングをしており」とのことなので、
貴方の言うようにオーバーヘッドを考慮してそういう記述をしているのだとしても、
コンパイラの最適化がしょぼくて手で最適化せざるを得なかった時代の記述スタイルのままの可能性があります。
最終バイナリのアセンブリダンプとベンチマークで確認しながら進めていれば、
そういう記述が必要な場面というのはそれほど無いと思います。
Re: (スコア:0)
「ソフトウェアの知識も豊富」というのが真ならば
コンパイラがどの程度最適化しているのかは把握しているし把握しようとしているはずでしょう。;
だったら、コンパイラが最適化できない環境であるということなのではないでしょうか?
>コンパイラの最適化がしょぼくて手で最適化せざるを得なかった時代の記述スタイルのままの可能性があります。
そうならば、「ソフトウェアの知識も豊富」では決してないわけです。
質問者がソフトウェア開発に不向きであるということが質問文から読み取れるわけで
そればらな、その質問者がとやかく言える立場でないことは明らかでしょう。