組込み環境が新しいプラクティスやツールの実装を難しくしているというだけでしょうか?
それは部分的に規模の問題です。ソフトウェアは製品ではなく、製品は製品です。ただし、数千の異なるタイプのマイクロコントローラーとマイクロプロセッサーがあり、最も人気のある数千のものには、完全に互換性のない 3 ~ 4 種類のコンパイラーがあります。
したがって、特定のツールを使用するのは、数百または数千のエンジニアだけです。
ただし、Windows の開発では、さまざまなレベルの何百万人ものプログラマーがいます。ツールは、製品であるソフトウェアを直接生成するため、より多くの注目を集め、より多くのお金を獲得することになります。
エンジニアが発表する各新製品には、異なるプロセッサが搭載されている場合があります。
組み込みプログラマーの考え方が新しいツールや概念から遠ざけているのでしょうか?
エンベデッド プログラマーは、一般的に、プログラマーではなく、ソフトウェアまたはファームウェア エンジニアです。エンジニアリングとは、実装前にある程度の設計、設計分析、および設計証明を行うことを意味します。つまり、コードの最初の行が記述される前に大量の作業が行われます。ドキュメントは、理想的には、実装が簡単に変更できるほど具体的です。ドキュメンテーションのような疑似コードをコンパイル可能なコードに変換します。
新しいツールと概念は、実装段階ではなく、設計段階で必要になります。Intellisense を備えた IDE は素晴らしいかもしれませんが、コードが書かれる頃には役に立たない粗雑なものです。彼らは必要なものをすでに知っています。
CAD - コンピュータ支援設計 - ファームウェア エンジニア向けのツールが開発されており、設計段階でモデルやシミュレーションを直接コードに変換するために使用されます。Matlab と simulink はこの良い例です。システム全体が設計されています。
実際、エンジニアがデータ/プログラムのフローチャートやステート マシン図を作成しているのに、なぜソフトウェア開発者はいまだにコードを書いているのか疑問に思う人もいるかもしれません。アプリケーションの世界で UML の取り込みが遅いのはなぜですか? アプリケーション開発者は、組み込みシステム エンジニアの間で一般的に使用されているツールのいくつかを使用できるように思えます...
典型的な組込み業界のマネジメントは、IT 中心の分野に比べて後れを取っているのでしょうか。
実際、それはおそらく逆です。プロジェクトが開始されると、エンジニアはプロセッサを選択する必要があります。
プロセッサ メーカーは、古いチップで得られる金額が少なくなるため、最新かつ最高のチップを売り込みます。一般に、以前の設計で使用されていたチップよりも全体的に安価です (ダイの縮小、統合の増加などにより)。
そのため、設計には実際に最新かつ最高のチップが使用されています。
欠点は、コンパイラとツールが未熟であることが多いことです。彼らは古いツールでしか構築できず、新しいプロセッサーごとにターゲットが移動するため、アプリケーション プログラマーが好む多くの優れた機能に集中することができません。特に、これらの機能の多くは組み込みエンジニアにとって役に立たないためです。
他にも多くの要因があり、そのうちのいくつかは他の回答で列挙されていますが、両方ともプログラミングが関係しているとはいえ、実際には別の分野です。
-アダム