7

私が本当にやり直そうとしていることの1つは、C ++プログラミングですが、C ++(基本的なコンソールプログラミングの知識があります)に戻るべきか、CまたはObjectiveCに戻るべきかわかりません。私は、優れたエディターやコンパイラーなどのコーディングの容易さだけでなく、セットアップと実行が最も速いものを長期的に見ています。

それに合わせて、提案された言語で作業するためにどのソフトウェアを提案しますか?

[編集]

私が何をしているのかわからないと、何かを提案するのは難しいと言う人もいます。現時点では特定のプログラムを考えていません。長期的な投資と仕事のために、または他の何かへのジャンプポイントとして、これら3つの言語のいずれかから始めることを検討しています。

4

14 に答える 14

8

主にWindowsで作業している場合は、C++をお勧めします。Microsoftは、新しいC ++/CLIとネイティブC++コンパイラの背後に多くの作業を置いています。新しいTR1とC++0Xの追加により、過去に存在していた多くの問題が解決されています。

于 2008-09-21T01:31:20.610 に答える
8

私は言うだろう-あなたが好きな言語を選んで、しばらくそれを使い続ける。それまでの間、アルゴリズムに焦点を当ててください。これらはプログラムの構成要素です。言語はただの言語です。

1つを習得/習得した場合、特に同じ言語族(C、C ++、Objective C、Java、C#など)にとどまっている場合は、別の言語に切り替えるのは数週間の問題です。

于 2008-09-21T01:32:44.023 に答える
6

私は本当に C と C++ しか話せません。非常に多くのレガシー コードが C および C++ にあるという唯一の理由がある場合は、どちらを学んでも害はありません。

Pure C は、多くの場合、オペレーティング システム、ドライバー開発、または組み込み開発環境の唯一のオプションです。他の用途には、パフォーマンスが非常に重要な場合、つまりマシンの内部にできるだけ「近づけたい」場合が含まれます。C のこれらのアプリケーションがすぐになくなることはないように見えるので、C を知っていることは決して悪いことではありません。C は、多くの *nix アプリケーションの「共通語」でもあります。したがって、多くのオープン ソース プロジェクト (apache/svn/cvs/etc) に貢献したい場合は、C の知識が必要になります。

私の経験では、C++ は、C をコーディングするときのように「マシンに近い」ものにしたいときに使用されますが、OOP を介してより高いレベルの抽象化を含めるオプションが必要です。C++ の主な長所 (および最大の短所) は、そのマルチパラダイムです。C で実行できるほとんどすべての機能に加えて、多くのオブジェクト指向機能が提供されます。たとえば、必要に応じてクラスを作成し、継承/ポリモーフィズムを実行しながら、必要に応じて大量の最適化された C コードを再利用できます。いくつかの関数型プログラミングをミックスに投入する方法さえあります...

C++ は、あまりにも多くの人にとってあまりにも多くのことをしようとしていると批判されることがよくあります。批評家は、すべてをやろうとする試みとして、1つのことはあまり得意ではないと言います. C++ はデスクトップ アプリケーションの「共通語」でしたが、Java と .Net は実際に多くのエンタープライズ ユーザーを奪いました。それでも、パフォーマンスと、C++ でのみ利用可能な追加の便利な、通常は目的に十分な機能を大量に使用することの両方を気にする多くのアプリケーションは、C++ を選択します。

于 2008-09-21T01:54:28.400 に答える
4

私の見解:

表示した3つの選択肢のうち、最初の最善の策はおそらくCです。Cを理解し、その癖を理解し、それに習熟していれば、C++またはObjective-Cを学ぶことはおそらくかなり簡単です。(あなたの最も難しい点は、世界のオブジェクト指向側にあります。)

現時点では、Objective-CはMacで最も頻繁に使用されていますが、Objective-C用のGNUツールが存在し、GNUStepでもサポートされていることを忘れている人もいます。(現在のMac OS Xは、GNUStepが多かれ少なかれクローンである古いNextSTEPに大きく基づいています。)ただし、Objective-Cの特徴は、これら2つの環境以外では広く使用されていないことです。狭い環境。(そして、Obj-Cを使用すると、他の最新のOO言語と同様に、実際の基礎となる構文/字句規則よりもはるかに多くの時間をフレームワーククラスの学習に費やすことができます。)

私は主にC#開発者です。それは私の請求書を支払います、そしてそれはとてもうまくいきます。C#はあなたのリストに含まれていませんでしたが、その理由はわかっていると思います。あなたは金属に近づき、抽象化されていないように見えます。私はそれを理解しています-そしてそれは長期的なキャリアの成長のための正しい選択だと思います。私は自分のコードとボックスの間の膨大な抽象化(最初はJava、次にVB6、次に.NET)から始めました。その結果、今は暇なときに残りの部分に「追いつく」ために一生懸命取り組んでいます。世界-私は現在K&Rの本を読んでいます。確かに、私はそれを金属に近づける専門家の必要はありませんが、私はできる限り機械を理解する個人的な必要性を感じています。

(さらに、皮肉なことに、Objective-Cを介してCocoa開発に戻ることを検討しています。以前はパターを使っていましたが、今はそれを「取得」するのに適していると思います...個人的にはそのCの予知により、Objective-Cへの移行がはるかに簡単になり、コードに壊滅的なメモリ関連のバグが発生する可能性が低くなります!)

結局のところ、Cの既存の知識を持っていることは(明らかに私にとっては必要ではありませんでしたが!)非常に良いことであり、おそらく時間の経過とともに他の言語に移行することになります OS、ドライバー、または組み込み作業を行わない限り、より簡単かつスムーズに実行してください。「それなしではやっていけない」と言っているのではなく、質問の言い方からすると…そのシナリオの正解だと思います。

于 2008-09-21T10:01:24.143 に答える
4

Appleがいつか世界を支配すると思うなら、ObjectiveC。

今のところ、iPhoneCocoaの開発はそれが行われているところだと思います。ですから、個人的にはObj-Cです。

于 2008-09-21T01:29:03.703 に答える
4

実際に何をするのかを最初に尋ねなかった回答は無視してかまいません。その情報がなければ、答えは間違っているか、誤解を招くか、単に無関係です。

于 2008-09-21T01:38:33.057 に答える
2

私はあなたの質問を少し違った見方をしています。最終的には、Objective-C を学ぶことをお勧めします。これにはいくつかの理由があります。

1 つ目は、Obj-C は一般的に C++ などの言語で実装されているため、OO モデルの見方が大きく異なります。Obj-C は Smalltalk に基づいているため、すべての「メソッド呼び出し」は適切なオブジェクトに送信されるメッセージとして実装されます。このため、プログラマーはこれをいくつかの非常に興味深い、非常に強力な手法に拡張することができました。新しい言語を学ぶ理由の 1 つは、物事がどのように機能するかについての視野を広げることです。この点で、Obj-C は C や C++ よりもはるかに多くの可能性を秘めています。

2 つ目は、少なくとも Mac 上の Obj-C の背後には、優れたツールチェーンを備えた非常に強力なフレームワークがあります。C と C++ は、実際にはどのプラットフォームでも同じまとまりのあるフレームワークを持っているわけではありませんが、Microsoft はおそらくそれらの実装に近づいています。Obj-C が優れた言語であることを確信するには、Cocoa を使用するだけで十分でした。ライブラリは非常によく考えられており、日常的にこのライブラリを使用する人がうらやましく思います。

第 3 に、Obj-C は C のスーパーセットであるため、それを学習することで、C の構文に慣れることができます。また、C 標準ライブラリは非常に貧弱であり、すぐに学習できます。C++ は、ブーストが利用可能であるため、わずかに優れていますが、ブーストは Cocoa ほどまとまりがありません。

最終的には、何を優先するかを決める必要があります。何か新しいことを学びたいだけの場合は、Obj-C を使用してください。

于 2008-09-21T14:21:09.603 に答える
1

Intelは、プロセッサに対して実行するためにC++ライブラリに多くの投資を行っています。最近、IntelがPCプロセッサの世界を支配しているように見えるので、それはまともな選択のようです。

于 2008-09-21T02:57:26.690 に答える
1

何をしているかによります。どちらかを選ばなければならないとしたら、C++ だと思います。Obj-C よりもクロスプラットフォームであり、C よりも手間がかかりません。しかし、Mac でプログラミングを行っている場合は、Objective-C について知りたいと思うでしょう。組み込みプログラミングやカーネル ハッキングを行っている場合は、おそらく C を使用したいと思うでしょう。

于 2008-09-21T01:35:33.593 に答える
1

C++ を使用せず、代わりに C または Objective C を使用する理由はありますか? C++ は現在、コミュニティが最も広く、既存のコードベースが最大であり、3 つすべての中で最もよく取り上げられています。それが真実ではないと思われる場合は、明確にしてください (真剣に、私は本当に興味があります)。

さらに、MS が .NET に関してサポートしているのは C++ だけです (もちろん、いつか .NET に移行する予定がある場合)。

于 2008-09-21T01:39:00.887 に答える
1

オブジェクト指向が必要な場合は、C から始めて、知識を C++ に拡張してください。Objective C は、Apple 開発者だけが聞いたことのある Apple Script のようなあいまいなものです (存在する場合)。

C は (C++ と比較して) 習得が非常に簡単で、後で習得する可能性のある他の言語 (特に C++) について十分な基礎知識を持っています。

Loren Segal からの回答に関しては、C と C++ のどちらかを選択する場合、何をしたいかは関係ありません。それは好みの問題です。どちらにもすべてのライブラリがあり (C++ ライブラリは多くの場合、C ライブラリのオブジェクト指向ラッパーにすぎないため)、巨大なコミュニティ、安定した IDE およびコンパイラがあります。

于 2008-09-21T01:40:48.340 に答える
0

Pure Cは、他のどのプログラミング言語に焦点を合わせても、基本としては優れています。特にObjective-Cは、smalltalkのアイデアが上に散りばめられた基本的なCコードです。C ++はCから遠く離れていますが、私の見解では、Cが知っておくと最も便利な言語であることは明らかです。Objective-Cでは、Cにドロップダウンすることがよくあります。Ruby、Python、Erlang、およびその他の無数の言語では、Cモードに入ることがよくあります。また、タッチするすべてのコンピューターで使用できることを常に期待できる言語でもあります。

ですから、すべてのプログラマーは本当にCを知っているべきだというのが私の個人的な見解です。少なくとも少しは。

于 2008-09-21T11:05:39.043 に答える
0

C++ 開発者として 10 年ほど働いた後、最近、Objective-C を学びました (Cocoa をいじり始めたため)。

実際のプロジェクトで Objective-C を使用することはないでしょうが、C++ に加えて Objective-C を学習した経験は非常に有益であることがわかりました。

Objective-C と C++ はどちらも、C の上にオブジェクト指向プログラミングのレイヤーを追加します。しかし、それらはほぼ完全に反対の方法でそれを行います。C++ が 1 つの設計上の決定を下すたびに、objective-C は反対の選択をしたようです。たとえば、C++ は静的型付けを使用しますが、objective-C は動的型付けを使用します。または、(最近の)objective-C は、C++ が使用しないガベージ コレクションを使用します。

これにより、オブジェクト指向プログラミングの概念とそれに関連する設計上の選択をよりよく理解することができました.

于 2008-09-23T23:37:53.040 に答える
-3

Windows オペレーティング システムのみに注目したい場合は、C# (.Net Framework)から直接始めることをお勧めします。

于 2008-09-21T01:33:18.030 に答える