アカウント名:
パスワード:
CやC++は素晴らしいという人も居るけど、セキュリティ的には可能な限り避けるべき代物っていうのは当たり前の話だね。気を付けたって規模がデカくなればどっかで絶対やらかすのは避けられないと思うのよね。というか大企業だって著名オープンソースだってやらかしてるのに、お前はきちんとできるというのかと。組み込みとかなら仕方ないけど。
C#ならunsafe、Javaならsun.misc.Unsafe、その他色々壊せるけどね。ランタイムや参照してるネイティブのライブラリや実行環境やその他諸々で脆弱性があればどうにもならないというか、それ以前にメモリ安全以外の危険は色々あるけどね。
CやC++が素晴らしいのは、だいたいなんでも書けることであって、書こうと思えば無茶苦茶も書ける。これから起こすプロジェクトでは、制約のきつい言語のほうが安全だろうし、CやC++はその知見を取り込まなければならない。制約をも記述できてこそ、C++だと自分は思う。
アセンブラほど「理屈の上では」ってわけではないが、でも現実的な意味でCやC++で何でも書けるかと言われれば疑問符が付く。何しろ大規模開発は精神と難易度的に厳しい。スマホアプリもコンソールツールもウェブアプリもWindows向けアプリもって意味じゃC#だし、スマホやデスクトップ向けアプリでもうちょい良い感じならDartだし、30億のデバイスで走ると言えばJavaだし、その辺も割と何でもと言えるレベルだと思うけどな。「覚えておいて損はしない」ってのは否定しないけど最新規格や細部まで追うべきかは微妙。
> スマホアプリもコンソールツールもウェブアプリもWindows向けアプリもって意味じゃC#だし
今どきはこういうのも、ガチなやつじゃなければ JavaScript でできちゃうからずいぶんハードル下がりましたね。
WebGLあるし、ガチなやつでもマルチプラットフォームなものはJavaScriptが増えてるのでは?
https://jp.quora.com/kumikomi-shisutemu-deha-doushite-C-ga-C-ni-shu-tt... [quora.com]
組み込み系なら損はないどころかリアルタイム性でも現役いつかは進歩するだろうけど当面先だろうね
あとはCOBOLみたいに特殊な環境で脆弱性に対処する荒業もw
C言語内にインラインアセンブラや、アセンブラコードをマージして使うことで、その欠点を補ってるのが、OSのカーネルや、デバイスドライバだね
どうしてもアセンブラじゃないと出来ないことや、パフォーマンスのためにアセンブラが必要なところのみ、アセンブラを使ってる
Rustが台頭して、C++は完全にその役目を終えたのでは?比較すると、C++選ぶメリットがないよね?
選ぶことはなくても、既存の資産ってのがあるから(強化は必要)。極端な話、一晩でひっくり返したようにChromeをRustに移行したりはしないと思うので。たとえコンバータを書いたとしても。
COBOLみたいな立ち位置に落ち着きそうだな。
Rust信者はとっととライブラリ移植作業に戻れ
ひとつのアプリを開発するたびにそれ専用のインタプリタを開発していたこともあったんだよ。アプリの大部分はデータとして記述して、その解釈を行う小さいプログラムがあるような作り。そんな作りの場合でも C/C++ よりも何らかのスクリプト言語の方がいいね。
危険だが使いこなせば速い。中二心をくすぐるね。ピーキー過ぎてお前にゃ無理だよとか言ってみたい。
そのメモリ安全で防げるもの以外の危険が相対的に少ない、という話なのだが。
当たり前だけど「セキュリティ的には可能な限り避けるべき代物」なんかこの物言いには違和感。
C/C++は原理的にメモリ管理のセキュアコーディングは開発者に任されているから、開発者はその要件が求められるプログラムではセキュアなコーディングが求められるというだけだろう。
どんな開発環境だって開発者に任されている領域は開発者の責務において実装しなければならない。
ここは高木先生 [archive.org]を召喚しないと。
> > 悪しき習慣です。CやC++がプログラミングに携わる人のすべての必携の言語> > として蔓延りかけてしまったことは、世界の情報産業の生産性をいったいど> > れだけ損失させたか計り知れません。>> すべての必携の言語にCがなり得たのは、それだけ優れた言語だったからでしょう。いいえ。一部の人が使うのには優れていますが万人が使うべきものではありません。C以外が普及しなかったのは、様々な背景があるのであって、Cが優れていたからではありません。> 生産性を損失させたのは、ポインタの使用方法を誤った、Cに熟練していない> プログラマの存在だと思います。熟練できないプログラマが溢れかえるような言語は優れていないのです。(マニアには他人との差別化ができてご満悦でしょうが。)
> > 悪しき習慣です。CやC++がプログラミングに携わる人のすべての必携の言語> > として蔓延りかけてしまったことは、世界の情報産業の生産性をいったいど> > れだけ損失させたか計り知れません。>> すべての必携の言語にCがなり得たのは、それだけ優れた言語だったからでしょう。
いいえ。一部の人が使うのには優れていますが万人が使うべきものではありません。C以外が普及しなかったのは、様々な背景があるのであって、Cが優れていたからではありません。
> 生産性を損失させたのは、ポインタの使用方法を誤った、Cに熟練していない> プログラマの存在だと思います。
熟練できないプログラマが溢れかえるような言語は優れていないのです。(マニアには他人との差別化ができてご満悦でしょうが。)
そりゃひろみちゅ先生がまだ若くてちょっと言いすぎちゃったんですよ。
この頃はキレッキレですなあ。
> のようなポインタ演算を使う人を、まるでかわいそうなプログラマであるかのような> 言い方かわいそうですね。> > 不幸だったのは、1990年代前半あたりで、誰もがC言語を学ばざるを得なくな> > ってしまったことでしょう。>> Cを学ぶことが、まるで不幸であることのような言い方などは不幸ですね。> Cプログラマに不快感を抱かせるのに必要十分であると思います。ちゃんとわかって使い分けているノンマニアなCプログラマは、不快に思わないでし
> のようなポインタ演算を使う人を、まるでかわいそうなプログラマであるかのような> 言い方
かわいそうですね。
> > 不幸だったのは、1990年代前半あたりで、誰もがC言語を学ばざるを得なくな> > ってしまったことでしょう。>> Cを学ぶことが、まるで不幸であることのような言い方などは
不幸ですね。
> Cプログラマに不快感を抱かせるのに必要十分であると思います。
ちゃんとわかって使い分けているノンマニアなCプログラマは、不快に思わないでし
そもそも今時はメモリ安全なんか、開発者に任せる必要性がないだろ。無駄に責任を負わせるのは止めようと言う話。
おかしなことを書いたらコンパイルエラーになるように、そういうクラスライブラリが処理系に備わっててもいいんだぞ。Rustはそれを達成してるし、C++の今後には、そういうのを期待してる。静的解析もだいぶできるようになったけど、もっと、できることを自ら(pragmaいっちょでとかで)絞り込めるように。
勿論そういう事を言ってる。そのクラスライブラリを使えばいいのだし、使わないのなら開発者が実装した部分の挙動は開発者が保証しなければならない。
期待するより、既にあるなら乗り換えたほうが良くない?
C++はけっこうやりこんでるから、俺はC++の改修の仕事を取りに行く。そういう価値観なんだよ。
脆弱性を積み重ねるお仕事、ご苦労さまです。
いやだなあ。だから、C++に進化してもらうんじゃないか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
当たり前だね (スコア:1)
CやC++は素晴らしいという人も居るけど、セキュリティ的には可能な限り避けるべき代物っていうのは当たり前の話だね。
気を付けたって規模がデカくなればどっかで絶対やらかすのは避けられないと思うのよね。
というか大企業だって著名オープンソースだってやらかしてるのに、お前はきちんとできるというのかと。
組み込みとかなら仕方ないけど。
C#ならunsafe、Javaならsun.misc.Unsafe、その他色々壊せるけどね。
ランタイムや参照してるネイティブのライブラリや実行環境やその他諸々で脆弱性があればどうにもならないというか、それ以前にメモリ安全以外の危険は色々あるけどね。
Re: (スコア:0)
CやC++が素晴らしいのは、だいたいなんでも書けることであって、書こうと思えば無茶苦茶も書ける。
これから起こすプロジェクトでは、制約のきつい言語のほうが安全だろうし、CやC++はその知見を取り込まなければならない。
制約をも記述できてこそ、C++だと自分は思う。
Re: (スコア:0)
アセンブラほど「理屈の上では」ってわけではないが、でも現実的な意味でCやC++で何でも書けるかと言われれば疑問符が付く。
何しろ大規模開発は精神と難易度的に厳しい。
スマホアプリもコンソールツールもウェブアプリもWindows向けアプリもって意味じゃC#だし、スマホやデスクトップ向けアプリでもうちょい良い感じならDartだし、30億のデバイスで走ると言えばJavaだし、その辺も割と何でもと言えるレベルだと思うけどな。
「覚えておいて損はしない」ってのは否定しないけど最新規格や細部まで追うべきかは微妙。
Re: (スコア:1)
> スマホアプリもコンソールツールもウェブアプリもWindows向けアプリもって意味じゃC#だし
今どきはこういうのも、ガチなやつじゃなければ JavaScript でできちゃうからずいぶんハードル下がりましたね。
Re: (スコア:0)
WebGLあるし、ガチなやつでもマルチプラットフォームなものはJavaScriptが増えてるのでは?
Re: (スコア:0)
https://jp.quora.com/kumikomi-shisutemu-deha-doushite-C-ga-C-ni-shu-tt... [quora.com]
組み込み系なら損はないどころかリアルタイム性でも現役
いつかは進歩するだろうけど当面先だろうね
あとはCOBOLみたいに特殊な環境で脆弱性に対処する荒業もw
Re: (スコア:0)
C言語内にインラインアセンブラや、アセンブラコードをマージして使うことで、
その欠点を補ってるのが、OSのカーネルや、デバイスドライバだね
どうしてもアセンブラじゃないと出来ないことや、パフォーマンスのためにアセンブラが必要なところのみ、
アセンブラを使ってる
Re: (スコア:0)
Rustが台頭して、C++は完全にその役目を終えたのでは?
比較すると、C++選ぶメリットがないよね?
Re: (スコア:0)
選ぶことはなくても、既存の資産ってのがあるから(強化は必要)。
極端な話、一晩でひっくり返したようにChromeをRustに移行したりはしないと思うので。
たとえコンバータを書いたとしても。
Re: (スコア:1)
COBOLみたいな立ち位置に落ち着きそうだな。
Re: (スコア:0)
Rust信者はとっととライブラリ移植作業に戻れ
Re: (スコア:0)
ひとつのアプリを開発するたびにそれ専用のインタプリタを開発していたこともあったんだよ。アプリの大部分はデータとして記述して、その解釈を行う小さいプログラムがあるような作り。そんな作りの場合でも C/C++ よりも何らかのスクリプト言語の方がいいね。
Re: (スコア:0)
危険だが使いこなせば速い。中二心をくすぐるね。
ピーキー過ぎてお前にゃ無理だよとか言ってみたい。
Re: (スコア:0)
そのメモリ安全で防げるもの以外の危険が相対的に少ない、という話なのだが。
Re: (スコア:0)
当たり前だけど「セキュリティ的には可能な限り避けるべき代物」なんかこの物言いには違和感。
C/C++は原理的にメモリ管理のセキュアコーディングは開発者に任されているから、
開発者はその要件が求められるプログラムではセキュアなコーディングが求められるというだけだろう。
どんな開発環境だって開発者に任されている領域は開発者の責務において実装しなければならない。
Re:当たり前だね (スコア:3, 興味深い)
ここは高木先生 [archive.org]を召喚しないと。
Re: (スコア:0)
そりゃひろみちゅ先生がまだ若くてちょっと言いすぎちゃったんですよ。
Re: (スコア:0)
この頃はキレッキレですなあ。
Re: (スコア:0)
そもそも今時はメモリ安全なんか、開発者に任せる必要性がないだろ。
無駄に責任を負わせるのは止めようと言う話。
Re: (スコア:0)
おかしなことを書いたらコンパイルエラーになるように、そういうクラスライブラリが処理系に備わっててもいいんだぞ。
Rustはそれを達成してるし、C++の今後には、そういうのを期待してる。
静的解析もだいぶできるようになったけど、もっと、できることを自ら(pragmaいっちょでとかで)絞り込めるように。
Re: (スコア:0)
勿論そういう事を言ってる。
そのクラスライブラリを使えばいいのだし、使わないのなら開発者が実装した部分の挙動は開発者が保証しなければならない。
Re: (スコア:0)
期待するより、既にあるなら乗り換えたほうが良くない?
Re: (スコア:0)
C++はけっこうやりこんでるから、俺はC++の改修の仕事を取りに行く。そういう価値観なんだよ。
Re: (スコア:0)
脆弱性を積み重ねるお仕事、ご苦労さまです。
Re: (スコア:0)
いやだなあ。だから、C++に進化してもらうんじゃないか。