C#はオワコンなのか?

世の中には沢山のプログラミング言語がある。そんな中であまり目立たないけど有用性抜群だと思っているのがC#です。
しかしあまり注目されることがないのも事実。業界歴2桁目前の自分が思うことを書いてみたいと思います。

最近の界隈

実務も踏まえて、今一番潮流に乗っている言語はJavaScript(TypeSceipt)だと思います。次点でPHP。説明する必要もない実績も歴史もピカイチな言語。

PythonやRubyも特にweb系の案件では要項として見ますね。

TypeScriptはちょっと毛色が違いますがこれらはスクリプト言語と呼ばれる種類で、気軽に扱いやすいことが特徴。コードがそのまま動くのです。また昔からwebといえばこの2つでした。採用数も多いので案件も多い。

なのでスクールもこれらが学べる物が多いです。

対してC#やJavaといった言語は昔ほど話題に上がらなくなったイメージ。言い換えれば言語的に成熟期を迎え、枯れた言語と言えるでしょう。

また、お堅い現場やかなり大規模な案件での採用が多い言語のため、所謂フリーランス向け案件が少ないのも利用が活発でないように見える原因の1つでしょう。

C#の特徴

C#はC++の系譜であり扱い辛い部分を改良したもの。様々な特徴が存在します。

強い型付言語

C#には強力な型システムが存在します。各変数は生成した時から型を持ち、「1」が数値なのか文字なのかわからなくなることはありません。

オブジェクト指向に忠実

最近はPHPやJSでもクラスのような概念が備わりましたが、あくまで「それっぽいもの」です。C#での開発に慣れている人間としては物足りないし保守性も下がってしまうように感じます。

public class User
{
   public string Name { get; set; } = "";
   public int Age { get; set; } = 0;

   public User(string name, in age)
   {
      Name = name;
      Age = age;
   }

   pubric string TalkMySelf(string targetName)
   {
      return targetName + "さん。こんにちは。私は" + Name + "です。";
   }
}

オブジェクト志向の教科書的な書き方ですよね。必要なもの、初期値、作用が一目で把握できます。

コンパイルが必要

デメリットにも繋がりますがC#はコンパイルしないと動きません。文法エラーがあるとそもそもコンパイルが通らないのです。しかしその分、型システムとコンパイルエラーのおかげでPHPやJSのように「処理を動かさないと文法エラーがわからない」という状態にならないのです。

わかりやすいTryCatch機構

C#には優秀な例外制御機能が存在します。

try
{
   ...何らかのExceptionが発生する処理
}
catch(Exception e)
{
   ...エラー時処理
}
finally
{
   ...処理成功時も失敗時も必ず通る処理
}

シンプルでわかりやすいですよね。とってもベーシックな書き方ができます。

数値や日付が素直

見落としがちですが、JSやPHPでは日付けの扱い方や小数点の計算に癖があったりします。例:小数点計算がずれる、+1 month….

C#では正確に計算する場合にはdecimal型がありますし、DateTime型は直感的に日付を操作できるメソッドを沢山持っています。

またこれらはNull非許容型であり、意図しない挙動を防ぐことが可能です。

C#についてよく聞く話

Q. Windowsじゃないと動かないんでしょ?
A. 一昔前はそうでした。今ではLinuxでも動きますし、AndroidやiOSに対してネイティブアプリ開発だって可能です。

Q. 実行速度が遅い!
A. https://qiita.com/takeITeasy7/items/0e9a99a6c72a18ff3712
Goと張り合えるなら問題無い?実装方法がまともなら遅いと思ったことは無いです。

Q. Microsoftの犬になるんでしょ?
A. 確かにVisualStudioの有償版が必要なパターンもある(一定規模以上のチームでWinForms開発とか)。けど企業規模によっては無料版で事足りるし、web系ならvsCodeでも一応開発可能。DBもSQLServer以外だって使える。macやLinuxでも全然開発出来る。あと数年前からC#やランタイムがオープンソース化されたので、開発者に寄り添おうとしている感じは伝わる。

C#の使いどころ

良いところばかり書き連ねましたが、だからと言って全てにC#がフィットするとは思っていません。シチュエーション毎に考察します。

winアプリ開発(◎)

メインフィールドですよね。WPF? UWP? WinFormsでいいんです。

Android/iOS開発(○)

実案件に耐えうるものも全然作れます。ただ、kotlinやSwiftで作れるならそっちで作ってもいいと思いますし、クロスプラットフォームを意識するならFlutterの方を自分は選びます。主要メンバーがC#エンジニアなら使うかなという感じ。

フロントエンド開発(○or△)

開発者の経験的に絶対C#がいい!という理由があるならC#でしょうが、Reactやvueが強すぎですよね。情報量、関連パッケージを考えるとC#は選択肢から外れる気がします。

サーバサイド開発(○)

個人的にはサーバ側に厳密な型システムを導入できることは大きなメリットだと思います。.NETがオープン化したので動作環境に悩むこともなくなり、なかなか良い選択肢だと感じます。

いろんな側面

まずC#はお堅い開発で使われることが多いです。基幹システムや複雑な処理が伴う中規模BtoCサービス等。というのも歴史的にCOBOLからの移行先にJava or VB or C#という構図があったんですね。大規模はJava、中小企業はVB or C#を選定というのを個人的には感じてます。

上記のことから、フリーランス案件もJavaほどはないです。PHPやRubyみたいにグロース中というのもあまりない気がします。一方で責任や経験を求められるが単価も高めみたいなものを見かけます。個人的な感想ですが。。

まとめ

今の時代、新規開発をしようと思った時はとりあえずnode.jsやPHP、Rubyが一番に出てくると思いますが、JavaやC#がなぜ使われてきたのか?今も生きているのかを考えてみるのもありだと思います。

レンタルサーバはConohaWINGが最強にオススメ!

muchilogでは今までいろんなレンタルサーバやSaaSを使ってきましたが、今では全てをConohaWINGにて運営しています。

■今まで使ってきたサービス一覧
・さくらレンタルサーバ(ベーシックプラン)
・カゴヤ
・Azure
・AWS

今ではこのブログは勿論、webサービスのバックエンドやアプリのサーバ機能もConohaWINGで動かしています。
そんなConohaWINGのメリットをいくつか紹介します!

【国内最速No.1】高性能レンタルサーバーConoHa WING

無料で最大2個の独自ドメインが使える!

サイト運営に必要な独自ドメインをなんと無料で取得することが可能です!これだけでも月100円以上は運営費が節約できます。

優れた速度と安定感

私がAzureやさくらを解約した大きな理由はこれ。Conohaは非常に安定して稼働しており、ダウンタイムがほぼ発生しません。発生した場合は潔くお知らせしてくれます。
また、このブログは勿論、バックエンドとして動いてるプログラムも処理速度が大幅に向上しました(体感で倍速以上)。 Azure等のSaaSからレンタルサーバに移行するって普通考えられませんよね?しかし実際に大きなメリットを感じているのです。

頻繁に開催されるキャンペーン

ConohaWINGは半額に迫るようなキャンペーンを頻繁に開催しています。このキャンペーンによって、性能的には業界トップクラスであるにも関わらず、 月額料金換算で最安値クラスで使えるのです。
基本的に長期一括契約の方がお得になるため、muchilogでは最長で契約することをオススメします。価格と性能のバランスを考えれば他に乗り換えることも考えれられませんし。

レンタルサーバは必須です!

web系のプログラミング学習を進める際には、レンタルサーバの契約は必須と思ってください。ローカルの環境と本番環境で動作が違うことは良くありますし、ポートフォリオを公開するのも大切です。

学習や制作に集中するためにも、満足度、速度、安定度全てのレベルが高いConohaWINGを最強にオススメします!

web系サービス開発会社に転職したい!

muchilogではIT系へ転職したいという方には「自社サービスを運営しているweb系企業」への転職をおすすめしています。

web系は「自由な社風」「成長できる環境」「ホワイトな労働条件」であることが多いからです。

そんなweb系企業への転職を確実にするためのプログラミングスクールが登場しました。


RUNTEQ

RUNTEQはただのスクールじゃない!

RUNTEQはweb系の開発会社。開発会社が運営するスクールなので必要とされる技術力は勿論習得可能。しかしそれだけではないのです。

特にweb系で転職・就職活動を行う際にはポートフォリオを求められることがあります。ポートフォリオとは自分自身の作品のことで、技術力や企画力を示すものです。

RUNTEQではポートフォリオの作成を企画段階からサポートしてくれます!

他のプログラミングスクールでは提携企業の派遣やアルバイトとして就職するしかなかったりもしますが、RUNTEQはあなたの市場価値を高める方法まで教えてくれるということですね。

また、RUNTEQが扱う教材はどれも第一線で当たり前に使われている技術。特に未経験者の独学ではどうしてもスキルセットに穴が出来てしまいます。その点RUNTEQは確実に現場力を養えます。

そして2020年2月〜2021年12月までの内定者の98%がweb系企業に内定しています。これはRUNTEQの指導力とサポートが優れていることの証拠でしょう。

まずは無料説明会に申し込んではいかがでしょうか?

RUNTEQ


C#
muchiをフォローする
MUCHILOG
タイトルとURLをコピーしました