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/
0158名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:30:14.74ID:+6VxKhm/
PICでもC言語使えるじゃん
PHPメインだがCが元になってるからほとんど違和感ないな
ってか今さらC以外の言語を作り直すメリットあるの?コストからして割に合わないだろ
0160名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:32:08.81ID:1MN4dPXF
言語以前にコンピュータシステムや通信プロトコルを理解していないSEが多すぎる
それなのに言語やPCスペックだけはやたらこだわる
0161名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:32:21.41ID:vcBXlCV/
ミジカビの
キャプリキ取ればスギチョビれ
スギカキスラの
ハッパフミフミ

ウッシッシ
0162名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:33:24.99ID:+6VxKhm/
今じゃクラス機能が入ったりPHP7が出てきたりマシンの性能が上がってPHPの開発が増えてるぞ
JAVA系がPHPに置き換わったりしてるしFWの種類や開発速度を考慮するとPHPが最強なのでは?
Cが元になってるからCは使われ続けるということだな
0163名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:34:18.51ID:UOS0W0f+
ミサイルはどんな言語を使ってんだろ。
0164名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:35:36.51ID:+6VxKhm/
>>160
PHPから入ったから少しずつわかってきたが完全には理解してないなw
PCスペックは最近のWEBやアプリ開発ではローカルに本番と同じ環境を構築するからある程度のものは必要になる
0165名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:35:58.20ID:GVjusvWe
03103103000010310103011000000130000000000013101
0166名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:36:38.11ID:UOS0W0f+
ペンタゴンがC#を推奨してたんだっけ?
0167名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:37:22.81ID:UOS0W0f+
勝利。
0168名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:37:46.01ID:GVjusvWe
1001031011010101000010310100000000000001
0169名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:38:01.34ID:wZq/Yj/x
>>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
0170名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:42:22.32ID:g2JEl5+r
もし幼稚語ならコンピュータがバカにするなって
書いてきたら面白いww
0171名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:43:35.59ID:UOS0W0f+
完全雇用のいま、暇人いると思う?
0173名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:51:49.68ID:jaiY+qDt
>>14
これはハゲしくハゲ
こんなハゲな意見にハゲしたのは久々

最後にもう一度、ハゲしく同意
0174名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:53:27.42ID:8Sf2Na6O
>>94
gccだってc++で書かれるようになったのにそれは無いだろ
0176名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:59:13.31ID:gMM8tilZ
Rustは置き換えコストと学習コスト、継続性、可搬性を考慮して、
C/C++を捨てるに足る言語なのか?
0177名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:02:42.00ID:GVjusvWe
7100151001910110
0178名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:05:47.15ID:GVjusvWe
10111
0179名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:08:16.05ID:uNOepe0V
C#は逆アセンブルされて技術が漏れやすいからな。

Cやアセンブラなら、リバースエンジニアリング対策が楽。
0180名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:17:46.01ID:Txlzgoln
Pythonや Javaでドライバは書けない。
C 要らないって言ってるやつはハード操作どうしてんの?
0181名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:22:54.63ID:9OAc57aR
ポインタとかバグの温床だしガベージコレクションない言語はもう使いたくねぇわ
0183名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:29:30.84ID:YwIB5GEf
>>181
ガベージコレクションと言語は 関係ないけどな。
0184名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:29:45.11ID:/OPJ4kpX
素人には何がなんだかさっぱりわからん
0185名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:41:55.91ID:cdv0bjlU
キャメロン前首相が、監視できないwebはあってはならないとか言ってから、
まあ筒抜けなんじゃないかな。

完璧なセキュリティーというのは、無理というか、過度な期待を寄せすぎというか、
極端な話、地震を余地しょうとする試みなのかも知れない。
0186名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:42:27.30ID:cdv0bjlU
○予知
☓余地
0187名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:43:34.92ID:cdv0bjlU
量子コンピューターにも何らかのバックドアが仕込まれる可能性がある。
0188名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:44:49.73ID:umfu7v+a
>バッファーオーバーフローや宙ぶらりんのポインターのために壊滅的セキュリティーホールが生まれる事態
半高級言語なんてバカや不注意なやつが使えばどんな言語だって壊滅的セキュリティーホールが生まれるように思うが
0189名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:44:54.51ID:cdv0bjlU
メディアからイメージを吸い出せないゲーム機というのも
意外に実現していない。
0190名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:46:09.11ID:cdv0bjlU
セキュア系のAPIやらCRT関数は、範囲チェックを中で行っているから、
安心なんだろうな。

まあ、渡したサイズが違ってたら、一緒だろうけど。
0192名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:53:43.91ID:xJ/000d7
>>132
誰かが、システム記述言語C
OSを書けるのはCだけ
と騒いだから
アセンブラに辟易してた時に降臨したから
無料で使えるUNIXもどきがCで書かれてたから
0193名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:54:56.45ID:NwyPVNrM
>>36
RAMのサイズが2kBとかだとC以外は考えられない
あとはASMくらいだ
0194名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:55:15.85ID:XvqmdC/q
>>64
ゲーム屋にいたすごい昔の話
仕事変えてだいぶ経つけど懐かしくなって最近はアンドロイドでJAVA勉強してるよ
0195名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:55:50.51ID:+5bdNfS0
Microsoft製を使うメリットはないだろ
全てのOSにide用意しないとか話にならん
0196名刺は切らしておりまして
垢版 |
2017/07/17(月) 20:59:55.94ID:wGtfSV8U
世界はCとC++が支えている
いまさら消し去ることなど無理
そしてプログラマはエベレスト級のC++に挑む
0197名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:00:46.03ID:iqw130Tu
>>15
プログラミングの経験が全くない人には向かないかもしれない。
しかし他の言語やアセンブラの経験があれば大変優れた入門書だと思う。
俺はあまりの分かり易さに衝撃を受けた。それでいて言語仕様の非常に細かい
ところまで網羅されている。
他のプログラミング言語の入門書もあんな風に書かれていたら楽なのにと思う。
0198名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:06:24.92ID:0UOW91J7
C++は、
 cout << var << endl;
たったこれだけでデバッグログが出力できる。varが数字であろうと、文字であろうとだ。
便利すぎだろ。
0199名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:09:29.88ID:frtPdiDt
ノーコメントワロタ
0200名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:09:33.45ID:1e7Ax5fg
>>96
C以外でも書けるけど。
何処かで読んだ内容をただ丸暗記してるだけで、
なんでOSを書ける言語とそうでない言語があるのかとか考えたことないでしょ。
0202名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:11:17.87ID:pbLzfM11
なんで組込み系は馬鹿にされるのか
MISRA-Cとかクソミソな言われようだもんな
アレはアレで意味があると思うけどな
バグが人命に関わるような場面では特に
0203名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:12:06.80ID:O+NjiZ7z
>>96
アホの子かよ
0204名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:14:10.99ID:XudYSJ4Q
この手のエバァンジェリスト達は、手法を誤ってる

そんな脅し文句や呪詛を吐き続けるよりも
linuxのソースコードを書き換えて魅せた方がよほど説得力があるのに
0205名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:14:41.92ID:M+B+pZna
このスレで言うところのアセンブラってPICとかSHとかARM7TDMIとか?

まさかCortex-A系とかをフルで手書きのアセンブリ言語で書いて、
LLVM/CLANGとかの生成コードより早く動作するとか寝言言ってる?
0206名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:14:55.77ID:RAoqQ3SX
つーか、お前が死ねよと思うけどな
0207名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:16:16.54ID:Z0Clpeo2
ppなんてエンジニアから嫌われてるもんなのに擁護多いなwwそんなに恐れてんのか?ppより学習コスト低いんだぜ?
0208名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:17:19.83ID:gHIpQwSg
>>1
日本語が不自由すぎる
0209名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:18:35.99ID:GVjusvWe
EF
ENDEL;=COUNT#
ふーん人間はおもしろいなこれがツィッターて呼ぶんだろ
0210名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:25:28.37ID:/bvzfYO2
セキュリティ対策を施した新言語
C with Rubber
0213名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:29:39.83ID:tYjeQGKT
CとC++を同列に語ってる時点でバカ決定。
0215名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:35:13.70ID:reFE0eGc
Cは組み込み、あるいはライブラリ
C#はゲームでunity
C++はゲームでUE4
で生き残るんでは。。

rubyとかの方が死ぬでしょ。
ただ個人的にはgo langがポストCになって欲しいが。。
0216名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:51:54.36ID:M+B+pZna
>>212
ARMでいうと、ARM7ぐらいまではアセンブリ言語を覚えるのもそれほど苦ではないし。
従来の8080/8086とか6809とかのノリで覚えられるけど。

今のARMは、Cortex-A/R/M シリーズに分かれていて、特にAシリーズをCPUおよび
周辺の初期化まで自力で機械語で書くのは、ちょっと無理なんじゃないかな。
通常は、ありものを使う。
0217名刺は切らしておりまして
垢版 |
2017/07/17(月) 21:51:54.45ID:+X/f13Al
java、js、Pythonが無難
0219名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:14:33.07ID:GVjusvWe
tab/?#
sが入るんだなあ。
馬鹿みたい
0223名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:35:01.64ID:fHAZls26
VSCodeはいまだにダイレクトタグジャンプの出来ない糞エディタ
0225名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:40:15.97ID:apvMhjzx
swiftって言語として、ライブラリの充実度として有望なの?
0226名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:43:34.02ID:pf88KXl2
Cの歌
0227名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:46:27.40ID:4nLF+Mmc
FORTRANの時代か!
0228名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:51:02.61ID:LkZj2sN2
>>224
cobolって手間暇掛かるだけで基本cよりはるかに簡単だもの。
ぶっちゃけcobolは他の言語+sqlでいつでも書き換え可能だが
cみたくなんでもできちゃう言語はかなりどうしようもない。
c++みたくフツーのプログラマが全く触らない標準ライブラリから派生したツールなんてもっとどうしようもない。
0230名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:53:37.62ID:1e7Ax5fg
>>224
COBOLは20年前から終わった言語扱いだから
0231名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:56:10.55ID:Obr0eJjw
もう C で良いよ
0232名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:56:33.28ID:kCMoCl60
CはC#でいいよ。もう。
0233名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:56:39.96ID:6o/SFlQv
大学のプログラミングの授業で入門者相手にCを教えるのはやめるべき
PythonとかJSから初めて、Cは上級者向けに選択科目で教育すべきだな
0234名刺は切らしておりまして
垢版 |
2017/07/17(月) 22:59:31.90ID:LkZj2sN2
>>233
ぶっちゃけ組み込み以外の世界じゃもう殆ど意味の無いアセンブラコンパイルだのポインタだのの要素弾けばcほど分かりやすくて強力な言語未だにないぽいのがなぁ
0235名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:00:54.90ID:jaiY+qDt
>>1
cは暴れ馬
手綱をとれる者だけが扱えば良い
無理なら簡単な馬を使えば良い
0236名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:01:32.77ID:Obr0eJjw
 
どんなに Python だの Kotlin だの Haskell だの使っても

絶対バカがとんでもないセキュリティーホール作る
0237名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:04:54.72ID:hmSaDS8x
>>1
大丈夫だよ。ウィルス作っているやつも
C/C++を使っているからミスってうまく動かないはずだ。

同じぐらいの出来のシステムで殴り合いするんだから、
最悪でも分け(50:50)だよ。

まだ、世界は半分残っているじゃないかぁ。
0238名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:06:02.55ID:TMEoY/em
D言語はどうした?
0239名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:07:37.50ID:e/WUxVth
C/C++は他の言語とは違う
>>1みたいなことを言っているやつは最初から近づかなくていいし、RustがC/C++の代わりになることは永久にない
0240名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:08:29.42ID:TMEoY/em
プログラミングの初学者にCよりもPythonのほうが簡単だと言いがたい。
0241名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:09:03.32ID:M+B+pZna
>>233

同意。Pythonは習得が簡単な言語というのが売りだしね。
学習用に開発されたハードウェア「ラズベリーパイ」もパイソン使う前提で「パイ」の
文字を付けたわけだし。

Pythonはライブラリも充実しているから、専門ジャンルのプログラミングに
すぐに使えるのもイイところ。
0242名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:13:54.14ID:SFuPvRyG
>>204
はげ同
0243名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:15:19.80ID:e/WUxVth
要件やプログラマスキルにあった言語を使えよ
C/C++が怖いなら使わなければいいだけ
実装がヘボいのを言語のせいにするな
0244名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:16:56.20ID:wZq/Yj/x
Rustの生き残り戦略は悪手だ

能力を認めさせるのであれば、一度馬鹿になって既存の全てのOSを凌駕する性能・機能を持つカーネルを作ることを目的とすべきだ
いまマイクロカーネルを開発している最中と聞いて期待していたし良い印象をもっていたが、地道な努力を忘れて数十年もくり返されている
ポインターが安全でない程度で殺すと脅しても、やってる事がCの真似事では期待はずれだ

少し改良するだけで全てが好転すると考えるのは浅はかであり、次代のAI開発環境になりうる革新技術を作ることに注力すべきだろう

そのためにまずはマイクロカーネルを完成させて、次代のチップの第一選択となるべきであり
実績のあるC勢を殺すと脅しても、危機感を煽って逆にC/C++が進化をして殺されて終るだけだ
0245名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:17:56.19ID:PjZH3lT2
アセンブラに近い処理を高速でやる言語 C/C++
メモリ管理の煩わしさを低減しつつアプリケーションをつくる言語 C#/Java/Swift
すでにある部品を組み合わせることを気楽にやるための言語 Ruby/Python/PHP/Javascript
あたらしい概念の実験場となる言語 関数型言語いろいろ
もう棲み分けできてるし
新しい言語が入り込む余地はあんまりないね
コンパイラ・ツール、ライブラリ、エディタ・統合環境
それらのメンテナンスを長期間やりそうな開発元
書籍、話者人口、その言語が主流になるような主戦場
そういうのがそろわないと言語は普及しないしね
0246名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:19:58.20ID:rhLx7pq4
新しい言語覚えるのマンドクセコさんだよ
Javaをロードモジュール化すれば良いじゃん

別にJVMで動かんでもいいんだよ
リンカするコンパイラ作れば
0247名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:21:33.38ID:M+B+pZna
>>240
Cは、覚えるのは簡単だけど初学者にとって真に理解するのが大変だと思う。
ポインタもそうだし、メモリリークなどもそう。
間違えるとすぐに暴走するし、初学者が自力でデバッグするのが難しい。
例えばでいうと
int add_five(int a)
{
int ret = a;
return ret + 5;
}
こんなコードを書くと、自動変数を返しているので動いたり動かなかったりして
すごーく悩む。挙句の果てにコンパイラのバグとか言い出す。
これがダメな理由をまともに説明しだすと、スタックの説明やらヒープの説明やら
変数がどこに確保されるかの話に直結する。

Pythonは、インタープリターもあるので少しづつ動作を確認することができるし
今時の言語なのでCのようなメモリリークは起きない。
わりとすぐに的確なエラーを返すので学習しやすい。

と、俺は思っている。
0248名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:24:42.84ID:WfVgFQ3E
現役引退したが、Cは30年ぐらい前に習得した。
コボルはもっと昔だ。
0251名刺は切らしておりまして
垢版 |
2017/07/17(月) 23:32:48.07ID:M+B+pZna
うわぁぁ。自動変数のポインタを返す関数にしようとして
間抜けにもちゃんと動作するプログラム書いちゃったよ。てへっ。

さっきの例は、適当に自動変数のポインタを返す関数だと思ってください。
(くゎー恥ずかし)
■ このスレッドは過去ログ倉庫に格納されています

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