自分はもともとソフトウェア専攻だったこともあり、
「C++やJavaなどのオブジェクト指向最高! 複雑な構造のプログラムでも抽象化してうまく設計できる! Cとかごちゃごちゃになりやすい言語なんてくそだ!!」
と思っていました。
だって、オブジェクト指向では綺麗につくれるプログラムも、非オブジェクト指向で作るとデータと関数がごちゃごちゃになってわかりにくいんです。
ところが、組み込みの方の世界に入ってみると皆C言語で書いていました。
「なんて遅れているんだ!」
とその時は思いましたが、それなりに理由があるのです。
1,開発者がC言語に慣れている
組み込みでは長い間Cが使われているので、皆慣れています。
逆にC++は使い慣れていない人が多いです。
2,過去の資産がC言語
C言語の資産があると、C言語で開発するのが楽です
メーカが提供しているのもC言語のライブラリだったりします。
3,メモリが限られている
これがある意味一番の制限です。
オブジェクト指向など、昨今のプログラミング言語はメモリを大量に使います。
開発しやすさなどを優先して、メモリを多少無駄に使っても気にしないというスタイルです。
PCやスマホ、あるいは数百MBのメモリが載っているLinuxボードならそれでもいいのですが、
プアな組み込み環境だとメモリが数kBしかありません。
こうなると、インスタンスを作る度にメモリを確保するようなオブジェクト指向言語を動かすことは非現実的です。
とまぁ、このように、今でもC言語で開発をするのが現実的なのです。
昔の自分のように「オブジェクト指向じゃないなんて!」と怒らないようにしてください(笑)
以上、小田切でした。