15


9

デスクトッププログラミング言語、できればC、C、C#を学びたいです。 私はPHP / HTML / CSSプログラマーで、デスクトップアプリケーションに興味があります。 私はかなり強力なものが必要です、そして私はウィンドウズGUIのものでアプリケーションを作成することができたいです。

Stack Overflowコミュニティは何を推奨しますか? これらの言語に飛び込む前に知っておくべき知識はありますか?

26 Answer


73


編集:

  • Webプログラマー*は* Windowsアプリケーション*を作成したいのですが、Cをお勧めします。

あなたの人々の何が問題になっていますか?

/編集

明らかにC#です。

C#を使いやすくなり、WinFormsまたはWPFを使用してWindowsアプリケーションを構築できます。 .NET. If you know your way around PHP, you should already be familiar 構文、オブジェクト指向の概念、例外処理など

Windows GUIを作成することだけが目的であれば、Cで生活を複雑にしないでください。 それらは優れた教育経験を提供し、より高度なもの(例えば他のツールキットを使用したクロスプラットフォーム開発)には役立ちますが、学習曲線が急になり生産性が低下します。

また、あなたが* Web開発者*であるならば、C#はあなたが(現実的には)Webに使用できる3つのオプションのうちの*唯一の*言語です。 ASP.NETは悪いフレームワークではないので調査する価値があるかもしれません。


17


いくつかのチュートリアルプログラムを書くレベルまで、まずCをちょっと見てください。 Cは小さく、よく定義されており、明確な言語定義です(Kernighan ポインタと再帰に頭を悩ますのは難しいことですが、言語自体は十分に小さいので、言語を完全に知ることは可能です。 Cを書くことの喜びの1つは、ほとんど知られていないfeature xやlibrary function yの使い方を見るために継続的にドキュメンテーションを参照する必要なしにただコーディングできるレベルに達するのはそれほど難しくないことです。 Cを基礎とすることを学ぶことを考えなさい。

しかし実際に便利なアプリケーションを書くためには、CかC#を使いたいでしょう。 それはあなたが書きたいことによります。 C#は、ガベージコレクションと一般的な使いやすさのために、ほとんどのビジネス指向のケースでおそらくスコアを付けられますが、Cは高性能、低レベル、またはゲームドメインでスコアを付けます。 比較的簡単に利用できる膨大な量のCライブラリコードもあります(そして簡単に調整できる純粋なCコードもあります)。 あなたの目的が特定の問題を念頭に置いて何かを書くことであるならば、そのようなものが利用可能であることは、物事を成し遂げることにおいてCが持つより高いオーバーヘッドを相殺する可能性が最も高いでしょう。

これを例として、私はSourceforgeの 'image’でフィルターされた検索をし、以下のプロジェクト数を返しました

C#:139 C:569

そして意図的にもっとビジネス指向のCがあってもまだ高い得点 - '財政'

C#:12 C:32

数学的または技術的なものであれば、スコアはC#に対して大きく重み付けされています - 「フラクタル」

C#:4 C:44 C:24 < - (C明示的に除外)

もちろんこれはかなり粗雑な分析ですが、例えば私の目的がデスクトップフラクタルジェネレータプログラムを書くことだったとしたら、CでUIを処理することに伴う余分な労力は多くの人によって簡単に相殺されるのでCで利用可能なサンプルコード。 OTOHサンプルコードと多くのUIを処理することに大きな利点がないビジネスアプリケーションを作成している場合は、C#を使用します。

事後の編集:少なくとも最初にCに慣れ親しんだもう1つの理由は、MacおよびiPhoneの主な開発環境としてObjective-Cもあるからです。 Objective-Cは非常に薄いラッパーを持ち、実際にはCの最初の従兄弟しかいないCなので、あなたがコードをMacに移植したい、または直接Mac上で開発したいという立場にあると想像した場合あなたが少なくともC(あるいはC#)がCの上にどのように構築されているかについていくらかの感覚を持っているならば、それが混乱をあまり起こさないと思います。


16


「かなり強力なものが必要です。WindowsGUIを使用してアプリを作成できるようにしたいです。」

リッチウィンドウのGUIに関しては、 "xaml"の変種、WPF(フルデスクトップ)とSilverlight(フラッシュのような)を見たくなるでしょう - これはあなたに最新のツールなどとたくさんのスタイリング力を与えるでしょう。

このためには、C#が主な選択肢になります。 Managed Cはオプションですが、もっと手間がかかります。


7


私の提案はCを学ぶことです。 C#はいいのですが、移植性のあるコードを書くことを妨げるでしょう。 あなたがCを学ぶなら、あなたは多くの選択肢を得ました。 Windowsでは、WindowsフォームアプリケーションまたはWPFと.NET Frameworkを使用できます。 MFCは別の良い選択です。 QTは複数のプラットフォームで動作するもう一つの選択です。 そのため、1つの言語を学ぶことで、複数のプラットフォーム用のコードを書くことができ、さまざまなGUIの利点が得られます。 Cを学んだ後、C#を学ぶのは簡単です。

ではごきげんよう


7


C#と他の人は実際にはまったく異なるものを解決しますが、あなたのWebの経歴とそれが急速な開発アプローチであることを考えれば、私はC#を使って_明確に_してください


6


C#はこれらの最高レベルの言語です。つまり、必要なものを達成するのが最も簡単な言語です。

WindowsのGUIはCでもCでも確実に作ることができますが、それはもっと難しいです。


6


間違いなく最初に基本に行きなさい:Cを学びなさい

それからあなたの本当の目的に行きなさい。 あなたがマルチプラットフォームのC#に行く可能性がほしいならば、C#は捨てられます。 あなたはCとQt、あるいはwxWindowsを使いたいと思うでしょう。


3


私の考えでは、メモリ、ファイルアクセスなどの側面についての基本的な知識を得るために、Cの勉強を始めるべきです。 Cは低レベルの言語です。つまり、オペレーティングシステムへのアクセス方法をより細かく制御できますが、Windowsアプリケーションを作成するには多くのコード行をコーディングする必要があります。 このため、Cでいくつかの作業を行った後は、Visual Studio 2008でC#から始める必要があります。 .Net Frameworkには、あなたの生活を楽にする多数のクラスが付属しています。

それが役に立てば幸い。 敬具。 ジョセマ


3


C / Cは両方とも低レベルプログラミングを可能にします。 それはすべてが可能であることを意味しますが、単純なものでさえ難しいことがありえます。 もしあなたが何か強力なものが欲しいと言うときそれがあなたが意味するものであれば、おそらくCから始めるべきです。 C言語でのGUIプログラミングは面倒ですが、少なくとも適切なGUIライブラリ(gtkmmまたはqt付きのgtk)を提供します。

その一方で、あなたがアプリケーションを素早く開発したいのであれば(そしてそれがあなたが強力であることを意味するものであれば)、C#はおそらく進むべき道です。


2


私はC#をお勧めします。 それは他の2つのように強力ではありませんが、あなたのニーズのために私はC#が最小の痛みを伴うと信じています。 CとCは低レベルの言語なので、GUIなどには多くの作業が必要になると思います。