避免开源软件的7个理由

时间:2022-07-04

  可能很多人会认为开源软件是这个行业有史以来最伟大的事情!免费的!我们究竟为什么要避免开源软件?这可能会让一些读者感到惊讶,但是尽管我们热爱“开源”和“自由软件”,嵌入式开发者应该考虑几个理由来证明避免开源软件是正确的。


缺乏可追踪的软件开发生命周期

  软件在发展,但它并没有真正遵循可追踪的设计周期,甚至没有遵循最佳实践。这些不同的嵌入式开发人员实现他们想要的东西,或者将代码推向满足他们需求的方向。结果是软件在有限的情况和环境下工作,用户需要祈祷他们的需求和条件与他们相匹配。


文档质量差或完全缺乏

  文档在已经存在很长时间或者有强大商业支持的开源项目中变得越来越好。尽管由个人驱动的较小的项目倾向于很少或者没有文档。如果开源代码没有文档,将其付诸实践或调试将会是一场噩梦,并且比仅仅获得商业或工业级软件更昂贵。


意外暴露机密知识产权

  开发人员通常认为所有开源软件都是免费的,没有任何附加条件。问题是事实并非如此。开源软件开发人员使用几种不同的许可方案。然而,也有一些许可证要求任何修改,甚至相关软件都要作为开源软件发布。如果没有密切关注,那么开发人员可能会发现他们不得不向外界发布机密代码和算法。自由软件只是让公司付出了披露代码的代价,或者如果他们想受到保护,他们现在需要花钱请律师,以确保他们不会因为使用“自由”软件而放弃一切。

  确保如果你要使用开源软件,你要计算律师费用来证明你是清白的。

 

image.png


整合从来不像看起来那么简单

  下载源代码并开始集成。几个月后,整合仍在进行。看似简单的事情很快变得复杂,因为没有使用相同的平台或工具链,必须进行“微小的”修改。


缺乏自动化或手动测试

  是的,这可能是一个棘手的问题,因为有很多工程师和客户不使用自动化测试。一个形式化的测试过程,尤其是自动化测试,对于确保一个代码库是健壮的并且有足够的质量来满足它的需求是至关重要的。但是对于低级固件和嵌入式系统,我们似乎仍然落后于软件行业的其他部分。如果没有自动化测试,我们就无法知道集成开源组件是否破坏了其中的某些东西,直到我们进入生产时才会注意到。


专为功能性而非坚固性而设计

  开源软件通常是按功能编写的。访问并写入SD卡。通过USB通信。这里的问题是,虽然它的功能代码通常是不健壮的,并期望扳手永远不会扔在齿轮上。这种情况很少发生,尽管软件是免费的,但开发者很快就会发现他们的开源软件只是功能性的,无法承受现实世界的压力。


缺乏实时支持

  很少有什么事情比竭尽全力让某个东西工作或调试却碰壁更令嵌入式开发人员感到沮丧的了。发生这种情况时,解决问题的最佳方式是寻求支持。开源的问题在于,不能保证你能及时得到解决任何问题所需的支持。当然,有论坛和社交媒体来寻求帮助,但这些都是由放弃空闲时间来帮助解决问题的人操纵的。如果他们没有时间去钻研一个问题,或者这个问题不有趣或者太复杂,那么开发者就只能靠自己了。


结论

  我绝不反对开源软件,在某些情况下,这是非常有用和有益的。重要的是不要仅仅使用软件,因为它是免费和开源的。嵌入式开发人员需要认识到他们的需求、需要和他们产品所需的健壮性级别,并适当地开发或采购满足这些需求的软件。


Copyright © 2016 广州思洋文化传播有限公司,保留所有权利。 粤ICP备09033321号

与项目经理交流
扫描二维码
与项目经理交流
扫描二维码
与项目经理交流
ciya68