分享

再聊开源软件

 多物理场仿真 2022-03-22

关于工业软件领域的开源软件,公众号作过很多介绍,涉及三维几何,渲染,求解器,高性能计算,优化等各个领域。国内外不少项目都是建立在开源软件基础上,客观的讲,开源软件推动了工业软件的发展。

但是,笔者并不建议在产品开发中大量使用开源软件。总结如下:

1.很多开源软件设计并不符合软件产品质量最起码的要求,贸然用在产品中会给产品埋下很多深坑。在笔者开发经历中,因为使用开源软件导致项目质量低下很多,甚至重做的也不少。其核心原因就在于开源软件本身注重功能,忽略架构设计,而开发者又很难深入理解架构,即使理解了也很难改动。

2.开源软件稳定性和性能低。工业软件对稳定性和性能要求很高,通常开源软件达不到要求。开源在量小的时候看不出问题,一旦规模上来之后,开源软件无法胜任。开源软件通常没有经过大量测试和实际项目迭代,稳定性也无法保证。

3.开源软件通常着重某些功能实现,缺乏实际应用背景。实际应用中通常为增加一个写小功能,要做很多额外开发,性价比低。比如很多开源都只能在Linux上运行。如果要开发WIndows版本,要做各种额外开发。

4.大部分开源软件属于小众产品,文档,实例,技术支持都非常弱,实际项目碰到问题如果自己无法解决,基本没有第二选择。

5.开源软件的许可证问题。有些开源项目虽然开源,但是要求使用第三方也要开源,有些开源产品对使用场景,甚至项目都有严格规定,稍不注意就容易中雷。

6.技术落后性。开源软件由于缺乏资金维护,技术更新一般都非常缓慢,很难融入新的技术;选择开源也就把技术起点定的较低,长远看性价比不一定划算。

7.目前大部分开源软件来自欧美,尤其是美国。随着美国对中国长期实施技术压制策略既成事实,很多开源软件以后也可能无法使用,从而造成法律合规上的问题。

也许有人说,目前很多互联网行业都在使用开源软件,互联网的开源和工业软件的开源还是有本质区别的:互联网的开源多为某些小组件,大的开源框架一般都有商业盈利模式,而且使用数量大,在质量和服务以及生态链上都是有保证的。

总之,笔者并不建议产品开发中使用开源软件。诚然,使用开源产品可以省下不少开销,但在产品上开发上的结果就是:大家都在拼低端产品,高端产品无人问津。

最后,开源软件中还是有一些非常不错的,比如在图形渲染,底层线性方程组求解方面,可以直接拿来商用,效果不比商业软件差。此外开源软件也是非常好的学习资源,可以为开发提供一些思路和方向。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多