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

2014年現在、C言語の意義はどれぐらいある? 141

ストーリー by hylom
コンピュータの仕組みを知る上でも知っておいて損はないが 部門より
headless 曰く、

本家/.「How Relevant is C in 2014?」より。

1972年にC言語が作られて以降、数多くのプログラミング言語が生まれ、消えていった。Cプログラマーを対象にした求職情報の件数は突出しているとはいえず、RedditのCコミュニティーのユーザー数はC++の半分程度にとどまっているものの、C言語は2014年のTIOBE Indexですべて1位を獲得するなど、現在も高い人気を保っている。

David Bolton氏によれば、リビジョンの古いC言語を新しいCコンパイラーがサポートしている点、C言語で書かれた多くのソフトウェアが現在も使われており、インターネットの基盤にもなっている点、学習が容易な点など、複数の要素によりC言語が21世紀の現在も大きな意義を持ち続けているのだという。

「C言語を知ることで、C++やObjective-C、Perl、Python、Java、PHP、C#、D、Goといった、Cから派生したブロックの書式を持つ高度なプログラミング言語を容易に理解できるようになる」とのこと。皆さんはどう思われるだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by sakamoto (8009) on 2014年12月11日 2時55分 (#2726080) 日記
    C言語だけは、なんとなく、処理系がどうなっているかをサブセットを想定しながら学んでいけるんじゃないかな?
    --
    -- 哀れな日本人専用(sorry Japanese only) --
  • by Anonymous Coward on 2014年12月10日 19時12分 (#2725806)

    数値計算プログラムのユーザーサブルーチンが
    C言語のみ対応とか、Fortranのみ対応とかもある。

    思想さえしっかりしていれば近代的なコード風に書くことできるでしょ?
    と指摘されれば否定できないが、コンパイラサポートがあった方が
    エラーチェックができて助かる。

    • by Anonymous Coward

      PythonやJavaがいくら速くなったといっても、やっぱりまだFORTRANやCでカリカリチューニングした方が速いし…。
      んでも、最近はPythonに浮気中。
      「馬車馬ルーチンはそのうちCに書き換えるぜ!」と思いながらも、「書き換えてチューニングする時間×時給換算した私の給料よりも、新しい計算機買ったほうが安い…」となってとん挫する。

      • by wood377 (46309) on 2014年12月11日 0時42分 (#2726047) 日記

        > PythonやJavaがいくら速くなったといっても、やっぱりまだFORTRANやCでカリカリチューニングした方が速いし…。
        間違い。
        下手な人が作ったプログラムより、コンパクトで、最適化された高級言語の方が、早い。
        本当に、カリカリチューニングできるのはほんの僅かで、本人はその気でも、、、、

        アセンブラ化して、スピードアップしたソースを Cで書換えて、さらに高速化した事もある。
        混在するとメンテナンス性が劣化する。
        (どういうコードが出力されるか、意識はしてたが、、、CPU依存か)

        あっ、、と、数値計算の世界では、専用ライブラリをどう使うか、が問題だったでしょうか?
        門外漢なので、ゴメン。

        親コメント
  • by otterb (41547) on 2014年12月10日 20時33分 (#2725877) 日記
    解説。Cは2014も役に立ちますか?と聞かれてスペイン語でYes!って答えている。Cだけに発音がシー。本家より。
    • by Anonymous Coward on 2014年12月11日 0時29分 (#2726043)

      本家はダジャレ系とかで楽しんでますね。
      1ゲットしたSiくんに対して「Cの話してんだから0番目だろ」と突っ込んでました

      親コメント
    • by ktmizugaki (46208) on 2014年12月11日 12時17分 (#2726266) 日記

      余談ですが、正確な綴りは sí です(アクセント記号がつきます)。
      si だと if という意味になります。

      --
      svn-init() {
        svnadmin create .svnrepo
        svn checkout file://$PWD/.svnrepo .
      }
      親コメント
  • by Anonymous Coward on 2014年12月10日 18時58分 (#2725796)

    ではまだまだ現役だと思うけど
    ミドルウェアとかドライバとか・・・

    レジスタを直接叩くとか他言語(javaとかPHP)で出来るのかな?

    • by guicho2.71828 (38877) on 2014年12月10日 22時33分 (#2725956)

      できるか出来ないかで言うと、
      Common Lisp は アセンブリを書けますし ( http://g000001.cddddr.org/2011-12-08 [cddddr.org] )
      Java Bytecode 上の黒魔術はVMでアセンブリを書くようなものです。 ( https://github.com/brettwooldridge/HikariCP/wiki/Down-the-Rabbit-Hole [github.com] )

      C はやはりOSとのインターフェースを弄るのに時々必要です。
      資産が大きすぎますので、どうしても自分で描き直したい時を除き、Lisperは結構 libffi からC関数を叩きます。
      C++は中途半端なので使いませんが、最近は Clasp というものが出てきました。 http://www.infoworld.com/article/2687997/application-development/clasp... [infoworld.com]

      布教終了。

      --
      新人。プログラマレベルをポケモンで言うと、コラッタぐらい
      親コメント
    • by Anonymous Coward on 2014年12月10日 21時05分 (#2725898)

      組込制御するのにオブジェクト指向とか無くてかまわないし
      規格がキッチリ定まってて過去の資産があるから科学技術計算のFORTRANと同じでいつまでたっても死なないよ
      古い時代の「効率重視」の言語だから今のトレンドにそぐわないところは多々あるが非力なプロセッサで使うには文句言ってられん

      親コメント
      • by wood377 (46309) on 2014年12月12日 0時44分 (#2726780) 日記

        いや、組込みも様々。
        ローレベルだったら、アセンブラに近い記述が必要なので、せめて Cと思うけど、
        UIに近い階層とか、外部 I/F の上位階層だと、オブジェクト指向の手口が使えた方が楽。
        あいだを取り持つのがちと面倒だけど、それは使い分けでしょう。
        それに最近は、組込みも大規模化してるから、切り口を明確化するにも良いかも。

        非力なプロセッサで、キリキリと組むの、最近、縁無いな。来ないかな。
        と、言うより、業務系の仕事はつまらない。 UIばっかりで。
        技術計算系でもいいけど。

        親コメント
    • by Anonymous Coward

      OSがCだもんね。あと、Cが使えないC++プログラマがいるのかいなと

      • by Anonymous Coward

        STL/boostを使うという風に徹底すれば、生ポインタとか生メモリとかは見なくても済みますよね。
        OSのフレームワークとか使おうと思うと、ポインタと無縁ではいられませんが・・・。

    • by Anonymous Coward

      システム記述用を目的の1つとして作られてて、設計がよく合致できてるよね
      自身のランタイムや多言語のグルーとしても使われるあたりで証明になってるんじゃないかな
      他の言語を学ぶ時の橋渡しになるかは知らんけど、
      このハード叩くだとかのシステム分野ではずっと残るのじゃないかな

    • 高級アセンブラとしてのCの立場は、プロセッサが高級言語をバイナリ実行するようにならない限りなくならないのでは?

      巷のアプリで高級言語使えるのは環境としてのソフト(OS・ライブラリ)ががんばっているからでしょ。

      プロセッサが高級バイナリを実行できるようになるか、環境を新たに作る必要がなくなるまでは生き延びるよね?

  • by Anonymous Coward on 2014年12月10日 19時07分 (#2725801)

    C言語しか出来ないSIerもいるんですよ!

    • by Anonymous Coward

      (^^;

  • by Anonymous Coward on 2014年12月10日 19時22分 (#2725811)

    基本的にプログラミング言語はプログラマーからみた振る舞いは定義しても、コンピュータでどう実装されるかまでは定義しない。

    GCとかポリモーフィズムに必要な型情報は基本的にコンパイル時or実行時一回きりの使い捨てで再利用できるようになってない。
    Cも定義はされていないが、ハードに近いおかげで関数も構造体もアーキテクチャが同じなら大抵同じ構成になるから、OSやライブラリはCで実装するのが無難。

  • by Anonymous Coward on 2014年12月10日 19時25分 (#2725816)

    とりあえず、libcやglibc、CRTやMSVCRTを全削除すればええんやで(ニッコリ
    そしてCライブラリの無くなったその不毛な大地で、高度なプログラミング言語(笑)とやらを好きなだけ使えばええんや。

    # Cライブラリ無くして動作する、高度なプログラミング言語(笑)とやらがどれだけあるのか見物だwww

    • by Anonymous Coward

      Delphiとか?

      • by Anonymous Coward

        デルファイも演算子とかはC/C++で定義されていますよ

    • by Anonymous Coward

      ぴゅう太

    • by Anonymous Coward

      つ Go

    • by Anonymous Coward

      本家の問いかけ方と違っちゃってるから。向こうは(あんたの日常や仕事に)どれだけCが関わってる?って聞いてると思う。
      直接関わってなくても重要な一部となってて意義があるということは当然ありうるんで。
      あ、あなたがおかしいと言ってるのじゃないよ。意義と言われたらそう答えて何もおかしくない。

      質問内容変えたいなら、丸ごと本家コメント引用で済ませないで何か書いて欲しいよと思いました。

  • by Anonymous Coward on 2014年12月10日 19時59分 (#2725842)

    そういうのあれば、C言語が必要な場面、
    もう少し減るのでは???

  • by Anonymous Coward on 2014年12月10日 20時04分 (#2725846)

    といいつつ、最近arduino IDE使う羽目になった(´・ω・`)

  • by Anonymous Coward on 2014年12月10日 20時05分 (#2725849)

    Perl, Python, JavaはALGOLの子孫じゃないの?
    Cは高級アセンブラだと思ってた
    Objective-CはSmalltalkの要素を取り入れたCか

  • by Anonymous Coward on 2014年12月10日 20時11分 (#2725857)

    C言語ができるから、見た目が似ているJavaやC#ができるつもりだとかぬかしているプログラマーは、
    全員死んでしまえ。

    人類に害悪しかもたらさない。

typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...