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

Cは既に時代遅れ?」記事へのコメント

  • by Anonymous Coward on 2011年05月24日 19時59分 (#1958115)
    歴史的経緯云々を除いても、Cでしか書けないようなプログラムは依然として存在する。
    もちろんアセンブリで書けないなんて言うわけがないが、ヨイショしてるJavaやC#でKernelやブートローダが書けるんなら誰も苦労はしねえよと。
    こういうハードウェアよりのものを、どんなスペックのマシンでも問題なく動かせるような言語、そしてコンパイラを作ってからこういう事言えよって思う。

    C死ねっていう奴らって対案出さずにただ死ねだの邪悪だのって言うばかりで、何の対案も出さない。
    *本当に*殺すつもりがあるんならまともな対案出して、世界中が安心してCを捨てられるようになってから殺してくれ。
    • Cじゃないとブートローダーが書けないというのは歴史的経由そのものではないでしょうか。
      例えばOpen FirmwareではForthでブートローダが書けるでしょうし、Lispで書かれたブートローダもあります。
      その他C以外の言語で書かれたOSは多くあります。歴史的にメジャーにならなかったというだけです。
      親コメント
      • その Forth とか lisp も、Cかアセンブラで書いてるんですけどね。
         

        親コメント
        • DelphiはDelphiで書かれています・・・書かれていました。
          親コメント
        • by Anonymous Coward

          残念ながら、FORTHをFORTHで書いた私は無視ですか?

          • 多分、とても仕様を単純化したブートストラップFORTHを作ってから、最初のFORTHプログラムを実行。インクリメンタルに必要な仕様を満たしたFORTHを実装するということになると思うんですが、一番最初のブートストラップFORTHはどんな言語で作るんでしょう?大抵のCPU coreで利用できるFORTH実装があるのかな?

            それに組み込みの電源On時だと、DDRコントローラーのレジスターを再設定しなきゃ使えないこともあります。基本スタックマシンのFORTHがDDRがまともに使えない間、どうやって動くのでしょうか。全部On Cacheに収まるように最初からFORTHで作るのは大変そうな気がするんですが、気のせいですか?

            --
            vyama 「バグ取れワンワン」
            親コメント
          • by Anonymous Coward
            lispの教科書って大抵lispをlispで実装する話だしな。
            アセンブラでアセンブラ作るのもまあ簡単なうちに入るとすると、C言語の何と非力なことか。
            • 「lispの実装はreadとevalだけあれば簡単」ってやつですか?
              親コメント
            • by Anonymous Coward
              おいおい。
              Cはそもそも、UNIX系のOS(ゲームのためね)を書くために作られ、
              CコンパイラをCで書いて有名になっていったという話は、もう風化してしまっているのね。
              • by Anonymous Coward
                でもK&Rの例題にCの処理系作りましょうってのはないよね。そういうこと。
              • by Anonymous Coward

                BDS-Cについて熱く語れる人はまだ絶滅していなかったのだな
                Whitesmith Cについての勇者も求む

                私はあのライブラリがK&Rと違いすぎていたので、全部ディスコンパイルした

              • by Anonymous Coward
                無理があるな。それが通るなら、
                「lispを吐くyaccって無いじゃない」という反論も通りそう。
              • by Anonymous Coward
              • by Anonymous Coward
                完敗です。失礼しました。
              • 召喚されたようなので。

                Whitesmith Cですか。昔のことなのであいまいな記憶で書くので間違いがあるかもしれません。確かに2.xのころのライブラリはK&Rの本に出てくるライブラリとは違っていました。ただ、あのころはいわゆる標準ライブラリという規格がなかったので、そんなものかと思っていました。それにIdrisの上のプログラムを作るときはそれしかなかったし、それ以外では組み込み用のファームウェアのコードをはかせていたので、Whitesmithのライブラリはほとんど使っていませんでしたね。

                3.xになってANSIの規格に準拠するころからはいわゆる普通のCのライブラリもついていたような気がします。まあWhitesmithの創業者でANSIのCの標準化委員会のメンバーのP.J.Plauger自身が標準のCライブラリの本を書くぐらいだから当たり前ですね。

                後はあのインデントのスタイルに好き嫌いがありましたね。今でもwhitesmithのスタイルはEmacsのc-modeでサポートされていますが。

                Whitesmith自体は後にどこかの会社に吸収されたと聞きましたが、そのときにはもう前の会社にいなかったのでよく分かりません。ADaC [adac.co.jp]の中の人が詳しいでしょうけど。

                あ゛、ここまで書くときっと素性が知れているけど、まあIDでいいか。

                親コメント
        • by Anonymous Coward

          個人的には、Cとアセンブラと機械語はほとんど同じようなものとして認識しているので
          lispは機械語でかかれていると言われてもへんな気分です。

          CとC以降の言語の違いといえば、アセンブリに落とせるかどうかの違いが大きいとおもいました。

      • by Anonymous Coward

        > その他C以外の言語で書かれたOSは多くあります。

        まあ、そうでしょう。

        > 歴史的にメジャーにならなかったというだけです。

        皮肉にも貴方の言葉が全てを物語っていますな。

      • by Anonymous Coward

        XOSLのソースを読むと良い。ちゃんとブートローダーからGUIまでをそれぞれ適した言語で実装しているから。
        最終レイヤのためにC++のクラスライブラリを自作してGUIを書いているところなんて最高に素敵じゃないか。

    •  首記の件、数学・記号論理学的な包含関係(必要十分条件)の観点で、原理的に「出来ること」と「出来ないこと」を論じると、

      (1)マシン語(全て可)はアセンブラの必要条件
      (2)アセンブラはC言語の必要条件(★必要十分条件に近い★)

      となることは言えるのですが、

      (3)C言語、C++言語は、JavaやC#の必要条件

      と言い切れるかと考えると、事がわかりやすいと思います。

       原理的に出来ることの可能性という意味では、明らかに上記(1)→(2)→(3)の順番です。しかしながら、「人として高度なことをコンピュータにやらせられること」と考えると、どうなんでしょうね。

       個人的には、上記(2)項が、最も「原理的に出来ることと、人として高度なことをコンピュータにやらせられることの、バランスの良いポイント(つまりCやC++程度がちょうど良い)」と感じてしまうのですが、老害ですかね(?)。

      --
      optimized for /.
      親コメント
      • by Anonymous Coward
        老害だとは言いませんが、CとC++を同じ箱にいれている時点で終わっている感じが。
    • by Anonymous Coward

      まあリンク先の1行目くらいは読もうな。モデレータも。
      > ・確かにCでしか書けない類のプログラムは存在する(例を挙げるならKernel)が、それはCの存在を赦す理由にはならない。

      • by Anonymous Coward on 2011年05月24日 20時58分 (#1958193)

        その話にしろ過去の功績の話にしろ、突っ込まれたら反論できない部分に予防線を張ってるだけにしか見えない罠。

        存在が赦せないというならそこを例外として認めるような事を言うんじゃなくて完全に抹殺してみせろ、と。

        親コメント
      • by Anonymous Coward
        その時点で矛盾しまくってるな。
        • by Anonymous Coward

          自分が触れないところに存在するのは許せるということでは?

          他人にソースを見せられてコメントを求められても上手く答えられないぐらいCが苦手なので
          消えて欲しい、というのが真相なのではないかと想像しますけどねぇ。
          ブートローダやカーネルなら「俺の専門外だから」で逃げられるから平気だとか、ね。

      • by Anonymous Coward

        Cでしか書けない類のプログラムが存在するなら、それはCの存在を許す理由になると思います。
        と言うよりは、Cの破棄が許されない理由だと思います。
        JavaとかC#とか、ひょっとしたらOcamlやScalaででも用が足りる場合がほとんどならば、
        つまり「ほとんど」であってすべてではないなら、それはCの存在を許す理由になると思います。
        私には、これだけ論理に抜けがあって説得力のない文章が存在を許される理由がわかりません。

      • by Anonymous Coward
        …つまりあれか、Cを殺して(Cでしか書けない)Kernelはこの世から消滅させるべきだ、と。

        非「核」論者なんですね。
    • by Anonymous Coward
      ドメイン固有言語の概念で、ブートローダーにはブートローダー様の言語を使えばいいし、その一つが今日のCだというだけ。

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

処理中...