テクノロジー

IT技術解説③:なぜ、組み込み業界ではRustが流行らず、未だC言語が主流なのか?

1: secseek 2025/03/22 09:02

Rustに合わせて設計から見直さないとメリットを活かせないようですがそこまでする意味があるのかどうかですかね

2: hasiduki 2025/03/22 12:35

組み込みに向いてないのねん!!!!!!!、

3: sgo2 2025/03/22 12:46

コンパイラが裏でやってくれるような事(実行モジュールやら変数の初期値やらをストレージからRAMにロードするとか)も自前でやる必要がある(ハードの構成に応じカスタム出来ないと困る)のでRustは高級過ぎる。

4: circled 2025/03/22 13:18

CはRustと違って、hello worldコンパイルして生成されるバイナリサイズが30MBとかにならないからでは?

5: nakag0711 2025/03/22 13:31

色々理屈は捏ねるが結局は怠惰さとそれに結び付いた病的な保守性が原因じゃないの。あの業界はまったく信用できないね

6: neco22b 2025/03/22 13:46

ArduinoでLチカぐらいしたことしかないからよく分からん。昔、ソシャゲのギルメンで院卒して組み込み系就職した人いたけど、部長から一人前になるのに5年待つとか言われたとか

7: m50747 2025/03/22 13:47

こうやって改めて比較するとC言語すごいな。誕生から何十年なのに。アセンブラのような存在として生きながらえそうね。昔PSの開発でmalloc使って苦労してる勇気あるプログラマがいたのを思い出した。結局使うのやめた。

8: suikyojin 2025/03/22 14:06

過去からの互換性が重要になるから……。極端なことを言えば、既存のソフトを全く新しく同じに書き直しても、それだけなら無価値。機能強化等しても、既存のものの低コストに見合うことはあまりない。

9: ttrr 2025/03/22 14:06

かなりAI記事ぽさがあるな

10: notio 2025/03/22 14:20

ISOやIECの問題は安全性が開発初期段階から、下部の組織から上部の承認までずっと求められる要素なので、ここをクリアするとなると結構なハードルではあるんだよなぁ。

11: kakei-akihiko 2025/03/22 14:26

ITが情報技術なのに、その後ろに技術をつけるのが気に入らない。

12: turanukimaru 2025/03/22 14:30

今問題なく動いているCのコードを書き替えて事故が起きたらどうするんだ?事故が起きない保証はできるか?お前のコードにバグがなくてもバイトコードが変わるだけで挙動が変わり事故になるかもしれない。と言われた

13: TakamoriTarou 2025/03/22 14:34

色々理屈は捏ねるが結局Rustは組み込みでは解決されている問題を、ずっと言われながら怠惰だか病的だかで改善できないので必要だったものという認識。安全性を重視する業界から見るとあの業界はまったく信用できない

14: reform-myself 2025/03/22 14:42

その業界はそこに挙がってる各ツールの他、MW社やV社等々が下地整えつつ、誰が何を保証するのか決まってないと量産は厳しいよね~。あとROMも小さければ小さいほど製品価格も下げられる正義。

15: findup 2025/03/22 14:47

組み込みでもLinuxが動くような環境なら別だろうけど、マイコンに近いレベルの環境や車載系はなかなか難しそうだなってイメージは分かる。

16: poco_tin 2025/03/22 15:05

米国CISAは今年1月改訂の"Product Security Bad Practices"の中で、OTや組込み機器を含めて新規ではC/C++を使うべきではない、既存製品に対してはメモリ安全脆弱性を排除するロードマップを2025年末までに公開すべきと言ってる

17: Wafer 2025/03/22 15:06

へー組み込みってCつこてるんか。Javaやとばかり思ってたわ

18: kozuru 2025/03/22 15:21

CやC++前提のエコシステムや制度に組み入れる、あるいはRustのエコシステムに移行するのが難しい、と。

19: kogule 2025/03/22 15:28

はてブがヒドすぎる。低レイヤも言語処理系もかすったことすらなさそうな連中が受け売りの知識だけでイキったコメントに星がつくとか,どんな底辺集落だよ。

20: moonieguy 2025/03/22 15:30

モダン言語の便利機能は高級CPUとOSが前提なので組み込みでは使えないケースが多い。C/C++ですらmallocや例外処理はCPUがサポートしてないので使えなかったりする。極端な話テレビのリモコンをLinuxで動かしてどうすると

21: moneycubed 2025/03/22 15:38

組み込みでわざわざRust使うメリットが見えない……けど今後は変わっていくんだろか。勉強しなきゃな

22: pekee-nuee-nuee 2025/03/22 15:56

そりゃそうっすねという話だった

23: gm91 2025/03/22 15:58

6.7.が致命的では。

24: mynz 2025/03/22 15:58

組み込み系も多岐に渡るけど、動的なメモリー/リソースマネジメントを行わない傾向にあるからRustはソリューションになり難いかと。CのシンプルさとHWとの親和性は手堅いよ。

25: uehaj 2025/03/22 16:00

さらにいうなら、Rustが対応してるのはLLVMターゲット全部じゃなくて、そのごくサブセットにすぎないからね。流行る流行らない以前の問題

26: zu2 2025/03/22 16:02

言語の移行って、どれであっても時間がかかると思うのだが / AIっぽい記事だな

27: aike 2025/03/22 16:04

自動車などは例外として比較的小規模のプログラムが多く見通しの良い言語が好まれるのと、専用にカスタムされたコンパイラやライブラリを用意することもよくあるので言語処理系自体もシンプルであることが求められる

28: beeeyond 2025/03/22 16:15

rustは全く知らないのですがほぼICやAVR、8051みたいなマイクロコントローラ(マイクロプロセッサではない)に対応するとしたらどのようになるのでしょう。関数呼ぶのですら憚られる様なスペックですけど。

29: megumin1 2025/03/22 16:43

はてぶ名物の、分野の知識がない人の思い込みに基づく間違いコメントばかり並んでいますよ。Rustはbare metalな環境(no_std)もターゲットにしています。 no_stdはOSもmallocも利用できない、まさに組み込みがターゲットですよ。

30: y_hirano 2025/03/22 16:45

UIがリッチである必要があるが安全性がそこまで重要ではない分野(ソフトがクラッシュしても人が死なない分野)だとAndroidが採用されてたりしてKotlinでアプリを書いたりするので、Rustが入らないんですよね

31: amd64x64 2025/03/22 16:55

コンパイラ書き直さなきゃならないからでしょ

32: ndanna 2025/03/22 16:55

後で

33: suka6411144 2025/03/22 17:03

Rustの採用がメリットばかりならlinuxカーネルであれだけ揉めることもないでしょと思う

34: FreeCatWork 2025/03/22 17:22

むずかしいことはよくわかんないにゃ!でも、C言語さん、がんばってるにゃ!

35: naoya2k 2025/03/22 17:32

一番の理由は、皆がRustを使えるほど賢くないってこと。RustはMISRA-Cみたいなクソルールを強制されないのでとてもいいです。どう書けばどれくらいメモリ使うかがいまいちわかりづらいのはちょっと課題。C++使うならRust

36: x8248 2025/03/22 17:50

4と5が支配的で各マイコン(not CPUアーキテクチャ)に対応したビルド環境がないんで移行も何も無い。5大マイコンメーカーあたりが周辺回路にまで対応した奴を出して初めて始まる議論。組込みは周辺回路が動いてナンボ

37: yau 2025/03/22 18:00

1~7まで具体的な事例や合理的な理由を述べているのに「 色々理屈は捏ねるが~まったく信用できないね」でまとめられる作者かわいそ過ぎる

38: nzxx 2025/03/22 18:02

Rustはアロケータ無しで使うことができるように設計されているしベアメタルでもCの代替となり得る部分はある。実際RP2040とかではかなり使える/がこの記事の内容自体はおおよそ正しいと思う。AIっぽいけど。

39: daichirata 2025/03/22 18:05

まあ C++ ですら主流ではないのに Rust とはならないよなぁとは

40: hylom 2025/03/22 18:36

言語自体の習得のハードルが高いという話がなかった(C++と比べれば一長一短だけどCと比べればまあCのほうが圧倒的に学びやすいですよね)

43: strow0343 2025/03/22 18:45

色々な物がC言語かアセンブラを前提にしていて一企業のソフト屋がRust覚えればいいだけですむ話ではない。海外含めて色々なメーカーが足並揃えて採用とかサポートとかにならないと入り込む余地が無さげ

44: OldEmded 2025/03/22 18:52

私はRustに興味があり独習しています。 組込みが主の業務ですが、くだらない不具合に悩まされ無い言語かと感じています。 堅牢性の確保にコストを余り掛けなくて良いような気がします

45: tak0ctopus 2025/03/22 19:03

この記事 Deep Research が書いたやつだろ

46: nekosann_08 2025/03/22 19:45

組み込みはソフトというより製造業の一部だもんねえ。ソフトウェアで完結できる分野より変更を納得してもらわなきゃいけない人達が多いし資産も歴史も深い、言語仕様が適するかよりも難易度が高い。

47: toaruR 2025/03/22 19:48

学習コストと人員確保の楽さじゃないすかね(´-`)知らんけど

48: onesplat 2025/03/22 19:53

それはそう

49: junglejungle 2025/03/22 20:15

IAR EWARMが対応してくれたら考える。ターゲット環境でまともに使えるデバッガがない環境で開発する気にならない。printfデバッグとかしたくない。

50: mohno 2025/03/22 20:46

“組み込み”って幅広いので(Windowsを使ってるプリクラだって組み込みの一種)、C言語ばかりではないと思うけど、ハードのスペックが限定的ならC言語以外の選択肢はあまりないだろうなあ。

51: morita_non 2025/03/22 21:06

C++で自分の足を撃った人以外はめんどくさいだけで、あんまりありがたみを感じないよね。

52: Mash 2025/03/22 21:40

“Rustの公式コンパイラ(rustc)はオープンソースであり、これらの規格への適合が保証されていないため、機能安全が必須の分野では採用が難しい”/これがなんとかなれば…

53: SundayIsEveryday 2025/03/22 21:43

少し前まで車載やってたけど、RustがCにとってかわらないのは4〜7が主要因だと思う。マイコンやデバッカがRustに対応してないと話にならないし、ISO26262対応のRustのコンパイラがないんじゃそもそも採用できない。

54: hamamuratakuo 2025/03/22 21:58

ベターCとしてRustは有望か?所有権の可視化は将来的にIDEの支援で可能?

55: hiroomi 2025/03/22 22:11

“MISRA-CやCERT-Cが普及している”ここら書いてくるのが、さすが車載エンジニア。とは置いておいて、尋常ない金額払ってやってるから、一時お金頂いた身としては頭上がりません。

56: daishi_n 2025/03/22 22:12

4567が主要因だろうね。既にArmやこれからRISC-Vが通る道だけど、共通のマイコンプラットフォーム、開発環境、その他エコシステムができないと安全性が求められるターゲットをRustで開発するのは難しい

57: abhuzl 2025/03/22 23:02

自動車業界の業界標準が厳しいのはわかるんだけど、各社の自動運転プログラムって何で書かれてるんだろ。まさかC使ってるとは思えんのだが。

58: earu 2025/03/22 23:14

Zigとの棲み分けの部分なのかなー

59: atsushieno 2025/03/22 23:59

オーディオプラグインのDSP界隈でもだいたい似たような感じ(メモリ確保/静的リンク/C++資産ばかり)なのでわかりみが深い。/ ベアメタル云々で難癖つけてる連中はstd「相当」の資産がなくてもできると思ってるだろ

60: arisazai 2025/03/23 00:48

組み込み系やってくれるRustエンジニアって多分ほとんど居ないのでは……。

61: objectiveworker 2025/03/23 01:45

現場によっちゃC言語すら流行っていない。ラダーシーケンスが主流

62: new3 2025/03/23 01:58

"当面はC言語が主流であり続けますが"の当面は思ったより短いとは思う。Ferroceneの登場やこの辺読んでピンとこないなら流石に感度低い<https://indico.esa.int/event/528/attachments/5988/10197/Bringing_Rust_to_Safety_Critical_Systems_in_Space.pdf>

63: kobito19 2025/03/23 04:54

goと勘違いしてる(あるいは区別ついてない)奴がようけおるなここのブコメ

64: sek_165 2025/03/23 07:23

既存のプログラムをCからRustに置き換えようとするとDRBFMが大変すぎて死人が出ます。

65: blueeyedpenguin 2025/03/23 13:13

まだ時期尚早では

66: fivestech 2025/03/23 17:57

MISRA-Cに準拠してる組み込みの現場なんてもう淘汰されるべきだろう。CERT-CやAUTOSARならわからんでもないが。組み込みRustで論点に挙げるべき点は、no_stdが吐き出すバイナリが過去の実績・基準に沿っているかじゃないかな。

67: Kazumi007 2025/03/24 10:50

組み込み業界といっても情報系システムもあるわけで、そういう分野ならRustという解もありそう。既存資産の対応は諦めて、新規はRustと行きたいが、これも厳しそうだなあ。

68: kichi941 2025/03/24 12:06

トヨタ/WovenのAreneってどうなったんだろ?

69: cl-gaku 2025/03/25 10:48

クリティカルな分野にはまだまだ尚早でしょ

70: topiyama 2025/03/25 12:21

新規開発はともかく派生流用開発で [Rust導入コスト]<[Cを使い続けるコスト] になるには相当の環境整備が必要。/せめて新規案件向けにArduinoのような試作キットでRustが使えるようになると良いんだけど。pi pico+Rust流行れ