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/
0790名刺は切らしておりまして
垢版 |
2017/07/25(火) 18:47:33.82ID:I7yLCD5y
>>786
他人の話に、YESかNOかで乗っかるだけで、マウントした気になってるのがいるなー、って話。
0793名刺は切らしておりまして
垢版 |
2017/07/25(火) 19:16:56.27ID:FIXIsszn
>>789
PGできる人は英語はできます
英語が出来ないPGなんて早晩リストラされます

AIが自動プログラム始めます
この界隈がAIが一番速く導入されます

電脳は米国で華が開きます
英語なんか論文読めるレベルでやっとこさ
この業界でサバイバル可能

きちんと大学の理学部、工学部の物理とか情報、数学科とか卒業してるだろ?
PG構築には哲学、法学も役に立つ
こういう基礎の無い人がここにいてもボロボロにされて殺され末世

ゲームソフトの米国製の「シビライゼーション」ですと
日本語版は英語版よりもホンの少しだけ処理に時間が掛かります
0794名刺は切らしておりまして
垢版 |
2017/07/25(火) 19:18:30.06ID:PITYJ2sB
言語としてのrubyより、カネの流れのカラクリを知りたい。
rubyチップ詐欺とかな。
0796名刺は切らしておりまして
垢版 |
2017/07/25(火) 19:22:22.06ID:I7yLCD5y
>>792
> あいかわらず、よくわかりませんがw

これこそが、他人の話にNOだけ言ってマウントしてる例なんだよ。

自分の知ってることを何か書いてごらん。
選挙じゃないんだから、誰かの話にYES・NOじゃ全く面白くないわけ。
0798名刺は切らしておりまして
垢版 |
2017/07/25(火) 19:36:34.10ID:I7yLCD5y
>>794
>カネの流れのカラクリ
前にphpとZendの話あったろ。
そういう仕組みが無くても、一定の有名人になれば、本も売れるし、
講演するだけでも金が入る。

とても有名な人で1回200万。
その下でも100万。
宣伝のために無料で講演するクラスもいる。

何万円も払って、セミナーで偉い人の話を聞きたい人もいるし、
会社が金払って、聞いてこい、と言う場合もある。
4万×50人で、200万の売り上げ。そこから会場費や宣伝費用(雑誌社やセミナー会社が多いだろうな)を引いたのが手取り。
これをせっせと、毎月欠かさずやる。
どこにでも出かけて行って、ちょこっと話して、名前と顔を売る。
最早駆け出し芸能人みたいな商売。

rubyの場合、一緒に仕事したいなら、まともな本の一冊も書いた人なら、話聞きますよ、からスタート。
これはかなりの初期ね。
大御所になれば、書かなくても、監修の名前で楽していくらかもらえる。

大抵の場合は、大会社向けに特別パッケージ出したりや、優先的にセキュリティアップデートを供給したりね。
それがうまくいく場合もあれば、そうじゃない場合もある。

詐欺事案とかは個別の話なのでね。被害者でもなければ興味ないでしょ。
全般的に持続可能な儲け方なら、上に書いた通り。

もっとうまくいけば、IPOとかM&Aで会社を売る方法だね。

ビジネス板っぽい話になってきたな。
0802名刺は切らしておりまして
垢版 |
2017/07/25(火) 19:40:42.65ID:VNwTUrl+
>>796
なんだかわけわからん面倒くさいこと言ってこらんでくるヤツだな。ここは2ちゃんねるだぞwww

ま、何進数ってのは単なる「表現」の仕方だ。
8進数表記だから3bitが都合がいいとか言うのは本末転倒だわ。
0805773
垢版 |
2017/07/25(火) 20:13:32.26ID:AkUrwuQl
>>778
はあ?
0807名刺は切らしておりまして
垢版 |
2017/07/25(火) 22:30:48.62ID:veiQyxaz
>>804
Non, non
0808名刺は切らしておりまして
垢版 |
2017/07/25(火) 22:36:36.66ID:FIXIsszn
出来の悪い人の将来は、会社には事務手続きに月1回出社
それ以外の平日はクライアントの仕事場で気を使いながら派遣労働
おれの知人が30代までは社内でPGしてましたが
出世競争に負けまして、あっちこっち関東圏を渡り歩いてます
千葉市に住みながら2時間も掛けて栃木県のクライアント先に通うとかね〜
土曜日は24時間寝続け、日曜日は洗濯掃除で終わる
おかげでストレスで激太り・・・生活習慣病の塊となりました
俺はお前はPG向かないから転職しろと口酸っぱく言ったんですけどね〜
0813名刺は切らしておりまして
垢版 |
2017/07/26(水) 05:03:58.10ID:S7f/WP1r
>>782
生産効率かな。特にCは現代的な機能皆無だから。それを補う便利なライブラリが常に使えるわけでもない。
0815名刺は切らしておりまして
垢版 |
2017/07/26(水) 07:46:35.75ID:FBXhmqjZ
>>491
コードは隠蔽性意味なしの割とひどい感じになるよな
全部をリフレクションで処理している様な感じのコードに・・
0816名刺は切らしておりまして
垢版 |
2017/07/26(水) 07:56:41.86ID:FBXhmqjZ
>>778
日本人はシステム的なものを作るのが超ニガテなんだとおもうわ
仕組みは海外の人に作ってもらってこちらは使う側なだけで良いよ
0819名刺は切らしておりまして
垢版 |
2017/07/26(水) 08:25:57.13ID:93ksRqiD
>>774
処理系依存(あるいは未定義動作)というブラックボックスを抱えることをなんとも思わないなら
これ以上議論しても無駄だと思うよ
0821名刺は切らしておりまして
垢版 |
2017/07/26(水) 08:39:41.10ID:93ksRqiD
このスレの本来の話題で言うような問題にも処理系、環境依存で予想外の動きをされる場合の話も含まれる
ヌルポインタアクセスで実メモリにはアクセスしない環境も実際あるしね
出てきたアセンブラのコード読んで納得したわ。一応gccだけどさ
0823名刺は切らしておりまして
垢版 |
2017/07/26(水) 11:01:24.70ID:FqS+WTz2
>>801

> 日本人のLinuxただ乗りのこと?

日本人で、kernel に初今トリビュートした話って、かなり前だよね。
今だと、かなりの数になってるはず。
他にも、日本語版の話から、keernel以外の各種要素から、いろんな人が絡んでいる。
参加したいなら、誰も止めはしないでしょ。

Lunux だから、全員外人が作ってるとか、日本人はタダ乗りとか、あからさますぎるのはやめてくれ。
わざとなのか、無学なのか。
0824名刺は切らしておりまして
垢版 |
2017/07/26(水) 11:03:00.58ID:FqS+WTz2
>>803
日本語のコミュニティで、英語で書くとか、ないでしょ。

英語のコミュニティで、日本語で書くとかもないなー。

英語コンプレックスの奴多いんだな。どんな仕事してるんだろ。
0825名刺は切らしておりまして
垢版 |
2017/07/26(水) 11:05:09.99ID:FqS+WTz2
>>806
> あれ?ID:I7yLCD5yはもう出てこないの?
楽しい?

まあ、楽しいなら何よりだ。
どんなプログラミング言語を使ってるか書いてごらん。2−3個でもいいよ。
0826名刺は切らしておりまして
垢版 |
2017/07/26(水) 11:09:09.45ID:VnhfZx5Q
>>817
nullPointerの実装以外にも、bitfieldの順番とかstructのpaddingとか変数のalignmentとか
処理系依存な箇所はたくさんあるんだけど。
C言語はそういう、便利だったり速かったりするけど処理系依存なコードを書くことを認めてる言語なんだし。
0828名刺は切らしておりまして
垢版 |
2017/07/26(水) 12:13:06.86ID:FqS+WTz2
>>826
そうですねぇ。
ビットのエンディアンが問題になったこともありましたね。
http://www.takeoka.org/~take/cpu/endian/bit-endian.html
メモリー上に何をどう置くのかも、結局はハードウエア依存の問題。最適化した場合は。
DDR4のメモリーは、デュアルチャンネルで、128ビットなのかな。
メモリーバンドの効率的な利用を考えると、バイトでギッチリ詰めるよりは、
メモリーのアライメントに沿って、1回の転送で済むように配置した方がお得、という話。
そのうちに、128ビットが512ビットになるらしいです。もっと増えるかも。
0830名刺は切らしておりまして
垢版 |
2017/07/26(水) 15:55:50.66ID:bNzmL0k4
OSS関係は日本のPGのボランティアでかなり支えられてます
Linux系のDebian、Redhat、Vineとあるが
それぞれ、欧州、米州、日本で宜しく使われている
だからVineで組んだ方が日本用途としては使い勝手が良い
これはあくまでも個人的観相であるが・・・
0831名刺は切らしておりまして
垢版 |
2017/07/26(水) 21:21:14.12ID:huloFtBY
移植性とか考える必要はあるが、何も努力しなくても、そのままコンパイル実行可能を
保証しろというのは、やりすぎじゃないかと思う。
0832名刺は切らしておりまして
垢版 |
2017/07/26(水) 22:07:38.74ID:/OQ1tL+C
>>602
アセンブル    : 組み立てる
アセンブリ    : 中間部品程度の意味
アセンブラ    : 処理系、アセンブリ言語の俗称
アセンブリ言語 : 言語

ふつうIT系では、「アセンブラ」と呼んでおいたほうが、
周囲との摩擦が少ない
0833名刺は切らしておりまして
垢版 |
2017/07/26(水) 22:15:00.37ID:/OQ1tL+C
PC初期のころ、タイトルが「機械語〜」で
中身がアセンブリ言語の初歩とアセンブル方法の解説ってのが多かったな
アーキテクチャ入門書かと思って開いてガッカリ
0834名刺は切らしておりまして
垢版 |
2017/07/26(水) 23:42:43.66ID:yj4/dcqQ
>>812
当時、なんで今頃真空管なんか使ってるんだと悩んだ西側がひねくり出した答えがEMP対策な
で、真相は当時の東側ではまだ真空管のほうが普通に使われて流通してたから
今でも秋葉の部品屋にいくとソ連製の真空管が大量に売られている
0835名刺は切らしておりまして
垢版 |
2017/07/26(水) 23:44:37.47ID:AX9jph5c
>>832
いやアセンブリだろ
普通
アセンブラっていったら通じないことはないまでも誤解を招きかねないし突っ込まれる
0837名刺は切らしておりまして
垢版 |
2017/07/27(木) 01:12:30.15ID:/2Q1vFBK
アセンブロでいいだろもう
0838名刺は切らしておりまして
垢版 |
2017/07/27(木) 01:16:40.49ID:YZOFPFCD
>>834
ジャック品ってオモロイ部材に出会えました
真空管回路は単純明快

1つの素子から、どんな回路設計ができるかな「パズル」心が揺れ動く

いま、これが無い

アナログは〜鈍重だが非常に分かり易い反応します
0839名刺は切らしておりまして
垢版 |
2017/07/27(木) 01:19:52.72ID:YZOFPFCD
C言語は、英語です
PGの国際語

趣味でいいから、きちんと領得して損は無い

通信、制御の「王様」なポジションにある

スクリプト言語はPG用では無い

自由度が高い、ここに意味がある
0840名刺は切らしておりまして
垢版 |
2017/07/27(木) 01:22:42.88ID:YZOFPFCD
送信機の方簡単に構成可能
受信機の方が格段にテクを要します

発話よりも受話能力の方が格段に高級つー事と同値
0841名刺は切らしておりまして
垢版 |
2017/07/27(木) 02:15:45.44ID:YZOFPFCD
自閉症な子って受話能力はピカイチ
発話能力は意図的に絞ってる

聴きはするが送信機能を落してる
0842名刺は切らしておりまして
垢版 |
2017/07/27(木) 02:18:39.88ID:YZOFPFCD
バカどもはこの逆をします

受信能力は非常にプアー

何もわからずギャーギャ―ギャギャー騒がしい
黙るという作法を知りません
ひたすら「ギャーギャ―ギャギャー」五月蠅い
ここに理念も思想も無い「街宣車」
0843名刺は切らしておりまして
垢版 |
2017/07/27(木) 02:22:07.02ID:YZOFPFCD
いまの日本の風景は、五月蠅い送話しかない
ココロもなければ、気持ちもなにもない
ひたすら、五月蠅いだけのクズ
0844名刺は切らしておりまして
垢版 |
2017/07/27(木) 02:54:01.15ID:vzwQMqCK
配列のインデックスチェックを無駄に繰り返すことは避けたい
そうなるとインデックスが変なところに指すことがないように、コードを書く人が注意することになる
それなら別にC/C++でいいよ
そうなりそう
0846名刺は切らしておりまして
垢版 |
2017/07/27(木) 04:04:34.86ID:YZOFPFCD
>>536

「はじめてのC
 さいごまでC」

シーシーオシッコ

やはり、ヴァイタミン「C」が足りないようです
0847名刺は切らしておりまして
垢版 |
2017/07/27(木) 04:17:29.88ID:YZOFPFCD
>>156
御意・・・
その通り

C言語って忍者と云うか蛞蝓というか〜
明確な形が無い
♀とオマンコしてるんだが
オマンコの情況が良く分からん

普通はオマンコは定期的なサイクルで締まる・緩むですけど
C言語♀の万個は、挙動不審
PG屋してるの、この怪しいマンコをどのように調教しようかという
途方もない欲望に捉われます
0854名刺は切らしておりまして
垢版 |
2017/07/27(木) 05:58:05.64ID:mZSqVGhq
今の王様はWeb、スマホのアプリケーションプログラミングだと思うけどなぁ…

この領域ではC/C++はお呼びでない
0855名刺は切らしておりまして
垢版 |
2017/07/27(木) 06:22:45.52ID:BtRV+mjc
ゼニカネを主軸に置くと、C関係は不要
しかし佳きPGを目指すなら「C言語」は必須

どのレベルで言ってるのか、人によって全く違うからね〜
0856名刺は切らしておりまして
垢版 |
2017/07/27(木) 06:25:03.18ID:BtRV+mjc
不易流行

Cが不易

これは即席ゼニに成らないね

流行に流されて終わるPGに成らん方が身のため
0857名刺は切らしておりまして
垢版 |
2017/07/27(木) 06:26:51.82ID:BtRV+mjc
機械語、アセンブラから入ったモンに言わせると「C言語」は高級言語
スタート言語が何処から入るかで言語マップが全く違ってきます
0859名刺は切らしておりまして
垢版 |
2017/07/27(木) 06:58:25.32ID:WEIbyGlW
メモリが数KBや数十KBの頃はアセンブラ全盛
メモリが数百KBつかえるようになり、C言語が普及
メモリが10MB以上使えるようになってオブジェクト指向言語が普及

結局、開発効率と、メモリの無駄遣いをどれだけ許容できるかを天秤にかけてるだけ

Javaやスクリプト言語の普及はそれだけではなく、
CPUの性能向上でCPU資源を無駄遣いできるようになり、
高速実行よりも開発効率を優先することが重要になり普及

開発効率はソフトウェアの価格に直結する
数をたくさん販売できるパッケージ製品にはまだC++が使われることが多いが
特注のシステムには開発効率が悪すぎる
0862名刺は切らしておりまして
垢版 |
2017/07/27(木) 09:28:32.70ID:Z4MSkJG0
スマホともなると、一番上のアプリと言われるユーザの目に触れるものから、
一番下の開発時のデバッグ用CPUすなわちICEあたりに、どれくらいどの言語が関与してるかも見ないとならない
0866名刺は切らしておりまして
垢版 |
2017/07/27(木) 13:49:21.25ID:BtRV+mjc
リソースが限られた世界でPGできれば〜今の無尽にリソースを駆使できる環境は天国
一種の「修行」な環境を各々が設定したらいい

「小は大を凌駕する」

これが電脳な世界観です
0867名刺は切らしておりまして
垢版 |
2017/07/27(木) 13:52:20.76ID:BtRV+mjc
C言語は樹木の「幹」

幹を知らずに「枝」「葉」は茂る事な一切無い

このイメージが理解できない人はPG屋として大成しません
他業界に転身することを勧奨します
0869名刺は切らしておりまして
垢版 |
2017/07/27(木) 13:57:16.32ID:BtRV+mjc
PGってゼニカネから離れたところで趣味的に弄るのは楽しい
しかしカネが絡むと事は厄介なことになる

カネ=不自由

天衣無縫な気分でPG不能
こんな暗澹たる気分では宜しくない作文(PG)しかできません
0870名刺は切らしておりまして
垢版 |
2017/07/27(木) 15:29:12.99ID:dTWpxXK+
   小保方晴子  >>>   前田敦子 菜々緒 長澤まさみ さとう珠緒


(一部抜粋)
 小保方氏への女性批評は、『女が嫌いな女性タレントランキング』にそのまま当てはまる。

 たとえば、「そこまで綺麗ではないのに、何でチヤホヤされるのか?」という意見で
『女が嫌いな女性タレントランキング』首位となった前田敦子。

「セクシーではなくて、媚を売るような感じが嫌」で上位の常連となった菜々緒や長澤まさみ。

そして、「ぶりっ子キャラは、ありえない」と、史上最も嫌われたさとう珠緒。

女性から見ると、小保方氏には、その全ての要素が当てはまるという。
0873名刺は切らしておりまして
垢版 |
2017/07/27(木) 20:10:08.03ID:3cYhKTFn
>>871
> >>868
> もう遅いや
>
> C言語で制御構造って教えて

横からすまんが、制御構造という言い方はある。C言語では言わないかもしれない。
ププグラミングで制御構造と言えば、
手続き型言語における、(順次構造)(選択構造)(反復構造)かな。
それぞれ、処理が現れた順番に実行する形式、 条件によって処理が分岐する形式、処理を繰り返し実行する形式。
かなり古い概念だな。

C言語で言えば、
if文 2方向分岐
elseif文 多方向分岐
switch 多方向分岐
for 指定回数反復  (指定回数じゃない使い方も多いが)
while 前反転型不定回数反復
do while 後判定型不定回数反復
break 反復脱出
continue 反復スキップ
と言える。

要するに、条件分岐とループ。
ただ単に、順番に処理することもできる。
これは、機械語そのものの機能。メモリ管理もそう。
機械語では、ラベルを使って、メモリアドレスを示すが、Cの場合、変数名を使ってメモリアドレスを示す。mallocもある。
条件分岐で goto を使わせるとスパゲッティになるし、危ないことも起こるので、ifやswitch等で goto のとび先を自動で決定している。
とは言え、多重ループからの脱出には goto が便利なので使いもする。使うなら限定的でわかりやすい使い方ね。
これらが、機械語じゃなく、Cを使うメリット。

条件分岐が出来るかどうかは、他のマシン、例えば織機などからの対比。
メモリを使うかどうかは、専用マシン、例えば、そうだなー、テープを読み込んで、その指示に単に従う、というような超古典的なマシンとの対比。

ま、要するに、プログラム内蔵型計算機とはこういうものですよ、という古典的教科書での書き方。
メモリーにプログラムを置き、まあ、データも置き、開始ボタンを押せば、計算できる。ということ。
普通の四則演算の電卓と、関数電卓の差程度の話。
0875名刺は切らしておりまして
垢版 |
2017/07/27(木) 21:56:38.68ID:cQdeiY6T
Cは縦横80に収めろ
それを超えたらクソコード
0877名刺は切らしておりまして
垢版 |
2017/07/28(金) 01:49:41.93ID:md7LgQBg
>>826
そういう曖昧で見落としやすくて間違いの元になりやすいこと自体が問題だと言っているのではないのかな

linuxのGPIOのある特殊なプロトコル向けのドライバでBIG endianのCPUを使って2ワード以上のI/Oを行った場合にだけ起きるバグを見つけたことあるけど
こんなの誰も問題が起きるなんて思っていないんだろうなぁってな
そもそも特殊な条件でないとテストもできないし環境を揃えても基本的なテストだけなら通ってしまう話でね
そういうのが言語処理系の曖昧さで発生したらとっても嫌じゃん
0878名刺は切らしておりまして
垢版 |
2017/07/28(金) 03:11:15.38ID:IKS1RFex
>>859
「開発効率と、メモリの無駄遣いをどれだけ許容できるかを天秤にかけてる」

御意

まことにその通りです

シビアでクリティカルな環境下でPG経験をしますと
現今のプログラム開発環境なんて天国クラスです
0880名刺は切らしておりまして
垢版 |
2017/07/28(金) 03:35:19.66ID:IKS1RFex
>>247
C言語は自由度が高い
自由度が高い=目的地に必ずしも到達しません

枠にはめられてないもん
野獣だな
これは愛人みたいなもんだな
スクリプト系は本妻です

ベル研の開発した通信系の言語

通信の本旨って「自由」にある
拘束を嫌がるのものです

馬で言えば「ジャジャ馬」
人で言えばどうぢようもない「不良児」


これがC言語の特長です
0881名刺は切らしておりまして
垢版 |
2017/07/28(金) 03:37:53.76ID:IKS1RFex
真の市場経済が拘束を嫌がるように「C」もそういうの大嫌い
BDSMは、オラの世界ジャネーの・・・
0882名刺は切らしておりまして
垢版 |
2017/07/28(金) 03:48:27.11ID:IKS1RFex
お城の構造に例えると〜

本丸、二の丸までは「C」とアセンブラ、機械語

三の丸以降・・・そして内堀、外堀はC言語を元に開発された
開発思想の明確な「オブジェクト言語」群

だから〜Cにはセキュリティーは無い
内堀、外堀で守護さえないといけません

大脳本体に痛覚が無いように、
Cにも痛覚というセキュリティーが無い
0884名刺は切らしておりまして
垢版 |
2017/07/28(金) 06:24:27.56ID:fYdVS414
日本のマイコンが滅びたのは
まともなCコンパイラを用意できなかった
のも要因の一つと考えている
■ このスレッドは過去ログ倉庫に格納されています

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