最近C#に少し触れました。
ウィンドウアプリケーションも、簡単にできて、必要な部分だけに
集中でき、生産性の高さに驚きました。
知り合い曰く、「C#は強力だから早くこちらにおいでよ」とのことです。
しかし、オブジェクト指向に馴染めず、なんだかおまじないを唱えて(書き込んで)
いるような違和感がありました。
(一時期、C++の勉強もしていたのですが、いざ書こうとなると手が進まなくなってしまい
挫折しました。)
CからC#に乗り換えるべきでしょうか?
C#にはない良い点はCにあるのでしょうか?
Cはもう時代遅れなのでしょうか
Re:Cはもう時代遅れなのでしょうか
時代遅れというか、言語を学ぶための基礎学習だと思えばいいのではないでしょうか?
乗り換えるという認識ではなく、新しく使える言語を増やして可能性を広げると思ったらいいと思います。
別にCが使えなくなるわけではないのですから
C#は簡単にGUIが作れますし、XNAがあるので本格的なゲーム製作も可能です。
短所を言えばCほど参考文献が無いことや、プラットフォームがwindowsのみに限られる事などがあるでしょうが、
非常に魅力的な言語だと思いますよ。
そういえばC#でiphoneアプリを作ったという記事をどこかで見たような…。
乗り換えるという認識ではなく、新しく使える言語を増やして可能性を広げると思ったらいいと思います。
別にCが使えなくなるわけではないのですから
C#は簡単にGUIが作れますし、XNAがあるので本格的なゲーム製作も可能です。
短所を言えばCほど参考文献が無いことや、プラットフォームがwindowsのみに限られる事などがあるでしょうが、
非常に魅力的な言語だと思いますよ。
そういえばC#でiphoneアプリを作ったという記事をどこかで見たような…。
Re:Cはもう時代遅れなのでしょうか
どのようなものを開発するかにもよるのではないかと思います。
どちらの言語にも一長一短で良いところも悪いところもありますし…
どちらかの言語でしかやれない事ってのは、少ないと思いますよ。
個人的な感想ですが、Cはパーツからオーダーメイドで全てを自分好みに作り上げていく感じで、C#(.Net)は出来合いのパーツを組み合わせたり、カスタマイズしていきながら理想に近付けていく感じだと思っています。
どちらの言語にも一長一短で良いところも悪いところもありますし…
どちらかの言語でしかやれない事ってのは、少ないと思いますよ。
個人的な感想ですが、Cはパーツからオーダーメイドで全てを自分好みに作り上げていく感じで、C#(.Net)は出来合いのパーツを組み合わせたり、カスタマイズしていきながら理想に近付けていく感じだと思っています。
Re:Cはもう時代遅れなのでしょうか
>>管理人さん
最近(でもないか…)はこんなのもあるようですよ。
http://ja.wikipedia.org/wiki/Mono_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)
最近(でもないか…)はこんなのもあるようですよ。
http://ja.wikipedia.org/wiki/Mono_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)
Re:Cはもう時代遅れなのでしょうか
C は昔も今も Windows や Linux 等の OS を動かしている言語です。
時代遅れというわけではありませんよ。
どの言語も得手・不得手があります。
C# には C にはない得意とする分野がありますし、
C でしか出来ない分野もあります。
そもそも C# で作ったアプリが動かしているのは C のコードです(C++ や アセンブラも含む)。
> Dixq さん
> そういえばC#でiphoneアプリを作ったという記事をどこかで見たような…。
以前 iphone アプリの開発環境を一つに(Mac OS X のXccodeのみに)制限するという出来事がありましたが、
先月下旬あたりに Visual Studio で公式に開発できるのではとの噂が立ったりもしましたね。
(真相は知りませんが)
時代遅れというわけではありませんよ。
どの言語も得手・不得手があります。
C# には C にはない得意とする分野がありますし、
C でしか出来ない分野もあります。
そもそも C# で作ったアプリが動かしているのは C のコードです(C++ や アセンブラも含む)。
> Dixq さん
> そういえばC#でiphoneアプリを作ったという記事をどこかで見たような…。
以前 iphone アプリの開発環境を一つに(Mac OS X のXccodeのみに)制限するという出来事がありましたが、
先月下旬あたりに Visual Studio で公式に開発できるのではとの噂が立ったりもしましたね。
(真相は知りませんが)
Re:Cはもう時代遅れなのでしょうか
ご回答ありがとうございます。
確かにCはC++やjava(?),C#にも影響を与えているので使える言語を増やしやすい
気がします。インターフェースだけC#でつくって面倒そうな処理はCのdllを使うなど
出来そうです…(初心者なのでCのdllがないと困るような処理を書いたことはないのですが…)
C#も、配布時には.NET FrameWork を要求してくるので一長一短のような気もします。
とはいえ、使い分けができればベストなので、ひとつに凝り固まらず
少しづつ勉強していこうとおもいます。
確かにCはC++やjava(?),C#にも影響を与えているので使える言語を増やしやすい
気がします。インターフェースだけC#でつくって面倒そうな処理はCのdllを使うなど
出来そうです…(初心者なのでCのdllがないと困るような処理を書いたことはないのですが…)
C#も、配布時には.NET FrameWork を要求してくるので一長一短のような気もします。
とはいえ、使い分けができればベストなので、ひとつに凝り固まらず
少しづつ勉強していこうとおもいます。
Re:Cはもう時代遅れなのでしょうか
私もDixq様と同様の考えです。
CとC#は求められる場面が違います。
生産性の高さで言うと間違いなく、C#に軍配があがると思います。
ただ、メモリ管理が詳細に出来たり、Nativeなものを操作したりとC言語にしか出来ないこともあります。
それと、若干Dixq様の説明に、補足さしていただきます。
iPhoneアプリの開発はNovelが出しているMono Touchを使えば、C#でも可能かと思います。
http://monotouch.net/
ただ、Appleは、主にAdobe Flashの締め出しを行うために、開発規約に「Objective-C以外の言語で記述されたコードを変換して実行ファイルを作ることを禁止する」を加えたため、Novelは問題ないと言っているが、いつ、利用できなくなるかわからない状態です。
また、Novelを中心としたオープンソースコミュニティが、Linux、MacOSなどのWindowsプラットフォーム以外の環境で.Net Frameworkが動作するように、CLRと互換性のあるMono VMを提供しています。
このMono VMを利用すると、Javaのように、様々なプラットフォーム上で、.Netのアプリを動作させることが出来ます。
CとC#は求められる場面が違います。
生産性の高さで言うと間違いなく、C#に軍配があがると思います。
ただ、メモリ管理が詳細に出来たり、Nativeなものを操作したりとC言語にしか出来ないこともあります。
それと、若干Dixq様の説明に、補足さしていただきます。
iPhoneアプリの開発はNovelが出しているMono Touchを使えば、C#でも可能かと思います。
http://monotouch.net/
ただ、Appleは、主にAdobe Flashの締め出しを行うために、開発規約に「Objective-C以外の言語で記述されたコードを変換して実行ファイルを作ることを禁止する」を加えたため、Novelは問題ないと言っているが、いつ、利用できなくなるかわからない状態です。
また、Novelを中心としたオープンソースコミュニティが、Linux、MacOSなどのWindowsプラットフォーム以外の環境で.Net Frameworkが動作するように、CLRと互換性のあるMono VMを提供しています。
このMono VMを利用すると、Javaのように、様々なプラットフォーム上で、.Netのアプリを動作させることが出来ます。