X



【IT】C/C++に死を [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
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/
0952名刺は切らしておりまして
垢版 |
2017/08/08(火) 01:33:19.20ID:glxV3vqS
>>947
なるほど。一理あるな。
しかし、他の言語でC、C++のゴミ機能が
出来るものがあるのか?
C,C++の機能をへちって、ゴミ機能だけに
するべきかな?
0953名刺は切らしておりまして
垢版 |
2017/08/08(火) 01:36:44.85ID:glxV3vqS
>>927
そうかもしれない。

アセンブラは素晴らしいが、量がかけない。
デバッグも面倒だ。何しろ、出来ないことが
ないので、めちゃくちゃ出来る。

何年もたってバージョンアップするときは
泣くね。

出来たらC言語で書きたいよ。
スピードが要求されないなら。
0954名刺は切らしておりまして
垢版 |
2017/08/08(火) 01:45:48.93ID:glxV3vqS
>>926

C++はかなり難しいね。
しかし、それも静的解決が出来る世界での
話でだと思う。
 たかがスコープ三層の静的世界でこの
難しさに悩む人間の知性の限界を疑う。

動的な言語はまた、別の意味で難しい。
本当に開放された変数の動的解決が
出来る言語が登場するとどうなるのであろうか?

新しい言語世界の誕生に追随するプログラマと
デザイナが躍進する世界がくるのか?

オブジェクト指向の次のパラダイムかもしれない。
0956名刺は切らしておりまして
垢版 |
2017/08/08(火) 02:08:55.88ID:NBjki400
でも Java でも C# でも
参照型をきちんと理解するのには
ポインタの考え方が必要な気もする
0958名刺は切らしておりまして
垢版 |
2017/08/08(火) 04:00:15.56ID:zR9zXOcZ
Rust Evangelism Strike Force
0960名刺は切らしておりまして
垢版 |
2017/08/08(火) 04:31:58.24ID:Xb9xHSIp
Cは、本妻と云うよりは俺が最も心を通じ許しあえる愛人
アセンブラが愛人の連れ子かな〜
0962名刺は切らしておりまして
垢版 |
2017/08/08(火) 05:44:09.02ID:fYk9bIsr
>>944
いったい何に反論しているんだ?
C言語がアセンブリ言語の代わりになるとか
アセンブリ言語を駆逐しようとか
そんなことは一言も書いてないのだが。
0964名刺は切らしておりまして
垢版 |
2017/08/08(火) 06:30:08.28ID:66oKoyOQ
俺とCと云う愛人は直接の血縁関係に無い
他人だけど本妻よりも深く愛し逢っている
その連れ子ですから愛人未満の範囲内で大切にしましょう
0965名刺は切らしておりまして
垢版 |
2017/08/08(火) 06:35:48.97ID:66oKoyOQ
だれか、パースペクティブ(見取り図・概観図)を描いてくれんか?


C+
C++
C#
アセンブラ

このそれぞれの言語が最も得意とする領域と不得手な領域は何か?

制御系とか、通信系とか・・・いろいろあるでしょ?
全部、オールマイティにPGなんかできるわけないがな
だから、その業務に最適化された人工言語が発明されます
0966名刺は切らしておりまして
垢版 |
2017/08/08(火) 06:50:35.52ID:zR9zXOcZ
Rust Evangelism Strike ForceはC/C++の代替とされるD言語、golangへの
ネガティブキャンペーンを揶揄している
類似言語のHaskell/OCamlの開発者がRustのマーケティングのコアを担っているため
Haskell/OCamlのマーケティング文化が受け継がれた
0968名刺は切らしておりまして
垢版 |
2017/08/08(火) 11:33:03.92ID:qXTkJCR2
本当の戦場はOSとアプリの中間だと思うけどなぁ

アプリの最適化とか、ドライバ せいぜいカーネルモジュール

まずはそこで、C/C++をどれだけ削れるかだ
0969名刺は切らしておりまして
垢版 |
2017/08/08(火) 12:11:09.90ID:VYewExkY
ポインタが、バグとセキュリティ・ホールの多くの原因を作っているから、
ポインタの使用が前提の、抽象度が低い言語の使用を止めようという、昔ながらの話題。
例えば、早い処理系を作るのにポインタは欠かせないし、
安価なハードウェアで動作する組み込み系のアプリも無くならないから、
C/C++は無くならないよ。
同じ話題を何度も蒸し返すなよ。ちょっとは学習したら良いのに。
0971名刺は切らしておりまして
垢版 |
2017/08/08(火) 12:24:23.29ID:2i9ywFlW
C/C++並かそれ以上の高速化を実現できるプログラミング言語の候補って何でしょう?
0973名刺は切らしておりまして
垢版 |
2017/08/08(火) 12:37:20.53ID:qXTkJCR2
>>971
O'camlは不要なら計算自体を辞める・省略するレベルの最適化をやっているからC/C++より早くなる。
というか、いくつかベンチマークでは実際C/C++を上回っている
0974名刺は切らしておりまして
垢版 |
2017/08/08(火) 15:08:34.04ID:zR9zXOcZ
Rust攻撃部隊(Strikeforce)はHaskell攻撃部隊出身と揶揄されている

https://news.ycombinator.com/item?id=13759706

hkmurakami 160 days ago [-]

This is amazing.
"The Rust Evangelism Strikeforce" is particularly brilliant.

clock_tower 160 days ago [-]

I'm still breathing a sigh of relief that it's no longer the Haskell Evangelism Strikeforce. People can preach Rust all they like, but Haskell scared me.

pvg 160 days ago [-]

They aren't that dissimilar. Both promote ambitious languages in which lofty ideals somewhat get in the way of convenience, practicality and available brain capacity.
Both consist, for the most part, of disturbingly enthusiastic but generally friendly disciples. They want you to believe, to suffer meaningfully, to achieve one-ness with
the borrow checker, to be (or Maybe) The Monad.

They're not, say, supercilious lispers who have guarded the bucket of unvarnished truth since 1958 or rubyists
promising a path to happiness in this life (and also something about monkeys).
0975名刺は切らしておりまして
垢版 |
2017/08/08(火) 15:17:33.66ID:2a+H9JjX
cはまだしもc++は人間が扱える言語じゃないよ
自分で作ったものならまだしも、人の作ったものを解析するのが困難
1回作ったら、その後修正しないってソフトなら問題ないけど、何度も修正するようなソフトだと問題なんじゃないか
0976名刺は切らしておりまして
垢版 |
2017/08/08(火) 15:17:48.12ID:zR9zXOcZ
ucaetano 160 days ago [-]

Does it use convolutional recursive space invariant artificial deep neural networks?

sidlls 160 days ago [-]

Yes, implemented in Rust.

hodgesrm 160 days ago [-]

Except that we don't really have time to implement it because we're too busy posting to the resulting Rust vs. Golang foodfight.

yumaikas 160 days ago [-]

And this Gopher would rather build stuff than argue about Rust.
0978名刺は切らしておりまして
垢版 |
2017/08/08(火) 16:21:31.69ID:zR9zXOcZ
hodgesrm 160 days ago [-]

"Rust対Golangの早食い競争結果の投稿に忙しすぎて、我らは(Rustで◯◯を)実装する時間が本当にないのだ。"

tyingq 160 days ago [-]

"Rust伝道ストライクフォースは出撃するも、抵抗にあったのであった。"

K0SM0S 160 days ago [-]

実用的な価値や興味深い結果や有用な方法論を持たない履歴書作成エクササイズ。
Hackernewsは悪い設計のプログラムをできるだけ早く実行するソフトウェアの
メリットについて議論し、Rust伝道師攻撃部隊は、人々が"高速な"コードに
ついて話しをするので、(Hackernewsに)関与しないという戦術的決定を下したのであった。
0979名刺は切らしておりまして
垢版 |
2017/08/08(火) 17:03:36.03ID:bMgyRPuK
>>782
リフレクションが無い
0981名刺は切らしておりまして
垢版 |
2017/08/09(水) 09:49:47.49ID:urEyhZj5
>>973
ocamlはマルチコア対応がなぁ
0982名刺は切らしておりまして
垢版 |
2017/08/09(水) 09:53:27.31ID:OSOLhOzi
アセンブリの一つ上の水準の言語がC言語で間にあってる……と同時にそれ以外は不要らしい
C言語以上に増やしたらその水準の記述がさらに面倒になる
要するに面倒事は一つでいいしその言語だけに押し込めときゃいい
0983名刺は切らしておりまして
垢版 |
2017/08/09(水) 11:22:04.47ID:dNzXqHqz
C言語はアセンブリ言語の代わりというだけやからな。
何でもできる以上、安全に組むのに失敗したら、どんな問題でも起こるのは当然。
言わば自動航法の無い飛行機操縦みたいなものだ。

「何でもできる」ことがそもそも不要なら、他の開発環境の方がよろしい。
0984名刺は切らしておりまして
垢版 |
2017/08/09(水) 13:37:09.29ID:RaOC/s9X
「型」は制約を加えることにより生産性を上げるための概念

あまり自由過ぎるというのもよくないんだよ
0986名刺は切らしておりまして
垢版 |
2017/08/09(水) 15:58:48.16ID:RaOC/s9X
>>985
それも1970年代に関数型言語がREPLでやっていたことを
最近のIDEがある環境でも同じことができるように再整備しているだけだと思うけどな
0987名刺は切らしておりまして
垢版 |
2017/08/09(水) 16:12:07.61ID:/xsCOjRV
変数に型を設定して受け入れるデータに制限を与える主義と

型はデータに付随する属性であって
入れ物たる変数には型を設定せず
全てのデータを受け入れるべきって主義と

二派あるからな
後者は動的に処理しないと実現出来ないからトロくなりがちだけど
0988名刺は切らしておりまして
垢版 |
2017/08/09(水) 16:16:04.82ID:lF9yrJ5I
>>986
今の開発環境の元祖はXerox PARCのsmalltalk-80やInterLisp-Dだよ
70年代末も掛かるけど本格的には80年代入ってから

70年代最先端のMacLisp環境は15年くらい前のEmacsと大差ない
UI上の支援はあるが言語知識に基づいた支援は少ない
MacLispは今はエミュがあるから動かしてみれば分かる
0989名刺は切らしておりまして
垢版 |
2017/08/09(水) 16:21:57.54ID:lF9yrJ5I
>>987
学生が大学の演習で作る簡易的な処理系ならそう言えるかもしれないけど
今はJITやるから速度面の差はほとんどない
90年代初めのSelfの研究で広く知られるようになった
初期のJavascript JITの論文ほとんど全てに
この論文が参考文献に上がってる
0992名刺は切らしておりまして
垢版 |
2017/08/09(水) 20:38:49.29ID:1JaK+0SY
アメリカの大学では就職率を上げるために学部・専攻と関係のある産業界でシェアのある言語を勉強するよう奨励するんだが
日本の大学は自由だな

http://www.pllab.riec.tohoku.ac.jp/slides/jssst2013Taikai.pdf

本当のプログラマは ML を使うようになる - か?
(1992 年 ソフトウエア科学会大会チュートリアル)

産業界の一般的な反応?
.... <関心がない>
今必要なものは新奇な言語ではなく,サービスやビッグデータ基盤
0994名刺は切らしておりまして
垢版 |
2017/08/09(水) 21:16:39.75ID:3beiiVsI
C言語は汎用言語なゼネラリスト
一般的にはそれぞれの業務処理に向いた専用言語なスペシャリスト

何でもできるって事は、どうしても脇が甘くなるから脆弱性は同時に寄り添う
0995名刺は切らしておりまして
垢版 |
2017/08/09(水) 21:23:25.11ID:m+r9Kixh
俺に死ねというか、大塩佳織の件ふくめてなんとかしろとしか言ってない
0996名刺は切らしておりまして
垢版 |
2017/08/09(水) 21:24:01.18ID:fNmyXLme
そのまえにJavaが死に絶えそうなんだよなぁ、、
0998名刺は切らしておりまして
垢版 |
2017/08/09(水) 21:27:39.19ID:aRh86MkR
>>996
Javaは今のCOBOLの地位に収まりそうだな。
20年後、60歳過ぎのジジイがJavaで書いた業務プログラムを細々と保守している姿が目に浮かぶ。
1000名刺は切らしておりまして
垢版 |
2017/08/09(水) 21:34:07.97ID:FCrDpW15
>>990
MLの特徴はREPLじゃなくて
Hindley–Milner型システムに基づいた強い型付けだよな
REPLじゃなくてそっちが>>985に貢献してると言うなら分かる
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 23日 5時間 53分 37秒
レス数が1000を超えています。これ以上書き込みはできません。

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