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/
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のために使ってる。配列のインデックス管理とか面倒だからね。
あと、どこでも変数宣言ができるのも地味だけど便利。
0101名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:39:39.99ID:1YGwJ5ho
ハードウェア設計をやってると、C以外の高級言語なんて使う機会は皆無。
ただし、高位合成の関係でC++というかSystemCは使うが。
0102名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:41:38.98ID:ChiWabKl
>>9
今はスゴいHの時代、状態に影響を与えないのがもてはやされてるんだぜ
0103名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:42:04.21ID:twNdiM5g
>>100
それでいいんだよ。C++の思想は「いろいろ用意したから好きなの使え」。
別にオブジェクト指向やる必要もない。その実用主義がC++のいいところ。
0104名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:42:08.18ID:5FDBnJnv
>>79
あと、0か1かランダムブレる(不定)という状態もあるぞ?
まあ、接続してないってのはハードウェア的には不定なんだがな
0105名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:49:52.18ID:+rCrFxud
>>1
Cで十分
Cでセキュリティホールとか、
メモリーリークとか、チャンチャラおかしい
初心者かよwww
お子ちゃまは、オッパイ飲んで寝んねしてな
0106名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:50:25.88ID:gyrg0vHY
もうこいつも阿呆なんだから日本語で書けるようにしろよ
これでプログラミング問題は終わる
0107名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:51:09.27ID:YwIB5GEf
>>105
ポインター使った経験ないど素人だな、お前は(笑)
0108名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:52:13.39ID:lkTuPpuz
Rust最大の問題は生産性の低さだと聞いたが…
メモリ管理厳密にやるには仕方ないのかもしれないけど、
C++より書きにくいってのはなかなかないよな
Objective-Cくらいかw
0109名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:54:26.64ID:bSaHWfWE
C++は怪物言語だけど、一番万能言語に近くもあるね
0110名刺は切らしておりまして
垢版 |
2017/07/17(月) 17:58:04.44ID:p7rUxtFp
>>15
持ってたよ
今は実家かな?
0112名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:00:30.88ID:Y5nCLATQ
 
Cは「システム記述言語」。
アセンブリの置き換え
セキュリティが担保されている階層で使うべき

C++は万能感があるがC以上に慎重さが求められる
力量で記述の差が大きいし、コンパイルにも時間がかかるから
複数人の大規模開発ではなるべく避ける方が結果的に無難
0113名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:02:13.14ID:cdv0bjlU
メモリーリークはスレッド関連でも起きるんだよな。w
0114名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:03:25.95ID:cdv0bjlU
Cはなんでもキャストできるから危ないといわれ、
C++でカプセル化が導入されたが、中途半端であった。

そして言語仕様が複雑化していった。
0115名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:04:51.14ID:cdv0bjlU
まあ、言語はなんでもいいんだけどな。

セキュリティーを考えすぎるあまり、
一般人に手の届かないことになるのは
どうかと思うね。
0116名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:06:22.99ID:cdv0bjlU
C++のバージョンの新しいのは、便利といえば便利だが、
初心者には意味がわかりにくいだろうな。

どういう経緯から導入されたのか、
そういう理解が必要な層なんだよ。
0118名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:10:00.62ID:BIJ46XXK
cでもcppでもいいけど、昔ながらの職人コード書くのはやめてほしい。
cが最強とか言う人って、関数型言語はおろか、オブジェクト指向すら学ぼうとしないし、スマートポインタとかラムダとかを学ぼうとしない。
0119名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:11:07.28ID:Y5nCLATQ
 
いまのC++が目指しているのは
「何でもできる究極のコンパイル言語」

これは「生き残り戦略」

だから全部入りで研究者レベルにも不満を抱かれないようにしている
逆に肥大化し過ぎて素人レベルには理解不能な機能も多い
0120名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:11:25.92ID:YwIB5GEf
昔は、Assembler全盛期だったし(汗)
0121名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:16:35.63ID:T7N1HzGE
ネイティブ開発ならOCamlでやればいい
ついでに.NET開発用のF#の知識もおまけでついてくるし
0122名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:17:51.93ID:w+HTfzvv
そろそろE言語が生まれてくる
0123名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:18:27.87ID:DBv/3Rni
カーネルをほかの言語で書き直すのは現実的じゃないよな
0124名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:19:07.76ID:tQ2HyqBE
昔からあるOSや組み込みソフトやらミドルウェアはCでもいいだろうて
それ以外の言語じゃ役不足なんだから(Goにするか)

PCアプリとか上位アプリといったものをCで頑張っているのは発狂ものだから置き換えるのはいいがな
それだけのこと
0125名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:20:54.68ID:v90eBNx2
イメージだけだけど、
日本に言語から作り直そうなんて思って実行できる
技術者なんているの?
0126名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:21:17.44ID:wZq/Yj/x
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
0127名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:22:28.41ID:cdv0bjlU
TrimメソッドをCで書くとすごく長くなるんだけど、
Trimもしとけ、えいやって感じで使ってるよね。
0129名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:22:59.52ID:vRLE0W2c
新人間よ、永遠なれ
0130名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:23:24.05ID:cdv0bjlU
Koalaはもうすぐ出るかな。
0131名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:24:25.12ID:9AyATvTZ
>>93
なんでSTLがダークサイドなんだ?
俺なんかboostすら使いまくりなのに
組み込みでんなの使えない?知るかよw
0132名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:26:03.17ID:NdgaPRQf
いまじゃBIOSでしか使われていないらしいFORTHとか、
70年代に一世を風靡したGAME言語とか、
ハードべったりコードを書くのに適した言語は色々あるんだけど、
なぜかC。
unixだって文書編纂システムだったはずなのに、
なぜかリアルタイム用途にまで使われてしまって……。

C言語だけじゃなく、それを取り巻いているものすべてが神輿になってる。
誰が担ぎ始めたんだ?
0134名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:27:32.72ID:GVjusvWe
SINE:/{1}
<1
ac.jp/sine[18]


〜#1{38

EN?
0135名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:31:39.35ID:hvwOk2XU
>>54
今はJavaもネイティブコンパイルされて動くんよ。
0137名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:40:48.41ID:354zumss
知り合いの東大生はほとんど自作で標準ライブラリをほとんどincludeしてなかったな。
てか演算子すら定義し直してててえって思ったわ。
0138名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:42:39.38ID:YwIB5GEf
>>137
ROMにあったからじゃないの。
0139名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:45:05.16ID:3+KNZzY0
hypertalkの勢いが止まらないね
0140名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:48:48.60ID:E4kOGXBa
>>132
FORTH ならアセンブラ並みに高速になるけどな。
さすがにあの文法はなぁ。文法と呼べるかすら微妙だしな。
俺は好きなんだが。
0142名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:50:00.30ID:OoDB1Qtn
WEBとJAVAにjavascriptの組み合わせこそ死が必要
ブラウザを進化させてVB6ライクのサバクラ開発に戻そうぜ
0144名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:51:25.48ID:/ReOoG7o
 


初めてのCという本を見て顔を赤くするJKを想像


 
0145名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:54:16.09ID:xnoXG5eN
C = Abstracted Macro Assembler
0147名刺は切らしておりまして
垢版 |
2017/07/17(月) 18:58:24.66ID:c8nkRnam
セキュリティーホールの発生の責任を、コンピュータ言語に負わせるのは無理がある。
言いがかりのレベル。

セキュリティーホールの多数は、実装方法の問題だろ。
0149名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:10:43.61ID:MSXFPMWL
まあ、これはアレだな
その人の環境で決まるよ
C/C++を使う仕事ならそれを覚えりゃいい

組み込み系かweb系かでも違う

俺の同級生は中国系のゲーム会社で働いてるけど
英語なんかほとんど勉強してないよ
中国語を覚えて中国人の上司に気に入られて
今では年収1500万の重要なポジションに就いてる
英語話せる同期は300万クラスのコーダーやってるよ

重要なのは環境な
覚える価値がある言語ならそっちの方がコスパかいい
0151名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:13:14.91ID:1e7Ax5fg
>>108
慣れの問題ではあるんだけどね。
C/C++の感覚でデータ構造とか考えてるとコンパイルすら通らないのでイライラする。
0152名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:14:35.04ID:1e7Ax5fg
>>112
複数人での大規模開発をCでやるのも結構無理がある。
0153名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:18:53.91ID:3W98f3mX
C#はIDEのお陰で便利だが.Netをインストールしてくれる鯖が余りない
0154名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:23:42.51ID:fHAZls26
Kotlin使おう
0155名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:24:59.07ID:Zxgv7+6C
これからはC#でUNITYの時代だろ
うちの上司、UNITYの簡単な動画でプレゼン作ってるよ
30分くらいで作れるような簡単な動画な

店舗のシミュレーションで
客の動きと店員の動きを説明するときに
かなりわかりやすいよ
0156名刺は切らしておりまして
垢版 |
2017/07/17(月) 19:27:20.64ID:PjZH3lT2
C と比べて高機能なこと
セキュリティ対策やらメモリ管理やら並列化やらを拡充して
新しい言語をつくることはできるけど
その拡張部分に不満があって、自分の思い通りに動かしたいってときに
どうするか
結局 C で書こうってなる。
C は結局のところ、制御構造とメモリ管理やるだけの言語
バイナリにとても近いからなんでもできるからね
0157
垢版 |
2017/07/17(月) 19:28:25.60ID:GVjusvWe
0101130111000031101301010103010030103
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
○予知
&#9747;余地
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++に挑む
■ このスレッドは過去ログ倉庫に格納されています

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