My opinion on open source

   Now many products, including many well-known commercial products, can see the shadow of open source software. Own work is often inseparable from the use of open source software, including directly using finished products or integrating source code into your own products. However, after a period of time, I found that open source is not as gimmicky as I imagined. If you want to hold it in your hand and become a cash cow, you need a price. The key to this, I think, is human ability.

  • Open source software has become very popular.

   When it comes to open source software, some common open source software may appear in many people's minds. As large as operating systems and platforms, such as Ubuntu, Android, and various front-end and back-end frameworks; as small as a variety of small tools, it is even more numerous. In the software field, all industries and platforms, no matter the upper layer or the bottom layer, will see the shadow of open source. Even if we don't directly integrate and use these software, we may still be inextricably linked with them. For example, the server of the webpage you visit is likely to be built based on the Linux system and a set of open source components. Now, many cloud computing platforms are mainly supported by open source products. It can be said that without open source software, there would be no IT industry as prosperous today.

  • Many open source software is already very good.

   Open source often means free. The first impression of free is that the quality cannot be guaranteed. Although open source software is also free, it breaks people's conventional perception of free. Now, in the entire software world, there are many excellent open source products, and even many commercial products are inseparable from the support of open source software. For example, Linux is an excellent operating system, and its applications in the server and embedded fields are very common. All kinds of handheld devices are now developed based on the Linux platform. The most famous one is Google's Android operating system, which almost occupies most of the smart phones.

  • Is open source a trap or a pie?

   Some people think it is a pie. It's just a pie falling from the sky. Using open source software can avoid possible backdoors in commercial software, save the expensive licensing fees incurred by using commercial software, and modify the code for my own use. Therefore, the use of open source software has inherent advantages in terms of security, economy, and scalability. However, some people think this is a trap. First, there may be missing services. If you have come into contact with open source software code, everyone may know that open source software has a license agreement, which clearly states that there is no guarantee for the software. Moreover, if you use an open source software system, no one may be willing to provide services for the problems that arise during your use for free. If you want to modify the code, please, if you are a master, of course, you don’t deny the possibility of such a situation. It’s better to say, but I believe that for most developers, understand the original code and Making effective modifications on its basis is not a simple matter. Therefore, open source is not completely the same as freedom, and there are various invisible investments. In the end, this investment may exceed the cost of adopting commercial products, and may even become a bottomless pit under certain circumstances.

   In fact, from the perspective of end users, it is not impossible to use open source software. In order to fill the above possible traps, there are already many companies that specialize in open source software services. The software can be given to you for free, but the service costs money to buy. However, these costs may really be insignificant compared to commercial software licensing. From another perspective, there is no special difference between open source and open source for end users. What users value is excellent software, good service, and relatively low cost.

   From a developer's perspective, open source may be more straightforward, especially when you use an open source software. Maybe you have no ability or opportunity to modify the code directly, but open source undoubtedly provides a complete and open API for developers. For large companies, open source may be the only shortcut for rapid development, rapid release, and shortening the product development cycle. Correspondingly, these large software companies have sufficient developers, including excellent leaders, and can even hire open source software authors to develop new products. This kind of investment has no reference significance for small companies and individuals. Therefore, for small companies, the use of open source software may mean longer product development and more investment.

   Here is an example. For example, when Google developed the Chrome browser in the early years, it chose the open source engine Webkit. If you have read the code or even just read the Webkit project catalog, maybe you will know that although Webkit is good, to digest it is definitely no less than rewriting an engine. Google chose it because it is a stable engine, and it has human resources to invest in its research and development. Therefore, modification on its basis can launch products as quickly as possible and continue to optimize while ensuring the stability of the software. Correspondingly, Google's release of the Chrome source code is meaningless to most developers. Because even if you have the ability, you may not have the energy to read all its code. On the contrary, Google may have attracted many users to switch to its browser because it announced that this is an open source browser and is more secure.

   Another example is the smartphone platform Android released by Google. The bottom layer of Android is based on Linux, and its code is also open source. Various manufacturers can transplant it to their own hardware platform and make adaptive modifications. In addition, since the development of the Android application layer is basically based on Java, it can attract many ready-made Java programmers to develop applications for it. In this way, manufacturers can say that their platforms support Android, that is, they can support applications developed for Android, and developers will find that there are many hardware platforms that support Android, and with the support of large companies like Google, they can guarantee Everyone is willing to develop applications for the stability of the platform. With the popularity of the platform, Google can generate revenue through advertising and services, which can be described as mutually beneficial and win-win.

   Google, which has tasted the benefits through open source, continues to participate in the open source community, and continuously launches its open source products. Recently, it has opened up the machine learning framework TensorFlow as another powerful example.

   But the pie is not so easy to fall off. For users, most open source software now has a common problem, that is, the interface is not friendly. Especially for desktop users. This is one reason why Windows has occupied the desktop market for a long time. Not every user will use the system through the command line or is willing to use it in this way. This is also one of the reasons why Linux Unix-like systems are mainly used on the server side.

   For developers, the situation is not always so optimistic. Taking embedded devices as an example, it is easier to use mature commercial software such as Windows Mobile (using Windows Mobile may have lower requirements for developers), complete product development faster, shorten the development cycle, and launch products as soon as possible , But pay accordingly. If you use open source systems such as Linux, although you don’t need to pay licensing fees, the system needs to invest more manpower, and you need to consider the associated effects resulting from this, that is, longer development time; at the same time, it also requires the ability of developers In place. However, if the product is successfully launched, it will be more advantageous from the perspective of long-term development.

   In fact, this difference is the two sides of the contradiction. Someone specifically develops a system that is easier to use and more convenient for you. It should and must be profitable. Otherwise, how can this process continue?

   Having said that, it can be summed up: commercial software is not a vampire, and open source software is not a savior! Facing the temptation of open source, we need rational analysis.

Guess you like

Origin blog.csdn.net/wwwyue1985/article/details/112427321