*ちょまどさんの発言は個人の見解であり所属する組織の公式見解ではありません。

 

以前にもインタビューを受けてくれたちょまどさんにプログラミング言語の「C#(シーシャープ)」についてお聞きしました。C# が好きすぎて転職先を決めたというエピソードもあるちょまどさんに、非エンジニアでも分かるように C# について語っていただきました。

C# は大体なんでもできるプログラミング言語

ーー早速ですが、非エンジニアからすると C# ってどんなことができるのかすら良く分かっていないのですが、C# でどんなことができるのでしょうか?

C# はマイクロソフトがオープンソースで開発しているプログラミング言語で、 OS  開発以外は大体なんでもできます! 逆に C# にできないことをあげるほうが難しいです。

例えば、

  • Webアプリ

  • スマホアプリ

  • Webサイト

  • IoT

  • ゲーム

などが C# で開発できます。

身近なアプリで何が C# で書かれているかというと、ゲームエンジン Unity で作られているゲームは C# が使われています。例えばスマホ版の「ドラゴンクエストVIII」や、位置ゲーのPokémon GO (ポケGO) も Unity 製 (C#) ですね。

また、Unity 以外では、Xamarin(ザマリン)※で作られているのは C# を使っていますね。例えばNHKの紅白アプリも Xamarin 製です。

※ Xamarin(ザマリン)・・・ C# で、iOS、Androidなど向けのアプリをクロスプラットフォーム開発できるオープンソースのプラットフォーム

 

ちょまどさんにC#の良いところについて語ってもらいました

 

ーー大体なんでも作れるということで、C# の良いところは分かったのですが、悪いところはありますか?

正直、私は C# 信者なので、あまり客観的になれず悪いところが浮かびません(笑)。

でも、しいて言うなら、C# はできることが非常に多いので、それぞれ向き不向きがあると思います。特定の場面に最適化された言語と比べると、非効率になる場面もあると思います。また、ネットで調べものをしていて、違う環境での記事(Unity では使えない  API など)が引っかかってしまい、自分の環境では使えない機能が出てくることもあったりしますね。

多彩な機能を持っている割には、勉強して習得するのもそんなに難しくないと思います。いろいろなプログラミング言語から良いところ(ラムダ式など)を柔軟に取り入れることもありますし、C# が先導となって他のプログラミング言語に広まっていったような機能もあります(非同期メソッドなど)。いまでも定期的にアップデートをしていますし、クールな言語です。

 

ちょまどさんがホワイトボードを使って解説

C# との出会いが人生を変えた

ーー非エンジニアでも C 言語というプログラミング言語があるということは知っている方も多いと思うんですけど、C 言語と C# って何が違うんですか?

C 言語を書ける人から見ると読みやすいなと思える程度には、見た目が似た雰囲気の箇所もあります。(if や while などのキーワードや、{} や () などの記号の使い方のルールが似ているという程度のもの)

でも、コードをコピペしてきてそのまま動くようなものではなく、別物です。世代も違う、ポリシー(重要視している点)も違う、得意な分野も違う、色々違います。

例えば、C 言語ではメモリ管理をプログラマが自分でやらねばならず煩雑でしたが、C# にはガベージコレクションという仕組みでメモリ管理の手間から解放してくれる機能があります。

ちなみに、C# の名前の由来ですが、もともと C 言語の進化系として C++ (シープラスプラス)が生まれましたが、さらにその進化系というのを強調するために、もうひとつ “++” を足して “#”、つまり C# になりました。

C# の名前の由来

【編集部記:C 言語と C# 開発者の違い】

C 言語は 1972 年にAT&Tベル研究所のデニス・リッチーさんが主体となって開発しました。VM(バーチャルマシン)や Runtime(プログラムの実行時に参照する共通基盤)なしで動くため、軽くて速いという特徴があります。

C# は、Delphi など他の言語も手掛けたことがあるアンダース・ヘルスバーグが主体となってマイクロソフトで開発した言語で、2002 年に正式リリースされました。現在 GitHub 上でオープンソースで開発されており、現在は 1 年に 1 度という頻度でメジャーアップデートがおこなわれています。

学生時代には独学で C 言語も勉強をしてたんですけど、社会人になって 2 社目でモバイルアプリを開発する仕事をしていました。そこで、C# に出会ったんです。 1 社目ではほとんどプログラミング言語に触れる機会がなかったので、実質社会人になって初めて触れたプログラミング言語が C# なんです。

それで「あ、最高!」ってなりました。なにが最高かというと、それまでは Vim (ヴィム)というテキストエディターを使ってたんですけど、当時はコード補完機能などを入れてなかったんです。

C# は開発環境として「Visual Studio」という最強の IDE(統合開発環境)があるんですけど、それがとても良くて。コード補完などがとても良くできているんです。この出会いがきっかけで「C# 最高!」ってなりました。

今の会社に入社するきっかけも C# で、こんな素晴らしい言語とエコシステムを作っている会社は最高に違いない! と思ったんです。C# が好きだから今の会社に入社した感じです。

エンジニアの皆さんそれぞれに入信しているプログラミング言語があると思うんですけど、私は C# 教に入信しています(笑)。

 

ーーそれぞれに好きなプログラミング言語があるんですね。これから C# を学びたい人は何から始めたらいいですか?

本で勉強するのもすごくいいんですけど、C# は進化が速くて最近では 1 年ごと(かつてはだいたい 2 年半ごと)にアップデートされるので、最新の情報はインターネットで得たほうがいいと思います。