X



【IT】C/C++に死を [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001ノチラ ★
垢版 |
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/
0002名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:45:00.31ID:+5bdNfS0
早いってだけではある
ppも書きにくいからすぐ忘れるんだよな
0003名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:45:09.91ID:MirfapV3
よし!いよいよCOBOLの時代だな!
0004名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:46:54.25ID:OSl7ngdx
cでええよ
0005名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:48:43.41ID:bv61c3zy
AIに何兆回と攻撃を仕掛けさせ、修復をさせ、
0006名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:48:54.67ID:UKmfRd6A
時代はマシン語だろ
0010名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:53:19.92ID:buRXZ7gP
組み込みだと未だにCかよくてC++なんだよな
この世界で働いてると世の中から取り残されている感覚に陥る
0011名刺は切らしておりまして
垢版 |
2017/07/17(月) 15:54:25.75ID:NTMHIaoA
セキュリティホールを気にするならCはやめた方が良いな
0013名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:00:12.83ID:u+KzjyeM
原始言語はいらない
幼児語レベルですべてを伝えるのは面倒
いらない
AIコンパイラで自動整合すればいい
SEX
ネットとGUI結合したストラクチャー 拡張 エクスチェンジャともいうべき言語が醸成されるべき時代
いまだにデータの構造体など指定する必要もない
0014名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:01:02.52ID:4JxsjHBy
 ,;:⌒:;,
8(・ω・)8 Cは構造化されたアセンブラでありながら
      多彩なデータ構造までも簡単に実現できる
      非常に優れて言語だと思います
0015名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:02:03.44ID:1e/YiDug
カーニハン アンド リッチーの本は本当に入門用として優れてるのか疑問。

あれは初心者には難しいで。
0016名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:03:36.83ID:bv61c3zy
忖度言語come
0018名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:05:24.66ID:GoLr6Ddi
コイツの頭の中ではBOFとポンターだけがセキュリティリスクらしい
0019名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:06:36.08ID:ifoYWyAt
pythonとJAVAのSwiftとPHPくらいだな
0020名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:07:35.39ID:UuqOoLVE
K&Rなんて古典的な文法で読みづらいゴミクズ。ANSIだろ。
0022名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:11:55.61ID:YwIB5GEf
>>21
MacはPascallじゃなの!?
0023名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:12:46.52ID:GVjusvWe
手塚σ
Σ

ζ§ξб
北米の攻撃対象者
C++シグマ手塚
ダントツ一位嫌われもの
0024名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:12:58.74ID:Zkj4ZMuR
アセンブラでいいんじゃね?
0025名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:14:05.22ID:ilgwjH/Z
そういえばD言語ってどうなってんの?
0027名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:14:27.27ID:d+PzUTg2
みんなでLISPを使えば幸せになれるよ
俺はごめんだが
0029名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:15:05.85ID:4JxsjHBy
 ,;:⌒:;,
8(・ω・)8 エラーチェックに引っかからないオーバーフローを考えずポインターも意識できないとか
      C言語が使えないダメダメな人ってことだな
0030名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:15:08.71ID:d+PzUTg2
>>22
いつの時代の話してんだ
0032名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:17:26.23ID:ifoYWyAt
Windowsアプリ人気なねーな
0033名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:22:13.88ID:ahhzPV4j
セキュリティホール対策って言っても
開発者の本性がハッカーだからな〜
無理っぽいなw
0036名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:25:17.85ID:rcvoDSkz
c/c++は永遠だよ。
なぜなら、組込系や制御系はかならず、c/c++が必要だよ。
C/C++以外でネイティブなコードは書けないよ。
0037名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:26:03.53ID:+5bdNfS0
>>10
日本は新しいことに恐怖心があるからね
そのくせに非セキュアなコードを放置する
0038名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:26:58.99ID:+5bdNfS0
>>36
いかにも日本的思考だなぁ
新しいものが次々と出てきても知らんぷりなんだよな
0039名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:27:17.22ID:ifoYWyAt
>>36
永遠はないよ。
新しいチップと合わせてその時代にふさわしいコードが採用される。
0040名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:27:58.20ID:ifoYWyAt
>>38

よろしければ国籍を教えてくださいニダ
0041名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:28:08.82ID:2Xg9lz+P
じゃあC#で
0042名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:28:50.43ID:rcvoDSkz
>>38
組込系や制御系で使えて、ネイティブなコードを書ける言語を教えて。
0043名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:29:58.24ID:3+KNZzY0
C++は死んでるも同然だろ
Cは無くならないだろうけど
0044名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:30:57.60ID:GVjusvWe
sine:(enter

>>18
ENTER>
C//33
://C.
0045名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:31:44.21ID:ifoYWyAt
>>42
横だが、ネイティブはアセンブラでしょ
C言語でもともとネイティブはないよ
0046名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:32:24.57ID:c5z0rTCh
で?Rust使ってる奴はどう思ってんの?
0047名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:32:29.52ID:rcvoDSkz
>>39
でも、今でもC/C++は使われているよ。
まず、組込系や制御系。
それに、windowsだって、スピードが要求される部分はc/c++。
ドライバーもC/C++。
C#やjavaは遅い。
0048名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:33:01.89ID:0q11y6sY
セキュリティホールはPGM言語を変えれば無くなるんだから
Windowsをrustにコンバートしてコンパイル汁!>MS
0049名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:33:56.04ID:av6tGE7Y
ポインタ操作なんてセキュリティ上行ってはならない
0050名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:34:10.17ID:rcvoDSkz
>>45
コンパイルすれば、ネイティブになるよ。
0051名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:37:41.57ID:ifoYWyAt
>>50
情弱だな。
インタープリター以外はネイティブでしょw
実際はCでは無理なものもたくさんある。
Cはスタックポインタに依存する言語
スタックが使えないPICマイコンは向かない。
0052名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:38:00.96ID:rcvoDSkz
>>49
ポインタが使えないやつは、素人。
0054名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:39:08.51ID:rcvoDSkz
>>51
C#やjavaは、ネイティブじゃないよ。
0055名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:42:08.99ID:rcvoDSkz
>>51
今の電気製品で、PICマイコン使っているのもどれくらいあるの?
0056名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:42:13.08ID:ifoYWyAt
>>54
馬鹿か!
非効率なんだよ。
高級源は言語単位で作られているので
必要としない処理まではいる。
結果的には無駄が多く遅くなる。
組み込みは特にそう。

ある程度本体スペックた高くパソコンやスマホもしくはOSというもので
動かせる類はC言語等でいいかもしれないが
少ないメモリーでつくる類は満足のいくものは作れない。
0057名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:42:47.21ID:XvqmdC/q
そんなときこそアセンブラ
すごく速いし小さくなるし楽しいよ
グラディウスのオプションをウネウネ動かしながら勉強したわ
0058名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:43:08.14ID:ifoYWyAt
情弱考える最小単位はC言語にある命令そのもの
それ以下の細かいものがない。
0059名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:44:29.07ID:rcvoDSkz
>>56
念のために、確認しただけ。
0060名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:46:26.80ID:GVjusvWe
www.ac.jp//.html
0061名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:46:48.64ID:ifoYWyAt
C言語はWindows丸ごとなくなるだろうよ。

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

少ない記載でバグがないものが作れること
これが存在するための定義。
0064名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:48:22.10ID:rcvoDSkz
>>57
30年前に担当していた電機製品は、アセンブラで開発していた。
でも、それ以降、組込系もC言語、C++で開発できるようになったけど。
未だに、アセンブラ使っているの?
0066名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:48:44.46ID:YClV//nA
>>10
経験上組み込みだからってCしか知らないエンジニアは2流
簡単なツールでも何でもCで作りやがる 無駄にオプション増やすくせにgetopt(3)も知らない
0069名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:50:10.32ID:GVjusvWe
うるせえよ馬鹿、おまえがいるから世の中悪いんだよwww.ac.jp//html
0070名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:51:02.66ID:YwIB5GEf
高級言語はアセンブラーのpre-Processor。
0071名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:51:26.35ID:zyYrM/OD
文系のワイには何のことかサッパリ
0074名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:52:31.05ID:c4BMzrCm
ポインタ潰しきやがったな
0075名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:53:13.24ID:Qc7Pc9vw
これからはマクロアセンブラの時代
0076名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:53:35.27ID:PljvrNsD
>>68
うちの会社でもやっているんだが
C++の学習はC++11/14でやるのがいいよ。
古いスタイルへの対応は慣れてからでいい。
0077名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:54:07.52ID:Qc7Pc9vw
>>76
挫折する未来しか見えない
0078名刺は切らしておりまして
垢版 |
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.
0079名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:56:00.77ID:ifoYWyAt
>>63
ハードウェア的には3つ存在する。
0か1か繋がってないか
0080名刺は切らしておりまして
垢版 |
2017/07/17(月) 16:59:38.70ID:R5PmJEVb
つっても組み込みなんてC系なかったら成り立たんレベルだろ
0082名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:02:17.99ID:nKMDsFzh
車に例えると
C:メカ知識を持ったドライバー
最近の言語:いわゆる一般ドライバー

結果として車を運転する事には変わり無い
知識の領域が違う
コンピュータも抽象化が進み一般ドライバーが増えた
0083名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:03:01.19ID:VcQ7ZhUI
>>77
そもそもC/C++はどっちも初心者お断り言語だろ

かつて処理きついところとか局所的にアセンブラで書いてたろ
あの立ち位置が今のC/C++だ
0084名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:03:22.35ID:ifoYWyAt
>>80
組み込み系で使う理由は楽するためです。
どうでもいい部分をC言語で作ります
クリティカルな部分はインラインアセンブラで記述します。

Cがメインではなく楽するために作っているので
他の方が公立的であるなら他に移るだけだと思います。
0085名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:05:43.16ID:c5z0rTCh
言語の具体性が高いほど複雑になるからな
結局システムに応じて使い分けるしかないだろ
0086名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:06:29.61ID:AQNv5XBE
適材適所
勝手に好きなの使ってろよ
何言ってんだこいつは
0087
垢版 |
2017/07/17(月) 17:11:52.80ID:GVjusvWe
www.ac.jp//html/https://>>1
0089名刺は切らしておりまして
垢版 |
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.
0090名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:23:55.98ID:1e7Ax5fg
>>36
> C/C++以外でネイティブなコードは書けないよ。
もうちょっと勉強しよう。
0091名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:25:51.79ID:4wQ0ty9i
記事風広告
0093名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:26:21.87ID:bSozD3Dt
>>1
>学生に標準Cライブラリー関数を一から書き直させることから始まる

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

何に使うんだ?奇妙・キテレツな進化をしてるC++なんて
使うとしたら「ベターC」か。stringとかlistとか便利だし
でもそうするとSTL必須になるし、ダークサイド一直線w
0095名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:29:18.85ID:1e7Ax5fg
今更Cはないわなぁ
0096名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:30:26.90ID:lWt2McDW
OSやデバイスドライバ、基本ライブラリはC言語じゃないと書けない
一般アプリはべつにC限度である必要はないな
0099名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:35:00.46ID:1e7Ax5fg
rustはいいんだけど、C++でさえ拒否反応起こす奴が多い現状では普及は難しいだろうな
0100名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:37:14.60ID:1YGwJ5ho
>>93
確かに、ベターCとして使うことの方が多い。

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

なので、C++はstringとかSTLのために使ってる。配列のインデックス管理とか面倒だからね。
あと、どこでも変数宣言ができるのも地味だけど便利。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況