■ このスレッドは過去ログ倉庫に格納されています
C#とC++を無理矢理戦わせたい人専用スレ
- 1 :デフォルトの名無しさん:2019/11/27(水) 20:03:08.03 ID:yc0HWZ1w.net
- C#とC++
敢えて適材適所に挑戦し、どちらが優れているかを議論します
ファイッ
- 2 :デフォルトの名無しさん:2019/11/27(水) 22:06:26.88 ID:pn0fGp7Q.net
- 君、アフィリエイトブログ転載用スレを立てすぎだよ
- 3 :デフォルトの名無しさん:2019/11/27(水) 22:10:51.21 ID:yc0HWZ1w.net
- >>2
WPFスレから出てって欲しかっただけなんだが
- 4 :デフォルトの名無しさん:2019/11/27(水) 22:45:39.59 ID:iIIfyZvm.net
- C# のもとは Delphi。
はい、論破。
- 5 :デフォルトの名無しさん:2019/11/27(水) 23:25:47.03 ID:r9xTTxSI.net
- C#は、VB.NETと対になって説明されることが多い。
ということは、表面的な違いだけで C# は本質的には VB ということ
なのではなかろうか。
- 6 :デフォルトの名無しさん:2019/11/27(水) 23:58:09 ID:1i4qLeiK.net
- 逆だろ。VB.NETが従来のVisual Basicとは違って本質的にはC#ということ。
- 7 :デフォルトの名無しさん:2019/11/28(木) 00:24:31.99 ID:DQy/K16U.net
- 本質的にはどっちも.NETだろ
- 8 :デフォルトの名無しさん:2019/11/28(木) 00:54:52.57 ID:TWMCNQEW.net
- >>6
このような場合、折衷案として、C# と VB.NET が本質的には同一、という
ことになります。
- 9 :デフォルトの名無しさん:2019/11/28(木) 00:56:24.63 ID:TWMCNQEW.net
- C# == VB.NET
と
VB.NET == C#
は、数学的には同値です。
- 10 :デフォルトの名無しさん:2019/11/28(木) 12:51:34.22 ID:Lk4Ws1Uf.net
- 適材適所というか、c++の便利機能がc#で削ぎ落とされていてしんどい。
constな引数やメソッド
ある程度型安全なダックタイピングのジェネリック
目指してる方向性が違うようだから仕方ないと割り切ってるけど。
- 11 :デフォルトの名無しさん:2019/11/28(木) 22:36:53.14 ID:j8QwNrt/.net
- C++は本格言語。
C#はスクリプト言語。
比べるほうがおかしい。
- 12 :デフォルトの名無しさん:2019/11/28(木) 22:42:43.69 ID:HBU31YUq.net
- >>11
C#もJavaもある種のRAD開発言語的な要素を含んでいると考えて
いいんでしょうね。
- 13 :デフォルトの名無しさん:2019/11/28(木) 22:50:41.55 ID:rW4uqpGK.net
- >>11
な…なんだって…
- 14 :デフォルトの名無しさん:2019/11/28(木) 23:06:26.23 ID:HBU31YUq.net
- それぞれの登場時期には、既に C++言語が、gccによってどんなCPUに対しても
native binaryを出力できるようになっていたのに、どうしてJavaやC#がどうして
native binaryを出さずに、仮想コードを出す仕様にしたかについては誰でも
時々疑問に思うと思うんですが、自分なりに出した答えは:
1. gccは有ったが、それをバックエンドに使おうとすると、gcc のソースの一部
をJavaやC#のコンパイラの中に組み込むか、中間コードを C 言語の形式で出力して
gccをバックエンドとして動かす必要があった。これはライセンス、gcc環境のサイズの
大きさ、言語処理系会社としてのプライドなどの観点から問題があった。
2. 実は、そもそも gcc が対応していないアーキテクチャも世の中にはあって、
その環境でも Java や C# を動かしたい場合には、駄目であった。
また、新しいCPUが出てきたときには、gccの方を修正しなくてはならなく
なるが、gccのソースを解読するのは難しいので難しい。
3. C言語が対応しているCPUであっても、そもそも、プログラミングのフレームワーク的な
構造が、Windowsとは全く異なっているプラットフォームが時々ありえる。
例えば時代が違うかもしれないが、Objective-Cの環境でWindows風のプログラミングを
するのは難しい。そもそも、GUIプログラムは特殊言語で書くようになっているプラット
フォームや、Waitや効率的なメッセージループを書けないプラットフォームが存在しており、
そのような環境に同じソースコードで書いたプログラムを移植するには、インタプリタ的にも
動作しうる仮想コードで無いと困ることがある。
- 15 :デフォルトの名無しさん:2019/11/28(木) 23:18:49.00 ID:HBU31YUq.net
- >>14
4. 例えば、サーバーなどでは、インタプリタ言語しか許可されて無い事がある。
この場合、そのインタプリタ言語で仮想マシンを作ってしまえば、JavaやC#
の仮想コードを動かすことが出来る。gccのようにバイナリに直す仕様に
していたならば、そもそもこのような環境には対応できなかったことになる。
- 16 :デフォルトの名無しさん:2019/11/28(木) 23:32:24.38 ID:HBU31YUq.net
- >>15
5. 当時のWin3.1系だと、アプリのバグはOS全体を停止させてしまうことが有った。
このような環境だと native のコードにしてしまうよりも、Javaのように
仮想コードをインタプリタで解釈実行できる機会を与えた方が安全であった。
Win3.1系に限らず、native コードに致命的バグが有った場合に、OSにまで
被害を及ぼさずに安定して停止させるのは、OS開発者に精密な設計を要求する。
それに比べて、仮想コードを解釈実行するなら、致命的バグが有ったら安全に
エラーを出力することは、とても容易に出来る。
サーバーマシンなどの信頼性を要求する環境では、OSにバグがあった場合でも
絶対にOSをダウンさせたくない。そのような目的では仮想コードを解釈実行する
方式は有効である。
- 17 :デフォルトの名無しさん:2019/11/29(金) 00:03:04.59 ID:LpyfBhuP.net
- >>14
「3」に関して。
Javaの登場時期と外れているが、例えば、iOSアプリは原則、Swiftで書かなければ
ならない。Swift は、native binaryに変換はされるが、OSのAPIの関数呼び出し規則の
仕様が非公開。だから、Swift以外の言語を独自にnative binaryに直した場合、
OSのAPIを呼び出す方法には、Appleの公式なドキュメントが無いので、
独自にリバースエンジニアリングをして対応する必要がある。
native binaryにいきなり直さずに、フロントエンドの処理系がJavaをパースして、
Swift言語に直すのも一つの方法である。
しかし、仮想コードに直す方式なら、このような場合でも対応できる。
仮想マシンをSwiftで書いておけば良いのだから。
- 18 :デフォルトの名無しさん:2019/11/29(金) 00:10:50.59 ID:LpyfBhuP.net
- >>17
補足すると、iOSのアプリをC/C++言語で書く方法は、Apple公式では
公開されていないらしい。手短に書けば、C言語からOSのAPIを呼び出す
方法が公式ドキュメントでは分からない。そもそも、OSのAPIがCの関数ではなく、
Swiftの関数として定義されてしまっているのだから。
Windowsを使っていると、C言語やアセンブラからOSのAPIであるところの
Win32 APIを呼び出す方法が厳密にドキュメント化されているのが当たり前になっているが、
少なくとも iOSではそうはなっていないようだ。
当たり前すぎて気づかないが、DOSやWindowsは、native binary重視の環境だったの
かもしれない。実際、Unix系OSは、そもそも binary 互換性は重視しておらず、
同じOSであってもバージョンが変われば再コンパイルして対応するような、
ソースレベル互換の文化である。Windowsはバイナリ互換の文化である。
- 19 :デフォルトの名無しさん:2019/11/29(金) 08:20:28 ID:grds9Ww1.net
- >>11
なんでスクリプトだと思ってるの?
Unityで誤解してる?
ちなみに、C#からC#スクリプトを呼び出せます。
- 20 :デフォルトの名無しさん:2019/12/07(土) 05:37:08.95 ID:GAACkWN6.net
- C++はいずれRustに置き換えられるのでは。
- 21 :デフォルトの名無しさん:2021/05/07(金) 14:25:19.49 ID:3nGJ1ama.net
- c++はソースコードにパスワード埋め込んでも解析出来ない?
c#は完全に逆コンパイルできるからソースコードにリテラルでパスワード埋め込んでも隠せないけど
汎用性がーとかは別として
- 22 :デフォルトの名無しさん:2021/05/07(金) 14:50:20.78 ID:m+LBfwtV.net
- >>21
ん?C++詳しくないんだけどリテラル文字列を勝手に暗号化してくれるの?
- 23 :デフォルトの名無しさん:2021/05/07(金) 15:16:04.45 ID:FlZ9PpDj.net
- >>21
そんなわけないだろう
- 24 :デフォルトの名無しさん:2021/05/07(金) 16:45:14.90 ID:J4cnHdu2.net
- 内部で色々演算駆使してその結果がパスワードになるとかでも無い限り結局リテラルがそのままバイナリに現れるから同じ
探しやすさで言えばC#のほうが探しやすいだろうけど、探す気になってる人&探す技術が多少なりともある人から見れば大差は無いかと思う
- 25 :デフォルトの名無しさん:2021/05/07(金) 21:11:38.60 ID:AC05vLQY.net
- ネイティブC と C#(.NET)じゃ速度が違いすぎだろ。
今でもコントロールが描かれる順番が分かるくらい。
- 26 :デフォルトの名無しさん:2021/05/10(月) 14:48:33.28 ID:fxa1gwwl.net
- アプリを使うユーザー側から見れば
C#アプリ「まず.NETのなになにバージョンが必要です インストールされていますか?」
C++アプリ「(大抵)そのまま使えます」
この差でC++の圧勝だな
C++でも追加ライブラリが必要なこともあるだろとかいう奴がいるが
C#はその追加ライブラリのほかにさらに.NET環境というバカでかいものが必要とされてる
という大きすぎるハンデを抱えている
- 27 :デフォルトの名無しさん:2021/05/10(月) 15:05:41.77 ID:lCZGOQhN.net
- >>26
判ります
ほんそれ
++
- 28 :デフォルトの名無しさん:2021/05/10(月) 16:20:56.43 ID:Q4owJtoM.net
- >>26
WindowsUpdateで.NETの最新版自動でインストールされるじゃん
- 29 :デフォルトの名無しさん:2021/05/10(月) 17:16:19.43 ID:ro06Xyvc.net
- >>25
.NET製のアプリは遅いものは本当に極端に遅い。
マザーボードのドライバなどのインストーラーが極端に遅くて困った。
昔は.NET製ではなかったのでこんなこと無かったのに。
35年前に戻ったみたいな遅さ。
- 30 :デフォルトの名無しさん:2021/05/10(月) 19:40:18.44 ID:xlO+yHfD.net
- >>26
まるでC++にはランタイムライブラリが無いような言い分だな
.NET Framework は Windowsにデフォでインストールされるって知らないの?
- 31 :デフォルトの名無しさん:2021/05/11(火) 12:43:48.22 ID:BXZYJdJz.net
- 遅くないC#アプリもあることは有るようだけど、MS純正のVisual Studio、
Expression Web 4や、PIXELAという会社のStationTVというテレビキャプチャ
ボードのテレビ視聴/番組予約/録画管理ソフト、AsusやGigaByte製のM/B用の
ドライバインストーラはどれも非常に遅かった。
ExpressionWeb 4なんかは、その先祖はもともとC++で書かれたFrontPageだったが
そっちは快適に使えていたのにC#製になったとたん、激遅になってしまって使ってない。
FrontPageは有料だったのになぜか売られなくなってしまい、ExpressionWeb4は無料化した。
無料でも遅すぎて使いたくない。
- 32 :デフォルトの名無しさん:2021/05/12(水) 09:26:33.63 ID:HCx7UYF5.net
- FrontPageなんて使ってたやついたのか
- 33 :デフォルトの名無しさん:2021/06/08(火) 17:01:48.11 ID:bmgoTOXu.net
- >>26
VC++でアプリ作ったらなんかランタイム必要とかなかったっけ?
なんか前自作アプリ別のマシンで動かそうとして動かなかった記憶があるのだけれど
- 34 :デフォルトの名無しさん:2021/06/08(火) 21:55:26.99 ID:Oz+Fue89.net
- VC++ランタイムはピンズドのバージョンがないと叱られる
サイドバイサイドができるのとバーター
- 35 :デフォルトの名無しさん:2021/06/09(水) 03:26:14.98 ID:44YoTMBl.net
- スタティックにリンクすれば不要だし、ダイナミックにリンクすれば必要。選択式。
スタティックが多いかね。
70-250kぐらいファイル大きくなるだけだから。
.NETだとスタティックにリンクすると仕組み上10-30Mになっちまうから...
- 36 :デフォルトの名無しさん:2021/07/02(金) 08:01:56.39 ID:CB17+0MO.net
- c ++はスマートポインタ頑なに使わないやつとかそもそも知らないやつとか多い。
そして落ちる
- 37 :デフォルトの名無しさん:2021/11/14(日) 23:10:05.57 ID:6FVLDefc.net
- +の差が戦力の差でないことを教えてやる!!
- 38 :◆RvDvKTORns:2022/04/28(木) 09:56:05.09 ID:Hm2fax8Zm
- C#は初心者向けで、C++の方が色々と出来るイメージがあるけどな
- 39 :デフォルトの名無しさん:2023/04/02(日) 15:01:06.16 ID:rs3fOyhm.net
- 価値を見出せない
- 40 :デフォルトの名無しさん:2023/04/19(水) 16:49:39.71 ID:p4EOTQHlA
- ルフィらはスポ‐ツ少年だったそうだし.├‐キョ─五輪て゛は、改めてスポ━ツか゛麻薬賭博暴力贈収賄税金泥棒バカひき逃け゛差別主義猥褻
セク八ラJΚレヰプ地球破壞の人類史上最悪の犯罪者生産システ厶と証明されたわけた゛か゛、いまだに葛飾区やら犯罪者量産のための施設に
莫大な税金投入してたりと,この何ひとつ価値生産できない地球に涌いた害蟲と゛もに乗っ取られた世界最惡の腐敗国家は救いようがないな
てめえがやる健康目的のスポ‐ツならともかく、観戰(笑)た゛の五輪(笑)た゛の税金使えた゛のほさ゛いてる奴は犯罪者だと決めつけるのが正解
アホしかいない公明党に対して、自民は私利私欲腐敗主義た゛がアホしかいないわけではないにもかかわらず曰本に原爆落とした世界最惡の
ならず者覇権主義國家がウクライナと同様に、台湾や日本を踏み台にしてクソシナ攻撃をたくらんて゛いることに氣つ゛けないわけがないわな
台湾だけでは狭すき゛て当事國にならざるを得んか゛日本を戦場にすれば長期にクソシナを間接攻撃して弱体化させることが可能なわけだしな
よって組織化する曰本の治安悪化や安倍晋Ξの殺害を考えれは゛.クソシナみたいな市民との衝突を予期しての保身軍拡と理解するのが正解
創価学會員は,何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ一か゛囗をきけて容認するとか本氣て゛思ってるとしたら侮辱にもほと゛か゛あるぞ!
hΤΤΡs://i,imgur.cоm/hnli1ga.jpeg
- 41 :デフォルトの名無しさん:2023/05/31(水) 03:52:03.43 ID:CrCtg1riI
- 私利私欲のためにウヰルスに温室効果カ゛スに騷音にとまき散らして気候変動させて土砂崩れに洪水.暴風.大雪.猛暑.干ばつ.森林火災に
と災害連發させて人殺しまくってる墜落JALだの機長殴って駆け付けた警官まて゛殴打して現行犯逮捕の洒気帯ひ゛運転ΑΝАた゛のテ□リスト
が運んた゛ワクチンと称する毒物打って無事でいられるとオモタとかと゛んなダメポな頭してんだよ.打った直後に死亡と゛ころか,ここ数年,
接種率に比例して心不全も爆増してるし、世界中に武器売りまくって戦乱引き起こして白々しく介入して住民を殺害しまくって儲けてきた
基幹産業が殺人の曰本に原爆落とした世界最惡のならず者国家か゛白々しくワクチンできますたが打ったところて゛数か月て゛期限切れなので
また買ってねとかほさ゛いてるアホなもの打って無事て゛いられるとか脳みそプリン体にも程か゛あるだろ
次々とクソシナに技術敗北して半導体までヤハ゛くなって、また戦爭やると同時多發報復くらいそうた゛し、マッチポンプワクチンて゛大儲けする
こと考えついて研究所のある武漢に密かにウイ儿ス運ひ゛込んで白々しくばら撤き続けてるってのか゛事の真相だとそろそろ気つ゛けますたか?
創価学會員は、何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まで出てる世界最悪の殺人腐敗組織公明党を
池田センセ‐か゛囗をきけて容認するとか本気て゛思ってるとしたら侮辱にもほと゛があるぞ!
htтрs://i,imgur、cоm/hnli1ga.jpeg
総レス数 41
16 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★