パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Linus TorvaldsのC++批判は正しかったのか」記事へのコメント

  • 古臭い言語だと思う。
    土台が言語仕様貧弱なC言語なのに、無理して増築した感がある。
    土台から変えた言語を使うべき。

    • by Anonymous Coward on 2015年03月14日 13時50分 (#2777520)

      古臭いC言語ですがコーディングの仕方によって、例えば文章のような関数名と構造体を巧くインスタンスとして使えばC++以上のオブジェクト指向な綺麗なコードが仕上がると思います。
      昔、C言語の関数名制限に8文字以下というのがあったときは、相当苦労していたでしょうね。

      C++では、練りきれない仕様での無意味なクラス化とか、IDEと連携しないとメンバ関数を見失うとか、何でもかんでも標準化してみるとか、そんなことばかりやっていれば構造化プログラミング世代以下の汚いコードになるでしょうね。

      # ファイル拡張子をcppと書いて内部ではCで書いている私です
      # ガンプラはどう作ろうと自由だ

      親コメント
      • by Anonymous Coward

        C言語でも、C89で書かれたコードは微妙ですね。GNU拡張の一部が取り入れられたC99は綺麗なコードが多いですが、長年Microsoftが未対応を貫いていてC99普及の障害となっていました。

        # 最近やっっっっっっっっっっっとC99に対応しました>Microsoft

        • by Anonymous Coward

          C99 には失望した

          • by Anonymous Coward

            微妙な部分もありますが、それでも指示付き初期化指定子(Designated Initializer)は現代に於いて不可欠です。

            • by Anonymous Coward

              それと逆の立場でして、初期化の糖衣構文を増やすのもどうかと、この言語に初期化と代入を区別する必要はなく、すべての初期化は代入で代用できる。
              まあ一番抵抗を感じたのは、alloca 絡みを見えなくしたこと

      • by Anonymous Coward

        > 古臭いC言語ですがコーディングの仕方によって、例えば文章のような関数名と構造体を巧くインスタンスとして使えばC++以上のオブジェクト指向な綺麗なコードが仕上がると思います。

        C言語で書いオブジェクト指向のコードって、関数ポインタだらけなイメージなんですが、
        C言語で書いたC++以上のオブジェクト指向な綺麗なコードっていうのが、
        どんな感じなのか、参考になるURLとか教えてもらえると嬉しいです。

        > C++では、練りきれない仕様での無意味なクラス化とか、IDEと連携しないとメンバ関数を見失うとか、何でもかんでも標準化してみるとか、そんなことばかりやっていれば構造化プログラミング世代以下の汚いコードになるでしょうね。

        コードが汚い云々は言語仕様よりも設計、コーディングする人次第っしょ。

        • by Anonymous Coward on 2015年03月14日 17時50分 (#2777638)

          AC(#2777520)です。

          > C言語で書いオブジェクト指向のコードって、関数ポインタだらけなイメージなんですが、
          まあ確かにそうですね。 constやrestruct修飾子を巧く使えば、最近のコンパイラがある程度のミスを見つけてくれるのは助かります。
          ポインタを使うことによる危険性も確かにありますが、コンパイラに全て任せて良いのかとの懐疑的であったりします。まぁ、任せたほうがコーディング的に楽ですが。バッファとかをSTLで確保した場合、いつ開放されるかはSTLの実装次第なので、やはりある程度はプログラマも認識は必要だと思いますね。あ、C++11では開放タイミングが指定できるようになったんでしたっけ。

          昔、こんな提唱もありましたね。結構気に入ってます。
          C-language's Object Oriented Language
          http://www.sage-p.com/process/cool.htm [sage-p.com]

          > C言語で書いたC++以上のオブジェクト指向な綺麗なコードっていうのが、どんな感じなのか、参考になるURLとか教えてもらえると嬉しいです。
          組み込み系でよいか解かりませんが、OpenBSDのIntelのデバイスドライバなんかは巧いことやっています。純潔LinuxやFreeBSDだとフレームワーク化されているので、かゆいところが見えないところがありますね。
          http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/dev/pci/ixgbe.c [cc.uoc.gr]
          http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/dev/pci/ixgbe_x540.c [cc.uoc.gr]
          ※ 実際はいくつかのデバイスを切り替えているので、さらに数ファイルで構成されています。
          関数宣言とか書き方が微妙なのはデバイスドライバということでご理解ください。

          > コードが汚い云々は言語仕様よりも設計、コーディングする人次第っしょ
          まさにそうですね。

          # ガンプラはどう作ろうと自由だ

          親コメント
          • by Anonymous Coward

            ありがとうございます、C-language's Object Oriented Language はかなり前に見た記憶があるような、ないような。
            デバイスドライバの方は、ビルド中にチラ見してましたが後でゆっくり見てみます。

            リソース解放タイミングの指定はもともと出来ていると思ってますが、多分自分が思ってることと、
            AC(#2777520)さんが言ってることに違いがありそうな気がするな。

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...