当前位置:网站首页>Embedded development: seven reasons to avoid open source software
Embedded development: seven reasons to avoid open source software
2022-07-03 15:53:00 【Guangdong embedded Education】
Many people may think that open source software is the greatest thing in the history of this industry ! Free of charge ! Why on earth should we avoid open source software ? This may surprise some readers , But although we love “ Open source ” and “ The free software ”, Embedded developers should consider several reasons to justify avoiding open source software .
reason 1– Accidental exposure of confidential intellectual property
Developers often think that all open source software is free , There are no strings attached . The problem is that this is not the case . Open source software developers use several different licensing schemes . However , There are also licenses that require any modifications , Even related software should be released as open source software . If you don't pay close attention , Then developers may find that they have to release confidential code and algorithms to the outside world . Free software only makes companies pay the price of disclosing code , Or if they want to be protected , They now need to pay for lawyers , To ensure that they do not use “ free ” Software and give up everything .
Make sure if you want to use open source software , You have to calculate the lawyer's fees to prove your innocence .
reason 2—— Designed for functionality rather than robustness
Open source software is usually written by function . Access and write SD card . adopt USB signal communication . The problem here is , Although its functional code is usually not robust , And hope the wrench will never be thrown on the gear . This rarely happens , Although the software is free , But developers will soon find that their open source software is only functional , Unable to bear the pressure of the real world .
reason 3—— Lack of traceable software development lifecycle
Software is developing , But it doesn't really follow the traceable design cycle , Not even following best practices . These different embedded developers implement what they want , Or push the code to meet their needs . The result is that the software works in limited circumstances and environments , Users need to pray that their needs and conditions match them .
reason 4—— Lack of automated or manual testing
Yes , This may be a thorny problem , Because many engineers and customers do not use automated testing . A formal testing process , Especially automated testing , It is crucial to ensure that a code base is robust and of sufficient quality to meet its requirements . But for low-level firmware and embedded systems , We still seem to lag behind the rest of the software industry . Without automated testing , We cannot know whether integrating open source components destroys some of them , We won't notice until we enter production .
reason 5—— Poor quality or complete lack of documentation
Documents are getting better and better in open source projects that have existed for a long time or have strong commercial support . Although smaller projects driven by individuals tend to have little or no documentation . If open source code has no documentation , Putting it into practice or debugging will be a nightmare , And more expensive than just getting commercial or industrial software .
reason 6– Lack of real-time support
Few things frustrate embedded developers more than trying hard to make something work or debug but hitting a wall . When this happens , The best way to solve the problem is to seek support . The problem with open source is , There is no guarantee that you will get the support you need to solve any problems in time . Of course , There are forums and social media for help , But these are manipulated by people who give up their free time to help solve problems . If they don't have time to delve into a problem , Or the problem is not interesting or too complicated , Then developers can only rely on themselves .
reason 7—— Integration is never as simple as it seems
Download the source code and start the integration . After a few months , Integration is still going on . Things that seem simple quickly become complicated , Because the same platform or tool chain is not used , Must be carried out “ minute ” modify .
Conclusion
I have no objection to open source software , In some cases , This is very useful and beneficial . It's important not to just use software , Because it is free and open source . Embedded developers need to recognize their needs 、 And the level of robustness required by their products , And appropriately develop or purchase software that meets these needs .
边栏推荐
- Calibre LVL
- WinDbg分析dump文件
- Redis high availability and persistence
- Go language self-study series | if else statement in golang
- Redis高可用与持久化
- Please be prepared to lose your job at any time within 3 years?
- Microservice API gateway zuul
- Jvm-05-object, direct memory, string constant pool
- Three dimensional reconstruction of deep learning
- Tensorflow realizes verification code recognition (II)
猜你喜欢
几种常见IO模型的原理
App移动端测试【5】文件的写入、读取
Unity function - unity offline document download and use
Popular understanding of decision tree ID3
Intelij idea efficient skills (III)
Srs4.0+obs studio+vlc3 (environment construction and basic use demonstration)
Popular understanding of ovo and ovr
秒殺系統3-商品列錶和商品詳情
C语言刷题~Leetcode与牛客网简单题
深度学习之三维重建
随机推荐
Detailed explanation of four modes of distributed transaction (Seata)
Go language self-study series | golang switch statement
The difference between mutually exclusive objects and critical areas
Summary of JVM knowledge points
Automatic generation of client code from flask server code -- Introduction to flask native stubs Library
几种常见IO模型的原理
从 flask 服务端代码自动生成客户端代码 -- flask-native-stubs 库介绍
CString在多线程中的问题
QT common sentence notes
[combinatorics] combinatorial identities (recursive combinatorial identities | sum of variable terms | simple combinatorial identities and | sum of variable terms | staggered sums of combinatorial ide
How are integer and floating-point types stored in memory
leetcode_ Power of Four
子类隐藏父类的同名函数
Win10 enterprise 2016 long term service activation tutorial
Three dimensional reconstruction of deep learning
How to use annotations such as @notnull to verify and handle global exceptions
Detailed pointer advanced 2
WinDbg analysis dump file
Popular understanding of decision tree ID3
Get the executable path through the process PID (queryfullprocessimagename)