【IT】C/C++に死を [無断転載禁止]©2ch.net

1ノチラ ★2017/07/17(月) 15:40:31.76ID:CAP_USER
プログラミング言語Cはおぞましい。いや、素晴らしくもある、もちろん。私たちの住む世界の大部分はCの上に作られている。そしてほとんどのコンピュータープログラミングの基礎をなしている、歴史的にも、実質的にも。Xavier Nielの革新的な “42” スクールのカリキュラムが、学生に標準Cライブラリー関数を一から書き直させることから始まるのはそれが理由だ。しかしCは、C自身が作り上げたこの世界にとってもはやふさわしくない。

「おぞましい」と言ったのは「悪い」ということではなく「畏敬の念を起こさせる怖さ」という意味だ。Cはモンスターになってしまった。あまりに多くの大砲を与えたためにユーザーは自分の足を撃ち抜いてしまう。豊富な体験が教えるところによると、セキュリティーホールにむしばまれることなく大量のCコードを書くことは非常に困難であり「事実上不可能」になりつつある。2年前、私は最初の「Cに死を[Death To C]」の記事にこう書いた:

原理上、ソフトウェアが成長し進化して成熟度を増すほど、セキュリティー脆弱性は複雑になっていく。しかし、C/C++で書かれたソフトウェアにそれは当てはまらない。バッファーオーバーフローや宙ぶらりんのポインターのために壊滅的セキュリティーホールが生まれる事態は、繰り返し繰り返し起こっていて、昔も今も変わることがない。

私たちはこれ以上巨大な口を開けたセキュリティーの盲点を放っておくことはできない。引退して別の言語に取って代わられる時期はとうに過ぎている。問題なのは、ほとんどの近代言語はCを置き換えようという意欲すら持っていないことだ。〈中略〉どの言語もCが最も得意とすることに長けていない ―― 例えばシステムの奥深くまで掘り下げてマッハスピードで動くこと。

あなたがデベロッパーなら、私の言いたいことはもちろんわかっているだろう。Rustの長所を並べることだ。実際これは有望なC/C++の後継だ。2年前に私は、新規の下層レベルコーディングをCではなくRustで書くことを勧めた。つまるところ、穴に関して何よりも大切なのは、掘るのをやめることだ。

Security tips when programming in C (2017 edition):
1) Stop typing
2) Delete what you've already typed
[Cでプログラミングする際のセキュリティー心得(2017年版):
1)タイプするのをやめる
2)すでにタイプしたものを削除する]

今私は、エンジニアが既存のCコードをリファクタリングするとき、特にパーサーなどの入力ハンドラーを書き直すとき ―― ゆっくりと、すこしずつ ―― Rustで置き換えるように真剣に勧めている。
http://jp.techcrunch.com/2017/07/17/20170716death-to-c/

2名刺は切らしておりまして2017/07/17(月) 15:45:00.31ID:+5bdNfS0
早いってだけではある
ppも書きにくいからすぐ忘れるんだよな

3名刺は切らしておりまして2017/07/17(月) 15:45:09.91ID:MirfapV3
よし!いよいよCOBOLの時代だな!

4名刺は切らしておりまして2017/07/17(月) 15:46:54.25ID:OSl7ngdx
cでええよ

5名刺は切らしておりまして2017/07/17(月) 15:48:43.41ID:bv61c3zy
AIに何兆回と攻撃を仕掛けさせ、修復をさせ、

6名刺は切らしておりまして2017/07/17(月) 15:48:54.67ID:UKmfRd6A
時代はマシン語だろ

7名刺は切らしておりまして2017/07/17(月) 15:49:06.00ID:+A69iEC4
Rust は、Cの代わりにはなれん。
C++は、いらん子

8名刺は切らしておりまして2017/07/17(月) 15:49:50.55ID:bSaHWfWE
近著「最後のC」

9名刺は切らしておりまして2017/07/17(月) 15:51:49.60ID:yYFyBSdc
むしろ初めてのCで生命が宿った><

10名刺は切らしておりまして2017/07/17(月) 15:53:19.92ID:buRXZ7gP
組み込みだと未だにCかよくてC++なんだよな
この世界で働いてると世の中から取り残されている感覚に陥る

11名刺は切らしておりまして2017/07/17(月) 15:54:25.75ID:NTMHIaoA
セキュリティホールを気にするならCはやめた方が良いな

12名刺は切らしておりまして2017/07/17(月) 15:55:05.25ID:+NN5P+G6
昔からpascalの方が筋の通っている言語な感じで好きだな。Cは嫌い。

13名刺は切らしておりまして2017/07/17(月) 16:00:12.83ID:u+KzjyeM
原始言語はいらない
幼児語レベルですべてを伝えるのは面倒
いらない
AIコンパイラで自動整合すればいい
SEX
ネットとGUI結合したストラクチャー 拡張 エクスチェンジャともいうべき言語が醸成されるべき時代
いまだにデータの構造体など指定する必要もない

14名刺は切らしておりまして2017/07/17(月) 16:01:02.52ID:4JxsjHBy
 ,;:⌒:;,
8(・ω・)8 Cは構造化されたアセンブラでありながら
      多彩なデータ構造までも簡単に実現できる
      非常に優れて言語だと思います

15名刺は切らしておりまして2017/07/17(月) 16:02:03.44ID:1e/YiDug
カーニハン アンド リッチーの本は本当に入門用として優れてるのか疑問。

あれは初心者には難しいで。

16名刺は切らしておりまして2017/07/17(月) 16:03:36.83ID:bv61c3zy
忖度言語come

17名刺は切らしておりまして2017/07/17(月) 16:05:07.01ID:+A69iEC4
>>15
あの時代に、学ぼうっていう人向けの解説書けんデファクト仕様書

18名刺は切らしておりまして2017/07/17(月) 16:05:24.66ID:GoLr6Ddi
コイツの頭の中ではBOFとポンターだけがセキュリティリスクらしい

19名刺は切らしておりまして2017/07/17(月) 16:06:36.08ID:ifoYWyAt
pythonとJAVAのSwiftとPHPくらいだな

20名刺は切らしておりまして2017/07/17(月) 16:07:35.39ID:UuqOoLVE
K&Rなんて古典的な文法で読みづらいゴミクズ。ANSIだろ。

21名刺は切らしておりまして2017/07/17(月) 16:09:19.41ID:KWrvS6Xg
>>12
ただ、pascalはもう実用してないんだよな
学生の学習用言語として残ってるだけで

22名刺は切らしておりまして2017/07/17(月) 16:11:55.61ID:YwIB5GEf
>>21
MacはPascallじゃなの!?

23名刺は切らしておりまして2017/07/17(月) 16:12:46.52ID:GVjusvWe
手塚σ
Σ

ζ§ξб
北米の攻撃対象者
C++シグマ手塚
ダントツ一位嫌われもの

24名刺は切らしておりまして2017/07/17(月) 16:12:58.74ID:Zkj4ZMuR
アセンブラでいいんじゃね?

25名刺は切らしておりまして2017/07/17(月) 16:14:05.22ID:ilgwjH/Z
そういえばD言語ってどうなってんの?

26名刺は切らしておりまして2017/07/17(月) 16:14:15.27ID:wZq/Yj/x
2年前の翻訳はないのか?

2年前、私は最初の「Cに死を[Death To C]」の記事にこう書いた:
https://techcrunch.com/2015/05/02/and-c-plus-plus-too/

27名刺は切らしておりまして2017/07/17(月) 16:14:27.27ID:d+PzUTg2
みんなでLISPを使えば幸せになれるよ
俺はごめんだが

28名刺は切らしておりまして2017/07/17(月) 16:14:27.82ID:Vo0URanL
>>15
入門ではないけど、できてるつもりの人が読むと目から鱗な本。

29名刺は切らしておりまして2017/07/17(月) 16:15:05.85ID:4JxsjHBy
 ,;:⌒:;,
8(・ω・)8 エラーチェックに引っかからないオーバーフローを考えずポインターも意識できないとか
      C言語が使えないダメダメな人ってことだな

30名刺は切らしておりまして2017/07/17(月) 16:15:08.71ID:d+PzUTg2
>>22
いつの時代の話してんだ

31名刺は切らしておりまして2017/07/17(月) 16:15:11.60ID:wZq/Yj/x
【IT】PythonがJavaに迫る勢い - 7月の開発言語ランキング [無断転載禁止]©2ch.net
http://egg.2ch.net/test/read.cgi/bizplus/1499562234/

32名刺は切らしておりまして2017/07/17(月) 16:17:26.23ID:ifoYWyAt
Windowsアプリ人気なねーな

33名刺は切らしておりまして2017/07/17(月) 16:22:13.88ID:ahhzPV4j
セキュリティホール対策って言っても
開発者の本性がハッカーだからな〜
無理っぽいなw

34名刺は切らしておりまして2017/07/17(月) 16:23:39.80ID:wZq/Yj/x

35名刺は切らしておりまして2017/07/17(月) 16:24:49.33ID:8bbD8Aiy
Cは高級な低級言語

36名刺は切らしておりまして2017/07/17(月) 16:25:17.85ID:rcvoDSkz
c/c++は永遠だよ。
なぜなら、組込系や制御系はかならず、c/c++が必要だよ。
C/C++以外でネイティブなコードは書けないよ。

37名刺は切らしておりまして2017/07/17(月) 16:26:03.53ID:+5bdNfS0
>>10
日本は新しいことに恐怖心があるからね
そのくせに非セキュアなコードを放置する

38名刺は切らしておりまして2017/07/17(月) 16:26:58.99ID:+5bdNfS0
>>36
いかにも日本的思考だなぁ
新しいものが次々と出てきても知らんぷりなんだよな

39名刺は切らしておりまして2017/07/17(月) 16:27:17.22ID:ifoYWyAt
>>36
永遠はないよ。
新しいチップと合わせてその時代にふさわしいコードが採用される。

40名刺は切らしておりまして2017/07/17(月) 16:27:58.20ID:ifoYWyAt
>>38

よろしければ国籍を教えてくださいニダ

41名刺は切らしておりまして2017/07/17(月) 16:28:08.82ID:2Xg9lz+P
じゃあC#で

42名刺は切らしておりまして2017/07/17(月) 16:28:50.43ID:rcvoDSkz
>>38
組込系や制御系で使えて、ネイティブなコードを書ける言語を教えて。

43名刺は切らしておりまして2017/07/17(月) 16:29:58.24ID:3+KNZzY0
C++は死んでるも同然だろ
Cは無くならないだろうけど

44名刺は切らしておりまして2017/07/17(月) 16:30:57.60ID:GVjusvWe
sine:(enter

>>18
ENTER>
C//33
://C.

45名刺は切らしておりまして2017/07/17(月) 16:31:44.21ID:ifoYWyAt
>>42
横だが、ネイティブはアセンブラでしょ
C言語でもともとネイティブはないよ

46名刺は切らしておりまして2017/07/17(月) 16:32:24.57ID:c5z0rTCh
で?Rust使ってる奴はどう思ってんの?

47名刺は切らしておりまして2017/07/17(月) 16:32:29.52ID:rcvoDSkz
>>39
でも、今でもC/C++は使われているよ。
まず、組込系や制御系。
それに、windowsだって、スピードが要求される部分はc/c++。
ドライバーもC/C++。
C#やjavaは遅い。

48名刺は切らしておりまして2017/07/17(月) 16:33:01.89ID:0q11y6sY
セキュリティホールはPGM言語を変えれば無くなるんだから
Windowsをrustにコンバートしてコンパイル汁!>MS

49名刺は切らしておりまして2017/07/17(月) 16:33:56.04ID:av6tGE7Y
ポインタ操作なんてセキュリティ上行ってはならない

50名刺は切らしておりまして2017/07/17(月) 16:34:10.17ID:rcvoDSkz
>>45
コンパイルすれば、ネイティブになるよ。

51名刺は切らしておりまして2017/07/17(月) 16:37:41.57ID:ifoYWyAt
>>50
情弱だな。
インタープリター以外はネイティブでしょw
実際はCでは無理なものもたくさんある。
Cはスタックポインタに依存する言語
スタックが使えないPICマイコンは向かない。

52名刺は切らしておりまして2017/07/17(月) 16:38:00.96ID:rcvoDSkz
>>49
ポインタが使えないやつは、素人。

53名刺は切らしておりまして2017/07/17(月) 16:38:54.89ID:LjaHUsA4
C/C++レモン

54名刺は切らしておりまして2017/07/17(月) 16:39:08.51ID:rcvoDSkz
>>51
C#やjavaは、ネイティブじゃないよ。

55名刺は切らしておりまして2017/07/17(月) 16:42:08.99ID:rcvoDSkz
>>51
今の電気製品で、PICマイコン使っているのもどれくらいあるの?

56名刺は切らしておりまして2017/07/17(月) 16:42:13.08ID:ifoYWyAt
>>54
馬鹿か!
非効率なんだよ。
高級源は言語単位で作られているので
必要としない処理まではいる。
結果的には無駄が多く遅くなる。
組み込みは特にそう。

ある程度本体スペックた高くパソコンやスマホもしくはOSというもので
動かせる類はC言語等でいいかもしれないが
少ないメモリーでつくる類は満足のいくものは作れない。

57名刺は切らしておりまして2017/07/17(月) 16:42:47.21ID:XvqmdC/q
そんなときこそアセンブラ
すごく速いし小さくなるし楽しいよ
グラディウスのオプションをウネウネ動かしながら勉強したわ

58名刺は切らしておりまして2017/07/17(月) 16:43:08.14ID:ifoYWyAt
情弱考える最小単位はC言語にある命令そのもの
それ以下の細かいものがない。

59名刺は切らしておりまして2017/07/17(月) 16:44:29.07ID:rcvoDSkz
>>56
念のために、確認しただけ。

60名刺は切らしておりまして2017/07/17(月) 16:46:26.80ID:GVjusvWe
www.ac.jp//.html

61名刺は切らしておりまして2017/07/17(月) 16:46:48.64ID:ifoYWyAt
C言語はWindows丸ごとなくなるだろうよ。

そもそもアセンブラが基本。
それでは効率よく作れないので
ある程度処理がまとまった単位で作られているの高級言語
高級言語の目的は少ない記述で目的のことが作れること
この定義にいうとpythonやSwiftに取って代わられる可能性がる。

少ない記載でバグがないものが作れること
これが存在するための定義。

62名刺は切らしておりまして2017/07/17(月) 16:47:01.76ID:PljvrNsD
了解した。ISO規格を教えてくれ

63名刺は切らしておりまして2017/07/17(月) 16:48:04.46ID:hndszX1U
0と1だけでプログラムしろや

64名刺は切らしておりまして2017/07/17(月) 16:48:22.10ID:rcvoDSkz
>>57
30年前に担当していた電機製品は、アセンブラで開発していた。
でも、それ以降、組込系もC言語、C++で開発できるようになったけど。
未だに、アセンブラ使っているの?

65名刺は切らしておりまして2017/07/17(月) 16:48:24.87ID:UU2KV77O
まぁ英語みたいなもんだな

66名刺は切らしておりまして2017/07/17(月) 16:48:44.46ID:YClV//nA
>>10
経験上組み込みだからってCしか知らないエンジニアは2流
簡単なツールでも何でもCで作りやがる 無駄にオプション増やすくせにgetopt(3)も知らない

67名刺は切らしておりまして2017/07/17(月) 16:49:13.10ID:UGOWwk7B
better C選手権はgolangの優勝で幕を閉じたと聞いたが

68名刺は切らしておりまして2017/07/17(月) 16:49:15.50ID:XHBulnIf
今更C++やってるけど、すげーぞ。俺はべたぼれ。

69名刺は切らしておりまして2017/07/17(月) 16:50:10.32ID:GVjusvWe
うるせえよ馬鹿、おまえがいるから世の中悪いんだよwww.ac.jp//html

70名刺は切らしておりまして2017/07/17(月) 16:51:02.66ID:YwIB5GEf
高級言語はアセンブラーのpre-Processor。

71名刺は切らしておりまして2017/07/17(月) 16:51:26.35ID:zyYrM/OD
文系のワイには何のことかサッパリ

72名刺は切らしておりまして2017/07/17(月) 16:51:42.35ID:M6NFOdQS
>>21
まだDelphiで仕事してる

73名刺は切らしておりまして2017/07/17(月) 16:51:52.45ID:GJk7DbsL
COBOL最強!!

74名刺は切らしておりまして2017/07/17(月) 16:52:31.05ID:c4BMzrCm
ポインタ潰しきやがったな

75名刺は切らしておりまして2017/07/17(月) 16:53:13.24ID:Qc7Pc9vw
これからはマクロアセンブラの時代

76名刺は切らしておりまして2017/07/17(月) 16:53:35.27ID:PljvrNsD
>>68
うちの会社でもやっているんだが
C++の学習はC++11/14でやるのがいいよ。
古いスタイルへの対応は慣れてからでいい。

77名刺は切らしておりまして2017/07/17(月) 16:54:07.52ID:Qc7Pc9vw
>>76
挫折する未来しか見えない

78名刺は切らしておりまして2017/07/17(月) 16:54:23.09ID:wZq/Yj/x
海外での反応は様々だが、最大の問題点は開発者が少数のグループで構成されていること、導入するシステムが少なすぎるいうこと
C++も進化してるので、重要なソフトウェア(OS、コンパイラー等)で採用されないと、Rustが死ぬこともあり得ること

利点としては一旦採用されたならスマホやWebスクリプトのように言語が2年単位で切り替わることがないこと

https://techcrunch.com/2017/07/16/death-to-c/

コメント欄より

Issahar Gourfinkel
One more C programming paranoia article.
I remember how they try to convince me the same on release of vb6.

David Lodge · Plant Technician at Green Teams, Inc.
Sure, c++ is losing market share in new projects; As programming advances, why do we need such a powerful low level like c++?;
I think there are easier py-languages to py-use;

Brian Hart
Hmm if C is so unsafe I wonder why its used for flight termination for Nasa and the Military.

Michael Hofmann
(My completely personal opinion)
I agree with the notion that safe, secure, large-scale software cannot be easily built in C. Plain C is an outdated, deprecated language.

But the author is conflating C and C++. C++, as the author (and unfortunately so many others) might not be aware of, is actually a different language.
And there is no such language as "C/C++", by the way.
Modern C++ code is several orders of magnitude safer then corresponding C code, and, if applied correctly, modern C++ makes most memory leaks,
buffer overflows, or other security related issues a thing of the past. If anything, death should come to C code and ancient C++ code,
but modern C++ (11/14/17) should be pushed and taught.

And about using Rust at scale: very stupid idea. Rust is an new, unproven language currently supported by a small group of people, and that
hasn't stood any serious test of time or gained any reasonable market share yet. With (modern) C++ in existence, I see no particular raison d'etre for Rust.

79名刺は切らしておりまして2017/07/17(月) 16:56:00.77ID:ifoYWyAt
>>63
ハードウェア的には3つ存在する。
0か1か繋がってないか

80名刺は切らしておりまして2017/07/17(月) 16:59:38.70ID:R5PmJEVb
つっても組み込みなんてC系なかったら成り立たんレベルだろ

81名刺は切らしておりまして2017/07/17(月) 17:02:14.40ID:zrR0CK8d
>>79
物理的に壊れるの想定せずに組んでひどい目にあったw

82名刺は切らしておりまして2017/07/17(月) 17:02:17.99ID:nKMDsFzh
車に例えると
C:メカ知識を持ったドライバー
最近の言語:いわゆる一般ドライバー

結果として車を運転する事には変わり無い
知識の領域が違う
コンピュータも抽象化が進み一般ドライバーが増えた

83名刺は切らしておりまして2017/07/17(月) 17:03:01.19ID:VcQ7ZhUI
>>77
そもそもC/C++はどっちも初心者お断り言語だろ

かつて処理きついところとか局所的にアセンブラで書いてたろ
あの立ち位置が今のC/C++だ

84名刺は切らしておりまして2017/07/17(月) 17:03:22.35ID:ifoYWyAt
>>80
組み込み系で使う理由は楽するためです。
どうでもいい部分をC言語で作ります
クリティカルな部分はインラインアセンブラで記述します。

Cがメインではなく楽するために作っているので
他の方が公立的であるなら他に移るだけだと思います。

85名刺は切らしておりまして2017/07/17(月) 17:05:43.16ID:c5z0rTCh
言語の具体性が高いほど複雑になるからな
結局システムに応じて使い分けるしかないだろ

86名刺は切らしておりまして2017/07/17(月) 17:06:29.61ID:AQNv5XBE
適材適所
勝手に好きなの使ってろよ
何言ってんだこいつは

872017/07/17(月) 17:11:52.80ID:GVjusvWe
www.ac.jp//html/https://>>1

88名刺は切らしておりまして2017/07/17(月) 17:16:02.57ID:JqX6aG39
Cはライブラリでしかない

89名刺は切らしておりまして2017/07/17(月) 17:22:19.55ID:wZq/Yj/x
海外の反応で面白いと感じたのは、この類の記事は頻繁に掲載されるが、
記事の通り言語を切り替えたら、歳を重ねても何の技術も身につかないまま終っていたというコメント

Java、C#やVB6も同じ記事を頻繁に飛ばしていたらしいが殺したというより、各言語がふさわしい居場所と活躍の場を見つけたという方が正しい
Rustの居場所がC言語を殺さないと見つけられないとすると、C言語との戦いに勝てないとRustが殺される(開発者が解散する)憂き目にあいそうだな

https://techcrunch.com/2017/07/16/death-to-c/

コメント欄より

Michael Wenk · The Ohio State University
So... C is dead, long live C, and go with Rust. Okay. Except the minor fact that these articles come out regularly.
If I switched language every time I read something like this, I would have no expertise in anything.

C is 45 years old, so it would be sad if it really was the best thing out there these days. However, that doesn't mean
rewrite, excuse me, refactor every bit of C code into the language of the day.

I implore any decision maker that reads this article to reconsider. If you have C expertise (or Java, or any other
language on the same line), then you will almost always have an easier time using that expertise than trying to
grow some in the new language. If you're worried about such statements that X thing is easier in the new language
then don't be. Its almost always just as easier for a developer to mess up X in the new language as it is in the old.

There are places to use new languages. Just not super mission critical things. I can guarentee you one thing, people
like the author won't be there when you're mission critical software goes bump in the night.

90名刺は切らしておりまして2017/07/17(月) 17:23:55.98ID:1e7Ax5fg
>>36
> C/C++以外でネイティブなコードは書けないよ。
もうちょっと勉強しよう。

91名刺は切らしておりまして2017/07/17(月) 17:25:51.79ID:4wQ0ty9i
記事風広告

92名刺は切らしておりまして2017/07/17(月) 17:26:21.32ID:jCQseR6y
エビバディダンスナウ!

93名刺は切らしておりまして2017/07/17(月) 17:26:21.87ID:bSozD3Dt
>>1
>学生に標準Cライブラリー関数を一から書き直させることから始まる

これ学生にやらせるにはいい課題だな
Cは残って欲しい(し、多分残るでしょ)が、C++はもうオワコンだろ、正直。

何に使うんだ?奇妙・キテレツな進化をしてるC++なんて
使うとしたら「ベターC」か。stringとかlistとか便利だし
でもそうするとSTL必須になるし、ダークサイド一直線w

94名刺は切らしておりまして2017/07/17(月) 17:27:08.96ID:Lb6ZuxgS
Cに勝るもんはないよ
C++は滅亡する

95名刺は切らしておりまして2017/07/17(月) 17:29:18.85ID:1e7Ax5fg
今更Cはないわなぁ

96名刺は切らしておりまして2017/07/17(月) 17:30:26.90ID:lWt2McDW
OSやデバイスドライバ、基本ライブラリはC言語じゃないと書けない
一般アプリはべつにC限度である必要はないな

97名刺は切らしておりまして2017/07/17(月) 17:30:58.61ID:hLa8WEtR
>>1
なんで、死なにゃならんの?
ほっといてくれよ。

98名刺は切らしておりまして2017/07/17(月) 17:33:27.91ID:GVjusvWe
www.
>
http://egg.2ch.net/test/read.cgi/bizplus/1500273631/
部屋違いかなあ、親父だったら泣くよ
殺す全員

99名刺は切らしておりまして2017/07/17(月) 17:35:00.46ID:1e7Ax5fg
rustはいいんだけど、C++でさえ拒否反応起こす奴が多い現状では普及は難しいだろうな

100名刺は切らしておりまして2017/07/17(月) 17:37:14.60ID:1YGwJ5ho
>>93
確かに、ベターCとして使うことの方が多い。

C++の入門書を見ると、やれクラスだ継承だポリモーフィズムとなるが、実際のところあまり使わなない。
継承はどうしてもクラスの包含では解決できないときに渋々使う感じ。

なので、C++はstringとかSTLのために使ってる。配列のインデックス管理とか面倒だからね。
あと、どこでも変数宣言ができるのも地味だけど便利。

新着レスの表示
レスを投稿する