仅仅是嵌入式环境使实施新实践或工具变得更加困难吗?
这部分是规模问题。软件不是产品,产品就是产品。然而,市面上有成千上万种不同类型的微控制器和微处理器,其中最流行的几千种有 3-4 种不完全兼容的不同编译器。
所以一个给定的工具只会被几百或几千名工程师使用。
然而,在windows开发中,有数以百万计的不同层次的程序员——工具直接生产软件,也就是产品,所以它会得到更多的眼球,更多的钱。
工程师推出的每个新产品都可能有不同的处理器。
是嵌入式程序员的心态使他们远离新工具/概念吗?
嵌入式程序员通常是软件或固件工程师,而不是程序员。工程意味着在实现之前进行一定数量的设计、设计分析和设计证明——换句话说,在编写第一行代码之前已经完成了大量工作,理想情况下,文档足够具体以至于实现只是转向将文档之类的伪代码转换为可编译代码。
设计阶段需要新的工具和概念,而不是实施阶段。带有智能感知的 IDE 可能不错,但是在编写代码时它已经变得毫无用处了——他们已经知道自己需要什么。
CAD - 计算机辅助设计 - 正在为固件工程师开发工具,这些工具在设计阶段用于开发直接转化为代码的模型和模拟。Matlab 和 simulink 就是很好的例子。设计了整个系统。
事实上,人们可能想知道为什么软件开发人员仍在编写代码,而工程师则在制作数据/程序流程图和状态机图。为什么 UML 在应用程序领域的应用如此缓慢?听起来应用程序开发人员可以使用嵌入式系统工程师常用的一些工具......
与以 IT 为重点的领域相比,典型嵌入式行业的管理层是否落后于曲线?
实际上,很可能是相反的。当一个项目开始时,工程师必须选择处理器。
处理器制造商在较旧的芯片上获得的资金较少,因此他们推销最新和最好的芯片,而且它们总体上比以前设计中使用的芯片便宜(通过芯片缩小、更多集成等)。
所以设计实际上是使用了最新最好的芯片。
缺点是编译器和工具通常不成熟。他们只能在旧工具上构建这么多东西,而且由于目标随着每个新处理器的变化而变化,他们不能专注于应用程序程序员可能喜欢的许多不错的功能。特别是因为其中许多功能对嵌入式工程师没有用处。
还有许多其他因素,其中一些被其他答案列举,但它确实是一个不同的领域,即使它们都涉及编程。
-亚当