【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/ >>1
なんで、死なにゃならんの?
ほっといてくれよ。 rustはいいんだけど、C++でさえ拒否反応起こす奴が多い現状では普及は難しいだろうな >>93
確かに、ベターCとして使うことの方が多い。
C++の入門書を見ると、やれクラスだ継承だポリモーフィズムとなるが、実際のところあまり使わなない。
継承はどうしてもクラスの包含では解決できないときに渋々使う感じ。
なので、C++はstringとかSTLのために使ってる。配列のインデックス管理とか面倒だからね。
あと、どこでも変数宣言ができるのも地味だけど便利。 ハードウェア設計をやってると、C以外の高級言語なんて使う機会は皆無。
ただし、高位合成の関係でC++というかSystemCは使うが。 >>9
今はスゴいHの時代、状態に影響を与えないのがもてはやされてるんだぜ >>100
それでいいんだよ。C++の思想は「いろいろ用意したから好きなの使え」。
別にオブジェクト指向やる必要もない。その実用主義がC++のいいところ。 >>79
あと、0か1かランダムブレる(不定)という状態もあるぞ?
まあ、接続してないってのはハードウェア的には不定なんだがな >>1
Cで十分
Cでセキュリティホールとか、
メモリーリークとか、チャンチャラおかしい
初心者かよwww
お子ちゃまは、オッパイ飲んで寝んねしてな もうこいつも阿呆なんだから日本語で書けるようにしろよ
これでプログラミング問題は終わる >>105
ポインター使った経験ないど素人だな、お前は(笑) Rust最大の問題は生産性の低さだと聞いたが…
メモリ管理厳密にやるには仕方ないのかもしれないけど、
C++より書きにくいってのはなかなかないよな
Objective-Cくらいかw C++は怪物言語だけど、一番万能言語に近くもあるね
Cは「システム記述言語」。
アセンブリの置き換え
セキュリティが担保されている階層で使うべき
C++は万能感があるがC以上に慎重さが求められる
力量で記述の差が大きいし、コンパイルにも時間がかかるから
複数人の大規模開発ではなるべく避ける方が結果的に無難 メモリーリークはスレッド関連でも起きるんだよな。w Cはなんでもキャストできるから危ないといわれ、
C++でカプセル化が導入されたが、中途半端であった。
そして言語仕様が複雑化していった。 まあ、言語はなんでもいいんだけどな。
セキュリティーを考えすぎるあまり、
一般人に手の届かないことになるのは
どうかと思うね。 C++のバージョンの新しいのは、便利といえば便利だが、
初心者には意味がわかりにくいだろうな。
どういう経緯から導入されたのか、
そういう理解が必要な層なんだよ。 高速だしメモリをいじったりするのには代替が無いだろ cでもcppでもいいけど、昔ながらの職人コード書くのはやめてほしい。
cが最強とか言う人って、関数型言語はおろか、オブジェクト指向すら学ぼうとしないし、スマートポインタとかラムダとかを学ぼうとしない。
いまのC++が目指しているのは
「何でもできる究極のコンパイル言語」
これは「生き残り戦略」
だから全部入りで研究者レベルにも不満を抱かれないようにしている
逆に肥大化し過ぎて素人レベルには理解不能な機能も多い ネイティブ開発ならOCamlでやればいい
ついでに.NET開発用のF#の知識もおまけでついてくるし カーネルをほかの言語で書き直すのは現実的じゃないよな 昔からあるOSや組み込みソフトやらミドルウェアはCでもいいだろうて
それ以外の言語じゃ役不足なんだから(Goにするか)
PCアプリとか上位アプリといったものをCで頑張っているのは発狂ものだから置き換えるのはいいがな
それだけのこと イメージだけだけど、
日本に言語から作り直そうなんて思って実行できる
技術者なんているの? https://techcrunch.com/2017/07/16/death-to-c/
コメント欄より
Seth Anderson
$ mv <This Article> /dev/null
$ mv Rust /dev/null
or
$ cp "Death to C, ++".txt "Why can't everything just be in Node.js and Windows".txt
$ whoami
Windows desktopper TrimメソッドをCで書くとすごく長くなるんだけど、
Trimもしとけ、えいやって感じで使ってるよね。 >>93
なんでSTLがダークサイドなんだ?
俺なんかboostすら使いまくりなのに
組み込みでんなの使えない?知るかよw いまじゃBIOSでしか使われていないらしいFORTHとか、
70年代に一世を風靡したGAME言語とか、
ハードべったりコードを書くのに適した言語は色々あるんだけど、
なぜかC。
unixだって文書編纂システムだったはずなのに、
なぜかリアルタイム用途にまで使われてしまって……。
C言語だけじゃなく、それを取り巻いているものすべてが神輿になってる。
誰が担ぎ始めたんだ? SINE:/{1}
<1
ac.jp/sine[18]
〜#1{38
EN? >>54
今はJavaもネイティブコンパイルされて動くんよ。 知り合いの東大生はほとんど自作で標準ライブラリをほとんどincludeしてなかったな。
てか演算子すら定義し直してててえって思ったわ。 >>132
FORTH ならアセンブラ並みに高速になるけどな。
さすがにあの文法はなぁ。文法と呼べるかすら微妙だしな。
俺は好きなんだが。 WEBとJAVAにjavascriptの組み合わせこそ死が必要
ブラウザを進化させてVB6ライクのサバクラ開発に戻そうぜ ネットワークを無効化するプログラムを書けば良いんですか C = Abstracted Macro Assembler ttps://pbs.twimg.com/media/C_9r-_JUIAA9puw.png セキュリティーホールの発生の責任を、コンピュータ言語に負わせるのは無理がある。
言いがかりのレベル。
セキュリティーホールの多数は、実装方法の問題だろ。 >>1 糞スレたてんな。
15年も前に終わった話をいまさら何を言っているのか。 まあ、これはアレだな
その人の環境で決まるよ
C/C++を使う仕事ならそれを覚えりゃいい
組み込み系かweb系かでも違う
俺の同級生は中国系のゲーム会社で働いてるけど
英語なんかほとんど勉強してないよ
中国語を覚えて中国人の上司に気に入られて
今では年収1500万の重要なポジションに就いてる
英語話せる同期は300万クラスのコーダーやってるよ
重要なのは環境な
覚える価値がある言語ならそっちの方がコスパかいい >>2
それは違う
cでできることに蓋をして単純化したのが、その他の言語 >>108
慣れの問題ではあるんだけどね。
C/C++の感覚でデータ構造とか考えてるとコンパイルすら通らないのでイライラする。 >>112
複数人での大規模開発をCでやるのも結構無理がある。 C#はIDEのお陰で便利だが.Netをインストールしてくれる鯖が余りない これからはC#でUNITYの時代だろ
うちの上司、UNITYの簡単な動画でプレゼン作ってるよ
30分くらいで作れるような簡単な動画な
店舗のシミュレーションで
客の動きと店員の動きを説明するときに
かなりわかりやすいよ C と比べて高機能なこと
セキュリティ対策やらメモリ管理やら並列化やらを拡充して
新しい言語をつくることはできるけど
その拡張部分に不満があって、自分の思い通りに動かしたいってときに
どうするか
結局 C で書こうってなる。
C は結局のところ、制御構造とメモリ管理やるだけの言語
バイナリにとても近いからなんでもできるからね 0101130111000031101301010103010030103 PICでもC言語使えるじゃん
PHPメインだがCが元になってるからほとんど違和感ないな
ってか今さらC以外の言語を作り直すメリットあるの?コストからして割に合わないだろ 言語以前にコンピュータシステムや通信プロトコルを理解していないSEが多すぎる
それなのに言語やPCスペックだけはやたらこだわる ミジカビの
キャプリキ取ればスギチョビれ
スギカキスラの
ハッパフミフミ
ウッシッシ 今じゃクラス機能が入ったりPHP7が出てきたりマシンの性能が上がってPHPの開発が増えてるぞ
JAVA系がPHPに置き換わったりしてるしFWの種類や開発速度を考慮するとPHPが最強なのでは?
Cが元になってるからCは使われ続けるということだな >>160
PHPから入ったから少しずつわかってきたが完全には理解してないなw
PCスペックは最近のWEBやアプリ開発ではローカルに本番と同じ環境を構築するからある程度のものは必要になる 03103103000010310103011000000130000000000013101 1001031011010101000010310100000000000001 >>163
https://clearedjobs.net/job/principal-real-time-embedded-software-engineer-e05-e06-tucson-arizona-395808
今はC++とAdaが共存
U.S. Citizenship is required
Minimum of 8 years of experience in an embedded real-time setting
Experience using C / C++
Experience developing, testing and integrating real-time software
Experience using embedded RTOSs (e.g. VxWorks, Integrity)
Experience with software/hardware/firmware integration もし幼稚語ならコンピュータがバカにするなって
書いてきたら面白いww CとかC++とか、あんな変態言語、いまさら使う気も起きねえわ。
PythonとC#で十分。 >>14
これはハゲしくハゲ
こんなハゲな意見にハゲしたのは久々
最後にもう一度、ハゲしく同意 >>94
gccだってc++で書かれるようになったのにそれは無いだろ >>153
AWSとかAzureとか使えばいいじゃないの Rustは置き換えコストと学習コスト、継続性、可搬性を考慮して、
C/C++を捨てるに足る言語なのか? C#は逆アセンブルされて技術が漏れやすいからな。
Cやアセンブラなら、リバースエンジニアリング対策が楽。 Pythonや Javaでドライバは書けない。
C 要らないって言ってるやつはハード操作どうしてんの? ポインタとかバグの温床だしガベージコレクションない言語はもう使いたくねぇわ そういうレイアーに無縁なんだろうね
うらやましいっちゃ、うらやましい >>181
ガベージコレクションと言語は 関係ないけどな。 キャメロン前首相が、監視できないwebはあってはならないとか言ってから、
まあ筒抜けなんじゃないかな。
完璧なセキュリティーというのは、無理というか、過度な期待を寄せすぎというか、
極端な話、地震を余地しょうとする試みなのかも知れない。 量子コンピューターにも何らかのバックドアが仕込まれる可能性がある。 >バッファーオーバーフローや宙ぶらりんのポインターのために壊滅的セキュリティーホールが生まれる事態
半高級言語なんてバカや不注意なやつが使えばどんな言語だって壊滅的セキュリティーホールが生まれるように思うが メディアからイメージを吸い出せないゲーム機というのも
意外に実現していない。 セキュア系のAPIやらCRT関数は、範囲チェックを中で行っているから、
安心なんだろうな。
まあ、渡したサイズが違ってたら、一緒だろうけど。 >>96
やっぱりそうか。1見ておかしいなぁと思ってた。注目集めたいだけだったのかな。 >>132
誰かが、システム記述言語C
OSを書けるのはCだけ
と騒いだから
アセンブラに辟易してた時に降臨したから
無料で使えるUNIXもどきがCで書かれてたから >>36
RAMのサイズが2kBとかだとC以外は考えられない
あとはASMくらいだ >>64
ゲーム屋にいたすごい昔の話
仕事変えてだいぶ経つけど懐かしくなって最近はアンドロイドでJAVA勉強してるよ Microsoft製を使うメリットはないだろ
全てのOSにide用意しないとか話にならん 世界はCとC++が支えている
いまさら消し去ることなど無理
そしてプログラマはエベレスト級のC++に挑む ■ このスレッドは過去ログ倉庫に格納されています