【IT】C/C++に死を [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語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/ 早いってだけではある
ppも書きにくいからすぐ忘れるんだよな Rust は、Cの代わりにはなれん。
C++は、いらん子 組み込みだと未だにCかよくてC++なんだよな
この世界で働いてると世の中から取り残されている感覚に陥る セキュリティホールを気にするならCはやめた方が良いな 昔からpascalの方が筋の通っている言語な感じで好きだな。Cは嫌い。 原始言語はいらない
幼児語レベルですべてを伝えるのは面倒
いらない
AIコンパイラで自動整合すればいい
SEX
ネットとGUI結合したストラクチャー 拡張 エクスチェンジャともいうべき言語が醸成されるべき時代
いまだにデータの構造体など指定する必要もない ,;:⌒:;,
8(・ω・)8 Cは構造化されたアセンブラでありながら
多彩なデータ構造までも簡単に実現できる
非常に優れて言語だと思います カーニハン アンド リッチーの本は本当に入門用として優れてるのか疑問。
あれは初心者には難しいで。 >>15
あの時代に、学ぼうっていう人向けの解説書けんデファクト仕様書 コイツの頭の中ではBOFとポンターだけがセキュリティリスクらしい pythonとJAVAのSwiftとPHPくらいだな K&Rなんて古典的な文法で読みづらいゴミクズ。ANSIだろ。 >>12
ただ、pascalはもう実用してないんだよな
学生の学習用言語として残ってるだけで 手塚σ
Σ
℃
ζ§ξб
北米の攻撃対象者
C++シグマ手塚
ダントツ一位嫌われもの みんなでLISPを使えば幸せになれるよ
俺はごめんだが >>15
入門ではないけど、できてるつもりの人が読むと目から鱗な本。 ,;:⌒:;,
8(・ω・)8 エラーチェックに引っかからないオーバーフローを考えずポインターも意識できないとか
C言語が使えないダメダメな人ってことだな 【IT】PythonがJavaに迫る勢い - 7月の開発言語ランキング [無断転載禁止]©2ch.net
http://egg.2ch.net/test/read.cgi/bizplus/1499562234/ セキュリティホール対策って言っても
開発者の本性がハッカーだからな〜
無理っぽいなw c/c++は永遠だよ。
なぜなら、組込系や制御系はかならず、c/c++が必要だよ。
C/C++以外でネイティブなコードは書けないよ。 >>10
日本は新しいことに恐怖心があるからね
そのくせに非セキュアなコードを放置する >>36
いかにも日本的思考だなぁ
新しいものが次々と出てきても知らんぷりなんだよな >>36
永遠はないよ。
新しいチップと合わせてその時代にふさわしいコードが採用される。 >>38
組込系や制御系で使えて、ネイティブなコードを書ける言語を教えて。 C++は死んでるも同然だろ
Cは無くならないだろうけど sine:(enter
>>18
ENTER>
C//33
://C. >>42
横だが、ネイティブはアセンブラでしょ
C言語でもともとネイティブはないよ >>39
でも、今でもC/C++は使われているよ。
まず、組込系や制御系。
それに、windowsだって、スピードが要求される部分はc/c++。
ドライバーもC/C++。
C#やjavaは遅い。 セキュリティホールはPGM言語を変えれば無くなるんだから
Windowsをrustにコンバートしてコンパイル汁!>MS >>50
情弱だな。
インタープリター以外はネイティブでしょw
実際はCでは無理なものもたくさんある。
Cはスタックポインタに依存する言語
スタックが使えないPICマイコンは向かない。 >>51
C#やjavaは、ネイティブじゃないよ。 >>51
今の電気製品で、PICマイコン使っているのもどれくらいあるの? >>54
馬鹿か!
非効率なんだよ。
高級源は言語単位で作られているので
必要としない処理まではいる。
結果的には無駄が多く遅くなる。
組み込みは特にそう。
ある程度本体スペックた高くパソコンやスマホもしくはOSというもので
動かせる類はC言語等でいいかもしれないが
少ないメモリーでつくる類は満足のいくものは作れない。 そんなときこそアセンブラ
すごく速いし小さくなるし楽しいよ
グラディウスのオプションをウネウネ動かしながら勉強したわ 情弱考える最小単位はC言語にある命令そのもの
それ以下の細かいものがない。 C言語はWindows丸ごとなくなるだろうよ。
そもそもアセンブラが基本。
それでは効率よく作れないので
ある程度処理がまとまった単位で作られているの高級言語
高級言語の目的は少ない記述で目的のことが作れること
この定義にいうとpythonやSwiftに取って代わられる可能性がる。
少ない記載でバグがないものが作れること
これが存在するための定義。 >>57
30年前に担当していた電機製品は、アセンブラで開発していた。
でも、それ以降、組込系もC言語、C++で開発できるようになったけど。
未だに、アセンブラ使っているの? >>10
経験上組み込みだからってCしか知らないエンジニアは2流
簡単なツールでも何でもCで作りやがる 無駄にオプション増やすくせにgetopt(3)も知らない better C選手権はgolangの優勝で幕を閉じたと聞いたが うるせえよ馬鹿、おまえがいるから世の中悪いんだよwww.ac.jp//html 高級言語はアセンブラーのpre-Processor。 >>68
うちの会社でもやっているんだが
C++の学習はC++11/14でやるのがいいよ。
古いスタイルへの対応は慣れてからでいい。 海外での反応は様々だが、最大の問題点は開発者が少数のグループで構成されていること、導入するシステムが少なすぎるいうこと
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. >>63
ハードウェア的には3つ存在する。
0か1か繋がってないか つっても組み込みなんてC系なかったら成り立たんレベルだろ >>79
物理的に壊れるの想定せずに組んでひどい目にあったw 車に例えると
C:メカ知識を持ったドライバー
最近の言語:いわゆる一般ドライバー
結果として車を運転する事には変わり無い
知識の領域が違う
コンピュータも抽象化が進み一般ドライバーが増えた >>77
そもそもC/C++はどっちも初心者お断り言語だろ
かつて処理きついところとか局所的にアセンブラで書いてたろ
あの立ち位置が今のC/C++だ >>80
組み込み系で使う理由は楽するためです。
どうでもいい部分をC言語で作ります
クリティカルな部分はインラインアセンブラで記述します。
Cがメインではなく楽するために作っているので
他の方が公立的であるなら他に移るだけだと思います。 言語の具体性が高いほど複雑になるからな
結局システムに応じて使い分けるしかないだろ 適材適所
勝手に好きなの使ってろよ
何言ってんだこいつは www.ac.jp//html/https://>>1 海外の反応で面白いと感じたのは、この類の記事は頻繁に掲載されるが、
記事の通り言語を切り替えたら、歳を重ねても何の技術も身につかないまま終っていたというコメント
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. >>36
> C/C++以外でネイティブなコードは書けないよ。
もうちょっと勉強しよう。 >>1
>学生に標準Cライブラリー関数を一から書き直させることから始まる
これ学生にやらせるにはいい課題だな
Cは残って欲しい(し、多分残るでしょ)が、C++はもうオワコンだろ、正直。
何に使うんだ?奇妙・キテレツな進化をしてるC++なんて
使うとしたら「ベターC」か。stringとかlistとか便利だし
でもそうするとSTL必須になるし、ダークサイド一直線w OSやデバイスドライバ、基本ライブラリはC言語じゃないと書けない
一般アプリはべつにC限度である必要はないな >>1
なんで、死なにゃならんの?
ほっといてくれよ。 rustはいいんだけど、C++でさえ拒否反応起こす奴が多い現状では普及は難しいだろうな >>93
確かに、ベターCとして使うことの方が多い。
C++の入門書を見ると、やれクラスだ継承だポリモーフィズムとなるが、実際のところあまり使わなない。
継承はどうしてもクラスの包含では解決できないときに渋々使う感じ。
なので、C++はstringとかSTLのために使ってる。配列のインデックス管理とか面倒だからね。
あと、どこでも変数宣言ができるのも地味だけど便利。 ■ このスレッドは過去ログ倉庫に格納されています