C#とはどんな言語?特徴は??
目次
C#は、マイクロソフトが開発したプログラミング言語で、2000年に登場しました。
同じくマイクロソフトが開発したアプリケーション開発・実行環境である「.NET Framework」の基幹言語として開発されているので、Windows向けのアプリケーション開発に最適な言語です。
また、近年ではマルチプラットフォーム化が進んでいます。 他の言語を使わず、C#のみで様々なプラットフォーム向けのアプリケーション開発ができるようになりつつあり、C#の利用の場は今後広がっていくと思われます。 2014年に.NET Frameworkが一部オープンソース化されたことや、Xamarin(ザマリン)社による.NET Framework互換環境の実装(=Monoプロジェクト)によって、Windowsだけでなく、Mac OS、iPhone(iOS)・AndroidアプリやWebアプリケーションの開発が可能になりました。
さらに、2017年には、「Visual Studio for Mac」がリリースされ、MacでもC#を使った開発が可能になっています。
ゲーム開発にもC#
ゲーム開発用の統合開発環境として人気のUnity。 実は、前述のMonoプロジェクトの成果をベースに開発されたという経緯があり、Unity全体の約80%がC#で書かれています。そのため、C#との親和性が非常に高くなっています。
さらに、従来Unityでは「C#」「JavaScript」「Boo」の3言語からスクリプト言語を選択できる仕様になっていましたが、2018年の最新のバージョンでは「JavaScript」「Boo」が、Unityエディタ上から新規作成できなくなり、C#一択となっています。 つまり、今後はUnityを使う際はC#を使うことが必須となります。
C#は難しい?JavaやC++との違いは?
C#はC++やJavaと同じオブジェクト指向を用いたプログラミング言語で、C++
とJavaの便利な部分を取り入れて作られた、Java と C++ のいいとこ取りのような言語です。
文法はJavaに似ているので、C#を習得しておくと、Javaを習得する際も学習コストが低くて済みますし、Java経験者がC#を触る場合も同様で応用が効きやすいといえます。
C#とC++の違い
C++はC言語にオブジェクト指向を追加し、より効率的にプログラミングができるように開発された言語です。
C言語とC++は互換性があり、ハード側で動くことを得意としている言語なので、産業用ロボットや家電製品、パソコンのデバイスドライバーやOS上で動くアプリケーションの開発に使われています。
一方でC#は、Cという文字が入っているので、C言語を元にしているように見えますが、Delphiの開発エンジニアが中心となって作った言語であり、構文はどちらかというとDelphiに近いです。CやC++との互換性はなく、全くの別物の言語といえます。 また、CやC++では自分で管理しなければならないメモリ管理が自動化されている(ガベージコレクション)など、C#の方が厳密なプログラムを行う必要がなく、コードを書きやすいといわれます。
C#とJavaの違い
JavaはC言語/C++の構文記法など受け継ぎつつ、OSを選ばずにプログラム実行できるように開発されたオブジェクト指向言語です。C言語やC++との互換性はありません。
仮想マシン上で操作し、OSを選ばずに実行できるという点や、システムからウェブ、スマホアプリ、ゲームなど幅広い分野で使われていると言った点がC#との類似点であるといえます。
C#は、C++やJavaと比較して後発のプログラミング言語であり、これらにはなかった機能が追加され、型推論やプロパティーをはじめとして、より効率よく開発できるようになっています。
またJavaでは統合開発環境が統一されておらず、Eclipse、InteliJ IDEA、NetBeansなどを選択するのですが、C#の場合は、VisualStudioという標準の統合開発環境が存在します。
VisualStudioは元々がマイクロソフト社の開発だったこともあり、標準で非常にリッチな機能が実装されている点がメリットです。
メソッド名などをすべて覚えていなくても開発効率をアップできる入力補完機能や、フォームにボタンなどのコントロールをドラッグアンドドロップで簡単に配置できるGUIエディター、テストツールなど開発で必要となる機能一式のほか、便利な機能が多数含まれています。
C#で開発をする場合は、VisualStudioがあれば十分です。
前述のように、2017年以降は、macOSでもVisualStudioを利用することができるようになっていますし、無償で利用できるVisual Studio Communityというサービスもあるので、簡単に開発を始めることができます。
・下記のページからダウンロードが可能です。
C#のフリーランス案件どんなものがある?相場は?
従来は、企業向けの管理システム等のアプリケーション開発がメインでしたが、マルチプラットフォームな開発環境が整ってきたこともあり、スマホアプリやゲーム開発といった案件も増加傾向です。
企業向けシステム案件の場合の案件相場は、【60万〜70万円/月】です。 金融系のシステム開発の場合は、相場より若干高めの傾向があります。
企業向けシステムの場合は、比較的大規模な開発が多く、セキュリティ上のリスクなどから在宅ではなく、常駐スタイルでの案件がメインとなっています。 C#で在宅での案件を探す場合は、スマホアプリやゲーム開発案件を軸に探したほうが可能性がありそうです。
特に最近は、ゲーム開発案件が増加傾向で、案件相場も【75万〜85万/月】と、システム開発案件よりも高単価の案件が狙えます。
プラットフォーム化により、従来のWindows系のシステム開発案件以外にも、活用の幅が広がっているC#。フリーランスの案件数も伸びてきているので、C#を習得しておくことは、ムダにはなりません!
企業の情報やエンジニアとしてのキャリアアップの方法、現在の待遇(給料・報酬)、未経験からのステップアップ方法などのご相談を受け付けています。
お気軽にお問合せください。