TIOBE IndexでC言語のレーティングが大幅に低下 46
ストーリー by headless
減少 部門より
減少 部門より
8月のTIOBE Indexで、Cのレーティングが過去最低となる11.303%まで落ち込んでいる(InfoWorldの記事)。
Cは2012年4月にJavaを抜いて1位になって以降、Javaが2013年に3回(2月、3月、8月)1位となった以外は2015年3月まで1位を維持していた。しかし、2015年4月にJavaが再び逆転して1位となり、その後は徐々に差が広がっている。8月のレーティングは昨年同月から3.429ポイント減だが、小さいピークがあった昨年11月と比較すると5.842ポイント減であり、レーティングは急激に低下している。
Javaも今年に入って若干レーティングが低下しているものの、8月はCと7.707ポイント差の19.01%を獲得している。昨年同月比で1ポイント以上レーティングが低下したのはCのほか、3位のC++(1.94ポイント減)と15位のObjective-C(1.31ポイント減)のみで、1ポイント以上増加したのは16位のGroovy(1.27ポイント増)と20位のGo(1.19ポイント増)のみ。Cの減少が際立っている。ただし、3位のC++は5.8%でしかなく、4位以下は5%未満だ。6位以下は1ポイント未満の増減で大きく順位が変動する状態であり、JavaとCの2強状態は続いている。
TIOBEではCが減少した原因について、拡大の続くWebやモバイルアプリの開発に適していない点や、ほかの人気言語のようには進化していない点を挙げている。さらに、OracleやMicrosoft、Google、Appleなどの大企業がサポートする人気言語に対し、Cを表立ってサポートする大企業が存在しない点も減少の理由の一つになっているとのことだ。
Cは2012年4月にJavaを抜いて1位になって以降、Javaが2013年に3回(2月、3月、8月)1位となった以外は2015年3月まで1位を維持していた。しかし、2015年4月にJavaが再び逆転して1位となり、その後は徐々に差が広がっている。8月のレーティングは昨年同月から3.429ポイント減だが、小さいピークがあった昨年11月と比較すると5.842ポイント減であり、レーティングは急激に低下している。
Javaも今年に入って若干レーティングが低下しているものの、8月はCと7.707ポイント差の19.01%を獲得している。昨年同月比で1ポイント以上レーティングが低下したのはCのほか、3位のC++(1.94ポイント減)と15位のObjective-C(1.31ポイント減)のみで、1ポイント以上増加したのは16位のGroovy(1.27ポイント増)と20位のGo(1.19ポイント増)のみ。Cの減少が際立っている。ただし、3位のC++は5.8%でしかなく、4位以下は5%未満だ。6位以下は1ポイント未満の増減で大きく順位が変動する状態であり、JavaとCの2強状態は続いている。
TIOBEではCが減少した原因について、拡大の続くWebやモバイルアプリの開発に適していない点や、ほかの人気言語のようには進化していない点を挙げている。さらに、OracleやMicrosoft、Google、Appleなどの大企業がサポートする人気言語に対し、Cを表立ってサポートする大企業が存在しない点も減少の理由の一つになっているとのことだ。
C言語の立ち位置 (スコア:3)
昔(20年位上前)は職業プログラマなら実務経験はなくてもCでのプログラミング経験はあって当然という雰囲気あったような気がする(含む:Hello world)。
それが今は嗜みというか、懐古主義というか、少なくとも稼げる言語ではなくなったってことなのかな。
Re:C言語の立ち位置 (スコア:1)
必要とされる技術者の数に変動があまりないからではないでしょうか
C++も1ポイント以上下がってるし
相対的にレートが下がってはいるけれど、絶対的には安定しているんじゃないかしら
Javaみたいに極一部の有能に対して圧倒的大多数のゴミって状況と比べると稼げる言語なはず
Re:C言語の立ち位置 (スコア:1)
C経験有りで集めたはず連中にコード書かせると、お漏らししまくるんですよ。
だったら、最初からメモリリークしない言語使った方が楽ですしね。
そうすると、オブジェクト解放しない輩が集まるのですが。せめてGCの管理で悩みたい。
Re: (スコア:0)
そういうときにチェンジするために派遣会社に高い金払ってるんじゃないの。人事が無能で人間を見て採用()とかしかしてくれないから
Re:C言語の立ち位置 (スコア:1)
派遣会社は無能しか持ってない
Re:C言語の立ち位置 (スコア:1)
本当に有能な技術者は派遣を介する必要が無いからね。
基本的に2流以下しか集まらない。
でも当然ながら技術者に限らず、どんな仕事でも世の中は2流以下が大多数なので
そこを使わざるを得ない。
スポーツとかでもわかるように、一流は一握りだけ。
どうしても1流を使いたいなら、ロナウドに数十億払うように
技術者にも相応の額を払わないと引っ張ってこれるわけがない。
んでスポーツは一流には湯水のように金をつぎ込むが
技術業界はケチることしか考えてないんだよな。
Re:C言語の立ち位置 (スコア:1)
それ本当ですかね。
大企業がある程度以上の規模がある企業としか取引出来ない事を理由に、
派遣会社を間に入れることで、高額契約している技術者も居ますね。
それとも、有能な技術者は然るべき企業の正社員である(でも給与は不相応)という理屈なのかな。
本当に有能な技術者って、1企業に飼われているイメージ無いんだけど
どうなんでしょうね。
Re:C言語の立ち位置 (スコア:1)
見分ける手段を持ってないから無能をつかまされるんだと思われ。
Re: (スコア:0)
それはあるよね。
スポーツはまあ疑惑の判定とかたまにあるけど、技術者に比べるとはるかに優劣がわかりやすい。
技術者の方はいわゆるレモン市場ってやつですね。
Re: (スコア:0)
派遣会社にも色々あると思うのだが
有能な人間を抱えていても金払いの悪いとこには有能な人間は出さない
Re: (スコア:0)
正直凡ミスリソースリークに神経使うような言語使う時代じゃないよなあ。
Rustとか使えないのかな。
Re: (スコア:0)
需要が多い少ないと個人が稼げる稼げないは別じゃなかろうか。
昔(20年以上前)はUNIXシステム管理者ならCは使えたよ。(Cが使えないUNIX管理者というのは存在しえなかったから)
Re: (スコア:0)
Bjarne Stroustrupのインタビュー記事を思い出す。
Re: (スコア:0)
組み込み屋もそのうちコボラーみたいに扱われるのかー
組み込み屋の立ち位置 (スコア:2)
組み込み屋は居るはずなのに決して認識されることはない。
この洗濯機、冷蔵庫、電子ジャーのプログラムを書いた人が居るはずなのに。
演劇の黒子…の衣服を仕立てている人くらいに認識されることはない。
Re: (スコア:0)
組込系の下回りの開発にはC言語以外の選択肢は無い
その上のアプリケーションのレベルはC言語を使う時代じゃない
したがって大多数のプログラマはC言語を知る必要は無い
逆に言えばC言語できない奴にはハードよりの開発をする能力は無い
Re: (スコア:0)
組み込みでもCじゃないといけないのって相当低レイヤーだけで、今やロジックはPythonで書ける時代なんですよね。
もちろん業界とかリソース量によるでしょうが。
Re: (スコア:0)
えっ、Pythonでレジスタ・アクセスするの?
#ロジックならBASICでもアセンブラでも書ける
Re: (スコア:0)
レジスタアクセスする仕組みを用意すればいいだけでは。
Cだって言語仕様としてレジスタアクセスできるわけじゃないでしょ。
Re: (スコア:0)
プログラムからアクセスすることを前提として読み書きできるメモリ空間にレジスタが配置されてればCの言語仕様の内でレジスタアクセスできますよ。
Re: (スコア:0)
素直にインラインアセンブラ使ってください
Re: (スコア:0)
C言語のregisterキーワードをつけた変数ってアドレスを取れない仕様だから、通常のハードウェア実装ではレジスタのアドレスは取れないであることを想定している(いた)のでは。実際そのとおりだし。
Re: (スコア:0)
生のメモリアドレスの扱いは処理系依存ですよね
Re: (スコア:0)
レジスタアクセスにインラインアセンブラが素直って馬鹿ですか?
Re: (スコア:0)
ここで言われてる「レジスタ・アクセス」の意味分かってないでしょ
Re: (スコア:0)
この人は組み込みの経験ないんだろうなあ、という印象。
https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%B8%E3%82% [wikipedia.org]
Re: (スコア:0)
ああ、レジスタ違い。20世紀は遠くなりにけり。
Re: (スコア:0)
処理系依存にしろ「Cの言語仕様の内でレジスタアクセスできる」ことに違いはないでしょ
Re: (スコア:0)
C 言語の仕様として適当にぐぐると出てくる『JIS X 3010:2003 プログラム言語C』で volatile 宣言について
と注釈がされており、「メモリ上に割り付けられた入出力ポートに相当するオブジェクト(=レジスタ)」へのアクセスは C 言語の仕様の内として行ってよいことであり、「プログラムからアクセスすることを前提 ~ Cの言語仕様の内でレジスタアクセスできますよ」という投稿に対して処理系依存ですよねという指摘は斜め上方向にずれているのでは?
Re: (スコア:0)
処理系依存でもいいならPythonでもレジスタアクセス可能ということになるんだろうな
Re: (スコア:0)
レジスタアクセスが可能なPythonの実装は実例として何が挙げられますか?
Re: (スコア:0)
そのレジスタを指す方法は処理系依存でしかありえないよ。
Re: (スコア:0)
動作プラットホームには依存するけど処理系に依存しない書き方は普通に可能でそ
Re: (スコア:0)
> 素直にインラインアセンブラ使ってください
> registerキーワード
CPUの(汎用)レジスタとかを連想する人多すぎだな…
そっちのレジスタはCでも明示して操作出来ないだろうに。
> 処理系依存でもいいならPythonでもレジスタアクセス可能ということになるんだろうな
「ポインタに処理系依存な値を突っ込めば突っ込んだ値に対応するレジスタが操作できる」
ってな具合なんで、突っ込むべき値が処理系依存なだけで、突っ込む機能自体はCが持っている。
# ・・・機能というか言語仕様的には未定義だから同じコードも環境次第では鼻悪魔だけど
ポインタの値をPython自体の仕様として直接操作とかができるならそうなるね。
できないのなら無理。言語仕様の枠をこえた独自拡張で対応するしか無い。
Re: (スコア:0)
組み込みもPythonもわからん癖になんか言いたい人は引っこんでていただきたいですね。
Re: (スコア:0)
は…はんどあせんぶ… いやなんでもない。
加えて言えば、そのレベルのC言語って特にサーチエンジンで調べることもないだろうし
(調べるにしても調べたいのはハードの事だったり)このインデックスには反映されない気もしますね。
Re: (スコア:0)
逆に言えばC言語できない奴にはハードよりの開発をする能力は無い
アセンブラしか出来ないなんてのは想定外なのか
お、お、おちつけっ、、、 (スコア:1)
ま、まだ二位だぞ、、、、
Re: (スコア:0)
2位では駄目なのでしょう
Re: (スコア:0)
2位じゃダメなんでしょうか?(お約束
Re: (スコア:0)
野暮にもほどがある
unixといえばC (スコア:0)
C言語は、どのプラットフォームでも使えるから覚えとけ!
そんな時代じゃ無いんですね。時代を感じます。
Re: (スコア:0)
まだ2位なんだけど?
Re: (スコア:0)
どんなプラットフォームでも使えるけど別にCじゃなくてもいいよねってそれだけの話。
どんなプラットフォームでも使えるけど覚えなくてもいいんじゃねって話でもある。
Javaの内 (スコア:0)
Androidフレームワークを使う奴は除くということにしたら、どれくらい減るだろうか。
Re: (スコア:0)
Androidと対を成すiOS向けの開発言語のObjectiveCが、およそ1.8%、SWIFTが1.9%なので、
Android分は精々、4~5%って所ではないかと。
もっとも、モバイル向けを別枠にすると、C#も計算に含める必要が出てくるので、
素直にインデックス通りに評価すれば良いんじゃないでしょうか?