パスワードを忘れた? アカウント作成
92304 story
プログラミング

将来しなくても良くなるコーディングテクニック 141

ストーリー by reo
規模によりにけり 部門より

Anonymous Cocoichiban 曰く、

もうやらなくていい昔のコーディングテクニックあれこれという話題がありました。過去は過去として振り返るのは有効ですが、それを踏まえた上で、将来しなくても良くなるコーディングテクニック、というのは何でしょうか ?

IDE や言語環境の改善により、人間が無駄なことをしなくて済む環境は整いつつあるも、まだまだ改善しなければならない部分は多い。そんな環境改善に伴い、今は行っているけど将来的には意味が乏しくなるコーディングテクニックというのを語り合うのも面白いのではなかろうか ? 日頃の不満点、こうなったらいいな、など色々思いはあるでしょうが、コーディングテクニック関連の雑談ということでは丁度良い機会でもあることだし、忌憚無い意見をお聞かせ下さい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by PEEK (27419) on 2009年05月08日 10時50分 (#1561019)

    コンピュータをおだててやる気を起こさせるテクニック。

  • 昔のプロセッサだとループを展開してやると速くなったみたいだけど、
    いまどきのキャッシュ積んだプロセッサは外部バスにアクセスすると極端に遅くなるので
    キャッシュにループを全部のっけて高速なクロックでブン回すほうが速度を稼げるよね。

    オンキャッシュで回っている時間だけなら、同じ処理を
    自前でPLD使ってハードウェアロジックを組んだ時より処理が速いとか。

    • Re:ループの展開とか (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2009年05月08日 13時22分 (#1561247)

      今どきのキャッシュを積んだプロセッサでも(キャッシュに収まる範囲で)ループ展開したほうが速いので展開する回数まで考慮しなくてはならなくなり、コーディングテクニックとしてはかえって複雑になったようです。
      ところでこのストーリーは今どきのプロセッサでは もうやらなくていいコーディングテクニック [srad.jp]ではなく、将来しなくてもよくなるコーディングテクニックに関するものです。将来の夢のプロセッサやコンパイラでは人間様がループ展開する必要なんか一切なくなるといいね、という意味ならストーリー通りですが。

      親コメント
  • オブジェクトをお絵かきソフトのように組み合わせればもうソフトウェアの完成・・・って時代が来るのかと思ってたけど,先は遠いのかなぁ。

    # アセンブラのようなANSI C codingから未だ離れられないロートルより
    • by racco (37699) on 2009年05月08日 10時39分 (#1561007)
      プレゼンしたらソフトウェア完成っていう身分になるのはいつのことやら
      親コメント
    • >> オブジェクトをお絵かきソフトのように組み合わせればもうソフトウェアの完成

      IntelligentPad
      http://www.pads.or.jp/ [pads.or.jp]

      その後進化していない様子ですね。

      親コメント
    • 制御システム向けには、RTI 社の Constellation があります。

      Constellation では、画面上で用意されたブロック (コンポーネント) を繋げるだけで制御プログラムが開発できます。
      もっとも、実アプリには用意されているコンポーネントだけでは不足で、デバイス制御等でカスタム・コンポーネント (C++ で作成) を用意する必要もありますが。

      実績もあり、例えば、NASA ではこの Constellation (当時は ControlShell という名前) を使ってケネディ宇宙センターの Shuttle Checkout and Launch Control System (2億円の予算のシステム!) に使用しました。その他、無人機の開発や研究等で使用されております。

      しかし高価なので、それなりのシステムでしか採用するのは難しいと思います。

      親コメント
    • お絵かきソフトのように組み合わせ

      TechEdに来てる「絶対プログラムとか組まなさそう」な年配の方などが、そういう風に
      勘違いしそうなデモや説明なら、マイクロソフトさんが毎年披露されてるんですけどね...。

      親コメント
    • by Anonymous Coward on 2009年05月08日 11時11分 (#1561044)

      LabVIEWは既にそれを実用の域に迄してますね。

      親コメント
    • UMLで書いた設計から、コードを生成するなんてのはもういろいろやられてるので、案外そう遠くない未来かも。
      親コメント
    • by shadowfire (6584) on 2009年05月08日 13時06分 (#1561228) ホームページ
      加齢臭がする方なら知ってるかもしれない、SOFMAPのMADO。
      見た事もさわったことも無いけど、
      ちょうど親コメントに書いてあるような趣旨のツールだった覚えがある。
      SOFMAPのパンフレットでいつも読んでたな。
      --
      --------------------
      /* SHADOWFIRE */
      親コメント
    • by Anonymous Coward on 2009年05月08日 13時18分 (#1561241)

      >ブジェクトをお絵かきソフトのように組み合わせればもうソフトウェアの完成

      再帰を表現するときは、合わせ鏡を使うんだよね~。

      親コメント
  • つ『Hello World.』

    # これが作れたらその言語は習得できたような気になるよなぁ。
    ## 気のせいだ。
  • 並列処理のためのテクニックとかノウハウとかがなくなる

    …といいな。

    # それはそれでメシのタネが減るので複雑な気持ち。

    • by mmgames (37884) on 2009年05月08日 12時28分 (#1561181)

      同意。
      今後必ず必要になるプログラミング技術でありながら、まだスマートな解決方法が見いだされていないのがマルチスレッドプログラミング。
      OpenMPに高精度な依存チェック機構がついてくれればとりあえず何とかなると思っているんだけど、
      今後はよりコンパイラによる自動適応が進んで欲しい。
      また、複数台のコンピュータによる分散処理も標準的なライブラリなどで可能になって欲しい。

      これらは需要が大きいし現在でもある程度の対応はできているもので、いずれは可能になると思う。

      親コメント
  • by hohehohe (11394) on 2009年05月08日 11時38分 (#1561075)
    キータイピングはどうだろう?音声でなんとかなりそうな気がする。
    誰かにプログラム読んでもらってそれを(人が)正しくタイピングできるなら曖昧さは解決できるってことだよね。
    バックスペースとかはなくせないかもしれないけど。
    英語の綴りが問題か、なでしこの出番だ!
    --
    AVG anti-virus data base out of date
  • while((c=getchar())!=EOF)とか、 条件の中に代入演算子を混ぜると、将来コードを保守するスタッフが理解できなくて困るので、こういう書き方はしない。
    なんていう配慮をしなくてよくなる未来。
  • 仕様記述言語でシステムを定義するだけで完成とか・・・

    #あれ?それって結局仕様記述言語でコーディングしているだけ?

    • by skapontan (35455) on 2009年05月08日 12時48分 (#1561205) 日記
      仕様書だけでプログラムが完成する未来図って、
      仕様書がいい加減でもプログラムで何とかする→仕様書をプログラム並みに正確に書かないと動作しない
      に移行するだけってこと忘れてるよね。
      親コメント
      • by moonbear (4602) on 2009年05月08日 14時55分 (#1561354)

        いやいや。仕様はあくまで仕様なので、具体的なアルゴリズムは書く必要はありません。
        入出力の関係さえ正確に書けば、欲しいプログラムが自動的に出来上がります。
        たとえばこんな風に書けばその場に応じた適切なソートアルゴリズムを生成して…

        sort(XS, YS) :- permute(XS, YS), sorted(YS).
        permute([], []).
        permute([X|XS], ZS) :- permute(XS, YS), insert(X, YS, ZS).
        insert(X, YS, [X|YS]).
        insert(X, [Y|YS], [Y|ZS]) :- insert(X, YS, ZS).
        sorted([]).
        sorted([X]).
        sorted([X,Y|XS]) :- X = Y, sorted([Y|XS]).

        …ということを1982年ごろから10年かけて国家プロジェクトでやろうとしてたんですよね。

        親コメント
  • by Anonymous Coward on 2009年05月08日 10時34分 (#1561005)

    しなくて済むようになるといいなぁ。という話しか出てこないんじゃないの?
    #裏づけを持って語れるツール屋がこんなとこみてるはずないし。

  • by Anonymous Coward on 2009年05月08日 10時36分 (#1561006)

    人間がいなくても勝手にコーディングしてくれる

  • by Anonymous Coward on 2009年05月08日 10時40分 (#1561008)
    continue; の部類は goto と同じにおいがするので終了の方向でお願いします。
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...