見出し画像

【組込み業界向け】学習しておくと良い言語は?

こんにちは。
今回は、組込み業界向けに学んでおくと良い言語を紹介したいと思います。
とはいえ、僕の個人的主観だけで、「この言語を学習しておくと良いよ!」と言ったところで、説得力がありません(笑)。
なので、いくつか資料を持ってきましたので、それらも含めて紹介していきたいと思います。

企業が学んで欲しいと思っている言語は?

組込みシステム技術協会(JASA)が毎年、新卒採用予定者に入社前に備えてほしい技術知識・スキル、人物像の調査の報告書を公開しています。

組込みシステム技術協会 公開資料

この報告書は協会に加入している企業に対してアンケートを取った結果もとに作成されております。
要するに、組込み業界を牽引する企業が新卒にどのようなスキルを期待しているのかを知ることができる資料なのです。
この報告書の中に、「新卒に必要な言語スキル」という項目があり、2019年度の結果は以下のようになっています。

キャプチャ

図の下の言語ほど、企業の要求度が高い言語となっております。
意外に感じる方もいるかもしれませんが、圧倒的に要求度が一番高いのは「C言語」となっています。
次いで、C++、Java、C#と続きます。
C言語が一番高いというのは組込み業界ならではかと思います。
ちなみに、上位の顔ぶれは例年通りということで、この年だけC言語が特別高かったというわけでもなさそうです。
なぜ、これほどまでにC言語が要求されるかについては富士ソフトさんが「なぜ組み込みでは今でもC言語を使うのか?」という記事を書いており、こちらも参考してみると良いかと思います。

一部引用すると、C言語が要求される理由として、

①コードが軽いので、資源が少ない環境や、制御などにリアルタイム性が要求される組み込みに最適な言語だから
②開発資産や主流のソフトウェアがC言語でできているから

が挙げられています。

僕も、今の仕事でC言語で書かれているシステムを触る機会がありますが、C言語を使っている理由は、別のシステムで使っていた機能の一部を流用しているからでした。
特に、ハードの制御や通信I/FがC言語で書かれていることが多いです。
製造業では、タクトタイムという考え方があり、少しでも生産量を上げるために、システム全体の速度を上げることを要求されることがあります。
そのため、処理速度が速いC言語やC++で書かれることが多いのです。

また、先ほどの報告書ですが、ここ数年の傾向として、C言語の要求度が下がっており、C++の要求度が上がっているようです。
C++も処理速度が速い言語であり、なおかつC言語では扱えない「オブジェクト指向」という手法が扱えるということもあり要求度が上がっているのかと思います。
C++の他に要求度が上がっている言語としては、「Python」があります。
機械学習を行う代表的なプログラミング言語ということもあり、注目度が増しているのがわかります。

今学ぶならC++もよいかも

上の話を紹介したうえで、僕が組込み業界向けに今学んでおくと良いと思う言語はC++です。
C++はC言語のような書き方もできますし、上で説明したように、オブジェクト指向も扱えます。
C++一つ扱うことができるようになれば、おそらく他の言語も比較的簡単に学ぶことができると思います。
非常に利便性が高いのでおすすめです。

また近年、「Rust」と呼ばれる言語が注目されています。
GitHubのオクトバースでも、2019年のRustの使用率が前年比で235%であり、第二位にランクインしていました。

このRustはC言語やC++と同等の処理速度を有しており、かつセキュリティ面でC言語/C++と比べて極めて安全な設計がなされています。
Rustの特徴については、こちらのQiitaの記事が参考になります。

RustはC++を代替えを目指している言語でもありますので、今後、Rustを勉強したいと思っている方にもC++を学ぶのはおすすめです。
現在、C++で開発されているようなシステムが今度Rustで開発されていくようにもなるでしょう。
とはいえ、現在はC++で開発されているシステムのほうがまだまだ多いのが現状ですし、Rustは学ぶのが難しい言語としても知られています。
先にC++を学んでおいて、C++のメリット/デメリットを理解した上でRustを学ぶとRustの理解もより深まるのかなと思います。

まとめ

今回は、組込み業界向けに今学んでおくと良い言語の紹介をしていきましたが、あくまでの一個人の感想なので、皆さんが学んでみたい言語を学ぶのが結局のところ一番だと思います(笑)。
ただし、最初は一つの言語を集中して学ぶようにしましょう!
素敵なエンジニアライフを皆さんが送れるように応援しております。
最後までお読みいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?