在阅读了this question之后,我想知道在任务关键型行业中使用Haskell (或其他函数式编程语言)是否是一个好主意。
除了Erlang之外,大多数语言都遵循命令式/契约式设计范式(Ada、Eiffel、C++)。
但是功能性的又如何呢?
由此产生的代码将易于维护,稳定,并且许多潜在的bug可以在编译时通过严格的类型系统来消除。或者懒惰的评估是不是更危险而不是有帮助?还有其他的安全缺陷吗?
发布于 2009-07-18 11:07:57
我想你可以的。该语言似乎非常适合这种情况,假设您足够信任编译器,可以在任务关键型情况下使用它。
请记住,在关键任务情况下,不仅是您的代码受到审查,所有其他组件也是如此。这包括编译器(Haskell编译器不是最容易的代码审查之一),适当的认证硬件来运行软件,适当的硬件来编译你的代码,引导编译器编译你的代码的硬件,地狱-甚至连接到电网的电线和插座中电压变化的频率。
如果您对查看任务关键型软件质量感兴趣,我建议您查看NASA software quality procedures。他们非常严格和正式,但这些家伙在太空中投入了数百万美元,希望它能在非常恶劣的条件下生存下来,并能到达火星或其他任何地方,然后自主操作,将一些火星人的漂亮照片发送回地球。
所以,这就对了: Haskell适用于任务关键型情况,但在那里引导它的使用将是一个昂贵的过程。
https://stackoverflow.com/questions/1147248
复制相似问题