A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
もし、プログラミングの基礎や計算機の仕組みといったレベルの
基礎の基礎を勉強したいなら
Cやc++は最悪です。
個人的には最初は同じc系のpythonを勧めます。
最初に学ぶべきことがBASIC並に少ない一方、
かなり大規模なプログラミングにも使えます。
ゲームには向きません。
DirextXとかを直に操るようなことをしたいなら
ゴールはc++でしょうけど、最初からc++では
玉砕必須でしょう。
No.3
- 回答日時:
C言語とC++とC#の違いは色々細かいところを端折った説明になりますが以下の様な感じです。
■C言語
一番古いです。C系と言われる言語の元祖です。
適切にプログラミングすれば高速で軽量な動作が期待できます。
また、インラインアセンブリなどを駆使すればOSのカーネルやブートローダーを含めて全てのプログラムをC言語だけで作り上げることができます。
■C++
C言語にオブジェクト指向の概念を持ち込んだ言語です。
C言語に引けを取らない高速で軽量な動作が可能です。
■C#
C++のうち危険な機能(ポインタ等)を削除や特定の手順を取らなければ使えなくし、メモリ管理の近代化(ガーベージコレクション等)、セキュリティ周りの近代化(境界チェック等)、コンパイラ最適化機能の近代化、JITコンパイル、ライブラリの近代化等、様々な近代化を行った言語です。
C言語やC++に比べて最高パフォーマンスではやや劣りますが、大抵のプログラマにとってC#のパフォーマンスを超える事は簡単ではありません。
C言語や「Cでプログラミングするには人生は短すぎる」という標語が掲げられる様に、C言語やC++の様な全てはプログラマ次第という言語を使いこなし適切にプログラミングする事は、一流のアスリートになるのに匹敵するほど難しい事です。
またC#の様に近代化された言語はたくさんありますが、C#をお勧めする理由は以下の様な所にあります。
・C#は配布方法としてJITコンパイル、AOTコンパイルを選ぶことができます
→多くの近代化された言語はJITコンパイルの前提であることが多いです。JITコンパイルは適切に機能すればよいパフォーマンスが得れますが、アプリケーションを実行するコンピュータ(PC、スマフォ、ゲーム機等)の性能次第では起動しないという事態を引き起こす場合があります。
・対応OS、対応ハードが多い
→Windows、macOS、Android、iOS、Xobx、PS4、Nintendo Switch、Linux、FreeBSD、NetBSD、OpenBSD等の開発が行え殆どのソースコードを異なるOS、ハード間で共有できます。
・ゲーム、VR開発が容易
→Unityの様な強力なゲームエンジンがスクリプト言語としてC#を採用しています
・言語としてのパフォーマンスが良い
→比較対象としてよく上がるJavaと比べて言語仕様レベルでパフォーマンスが良くなるように意識した設計がなされています。
・開発環境が強力
→最強の開発環境とされるVisual Studioが標準で使用できます。また2番目とされるEclipseも使用できます。特にVisual Studioが標準で使用できる近代的な言語はC#、Visual Basic.NETの2つしかありません。
一方でC#にも厄介な点がいくつかあります。
・標準のGUI部品が扱いにくい
→C#のというより.NETの標準GUI部品は痒い所に手が届きにくいです。それ、処理を始める前に知らせてくれたら対処のしようがあるのに処理が終わって失敗してからしか知らせてくれない事がよくあります。
Windows Formsは表示が強烈に遅いです。すぐ真っ白になったり表示が乱れたりします。
WPFで表示が遅い問題は解決しましたが、ゲーム並みに本気の画像の拡大縮小、アンチエイリアス、ClearTypeが施された状態で出力されます。表示はとてもきれいです…が…(最近のコンピュータならそれほど問題にはなりませんが)完璧すぎてちと重いです。
・標準ライブラリがちょっとおせっかい
→安定性を考えれば後始末は完璧の方が良いのだけど、前提条件があって後回しにして一括処理しても良い事まできれいに処理されて結果が変えてくる事や、エラーで返しても良いものをエスパーの如く使い手の気持ちを読み取っていい様に処理されると言う事が時々あります。
No.2
- 回答日時:
初心者が勉強がてら覚えるってことなら、C#は良い選択肢だと思います。
普通にいろいろ作れるし変に玄人向けじゃないし。C++は、初心者が最初に選ぶ言語としてはハードルが高過ぎるのでオススメしません。それにメモリ管理をプログラマ自身が行わなければならない言語(C,C++がその代表)は厄介なメモリリークを起こす危険性があり、そもそも新しい言語ではメモリ管理が自動化される傾向にあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPad iPad Proにマイク付きイヤホンを繋いでも端末マイクになってしまう理由 2 2023/07/16 02:28
- 心理学 オンラインゲームで知り合った女性が謎すぎます。 初めて知り合った時は、日本と他の国のハーフで日本語が 3 2022/08/23 01:06
- その他(社会・学校・職場) 平均的日本人の頭は悪くはないはずですし、学校で習う内容が幼稚というわけでもないのに、世間には幼稚な大 7 2023/04/05 20:51
- 日本語 「~人」と「~名」の使い分け 2 2022/06/02 11:59
- メルカリ メルカリを初めて利用してゲームを買ったんですが、新品購入、動作確認済みと記載してあったので購入したの 4 2023/04/26 11:18
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 大学受験 大学の志望理由です。訂正するとこはありますか 私が貴校を志望する理由は将来、英語に携わる仕事に就きた 6 2023/08/08 15:14
- 教えて!goo 「中国語はどうして、ひとつの国の中でこんなに 6 2022/05/21 19:14
- 日本語 折口信夫「死者の書」の中の「ひとり語り・独り語り」という言葉の意味についてお聞きしたい 1 2023/05/17 00:22
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
不動産検索サイトを作る場合ど...
-
UNITY Float型の接尾辞fって
-
VBScriptで引数を省略したい場合
-
C言語とhtmlの違いを どな...
-
COBOLで文字タイプを数字...
-
C for Linuxでの設定ファイル読...
-
プログラミング言語「C#」の難...
-
C++ ってなんて読む?
-
VBってもしかして難しいんですか?
-
TANDEM言語ってあるんですか?
-
C++における継続行
-
一般的な市販PCゲーム(美少...
-
Pythonって何を意識した言語な...
-
COBOLでのNOT = の AND条件
-
Transitional/ENとは
-
vbaとc言語の関連性について
-
家計簿ソフトの作成
-
パスカルケースの由来。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
質問失礼します。 プログラム言...
-
最新のプログラム言語を学ぶに...
-
COBOLでのNOT = の AND条件
-
C言語って古いですか?
-
rpa化する言語としてら何があり...
-
UNITY Float型の接尾辞fって
-
TO_CHARで小数点以下がある場合...
-
プログラミング言語の制作方法...
-
COBOLで文字タイプを数字...
-
プログラムに書かれる"%"記号の...
-
C言語とhtmlの違いを どな...
-
Int('1234') で、strをかんたん...
-
C++ ってなんて読む?
-
Excel VBAで文字化けする (英語...
-
C言語 解答について。
-
VBSでDim、Private、Publicの違い
-
Excelの開発言語ってなんですか?
-
C# でソフト開発をした事のある...
-
C#とC++のざっくりとした違いを...
おすすめ情報