What is open source? Where did it come from and where is it going?

What is open source? Where did it come from and where is it going?

Many domestic software companies or research institutions are only interested in free code, and rarely participate in the activities of the open source community. We have always used more open source than contributed to it. If there are no open source projects with a certain influence initiated in China, they are rare. We are so stingy that we are unwilling to "waste" any development and testing resources even for the open source projects we are using. I have had the honor of listening to the speeches of Richard Stallman, a spiritual leader of free software, twice. He emphasized that "Free is not free". Similarly, open source is free, not free. Perhaps, when everyone is enjoying the free feast of open source without any scruples, they have completely forgotten that the real power of open source is freedom, not free.

[[130417]]

What is open source?

Simply put, open source includes three aspects:

First of all , open source is a project . As a project, in order to attract more interested and enthusiastic technical and non-technical people to participate, open source often has its own unique and flexible project organization and development process, which is completely different from companies. Of course, generally speaking, an open source project is often led by one or several companies, but it will never exclude the participation of any other organizations, companies, and independent developers. The management team of open source projects is mostly generated through democratic means.

Secondly , open source is a community . As a community, open source provides a communication platform consisting of mailing lists, forums, IRC and various conferences for developers, testers, donors, and users. The "Open" in Open Source is not only open code, but also an open communication platform. As long as we respect each other, almost all technical, development, testing, usage and management issues can be discussed. Everyone can come up with ideas and solutions together to contribute to open source from all aspects.

Finally , open source is a product . In many cases, the products released by open source are difficult to meet the needs of users. Therefore, under the condition of not violating the relevant license, some companies customize it and turn it into their own products or solutions. Of course, some companies will also feed back the development of open source. This is a win-win virtuous circle. Almost all open source projects have related product releases. Such examples are too numerous to mention. The productization of Linux is the most classic example. It can be said that without the productization of Linux, there would be no flourishing of Linux open source. Other examples include various derivative products of Eclipse. The split and decline of OpenOffice.org may be caused by its insufficient and poor productization. In our magical country, it is said that there is an extremely smart academician who has brought a foreign open source project to the extreme level and won the first prize of the National Natural Science Award for this. It is amazing and you can't help but accept it.

Importantly, open source is a free world. People can freely join or leave the community, freely discuss various issues, and make various suggestions. Developers can freely learn open source code and technology, and users can freely use open source products. With open code, you can freely rewrite, delete, and add functions to open source products without violating the license of open source code and products. Companies and organizations can also freely use open source code and technology and freely sell open source products. As mentioned above, open source encourages companies to participate in productization. Everyone for me, I for everyone, this may be the true meaning of open source freedom, but it is too beautiful, so beautiful that it is unbelievable. Back to reality, no matter how desirable the vision of freedom is, the success or failure of an open source project/community ultimately depends on the morale of the people. If the power of freedom still cannot arouse people's enthusiasm for participation, then the reason and value of the existence of this open source community/project are greatly questionable.

On the other hand, and more importantly, some theorists believe that open source itself is a free business model, which is true. This is just like the free business model that is being interpreted by Internet companies in full swing. For example, although we do not pay for every Google search, our search behavior will eventually be converted into Google's advertising revenue as part of big data. Having enough users is the key to the success of this business model. Similarly, the source code and final products of open source projects are free and open, and can be used freely rather than arbitrarily. The open source business model includes fundraising through foundations and charging users for technical support services. In addition, many companies also directly contribute development and testing resources to open source while productizing open source projects, which is actually a kind of funding behavior. Of course, as mentioned above, this open source business model can only be successful if it is supported by a large number of free users.
The benefits of enterprise participation in open source

Only seeing the benefits of open source and ignoring the power of open source freedom is definitely a short-sighted behavior, even from a purely utilitarian perspective. For companies that are using open source, actively participating in the construction of the open source community can at least benefit from the following two aspects:

First , the more contributions you make to open source, the greater your impact will be, which will create a good advertising effect. Through open source, you can better showcase your own technology, products, and solutions and win the trust of users.

Second , if you are strong enough and have the ability to lead the development direction of open source projects, you can better gather the resources of the open source community to improve your own products, which will bring you great benefits. For programmers, the biggest benefit of participating in open source is the sense of accomplishment gained from your contribution. When I was working at IBM, my product line Symphony was an office suite based on OpenOffice.org. At that time, I developed an algorithm for fast matching of rollback fonts. When the font specified by the user for the text does not exist in the system, the algorithm can quickly find the most suitable alternative font from the system, which can greatly improve the rendering speed of the text and improve the display quality of the text. I successfully submitted this algorithm to OpenOffice.org. I clearly know that every time a user opens and edits a document using OpenOffice.org, this algorithm may be run, and this sense of accomplishment arises spontaneously. Of course, it is regrettable that OpenOffice.org has split. However, libreoffice.org still exists.

In fact, an important reason that prevents domestic programmers from participating in open source is not the limitation of technical ability, but the limitation of English level. After studying English for so many years, even if you get the CET-4 and CET-6 certificates, you will find that the dumb English you learned is of no use at all. The poor communication caused by language barriers is a difficult difficulty, but it is far less than the obstacle of lazy thinking caused by the fear of the unknown world and uncontrollable changes in the heart. I have no intention of discussing how to improve one's English level here, but I just want to emphasize that those who have the will can achieve their goals. For a promising programmer, if his mind is open enough and he is full of curiosity and yearning for the unknown field, English is by no means an unconquerable fortress. Moreover, domestic programmers are most worried about listening and speaking, and most of the time, the open source community communicates through written emails.
How to participate in open source

Finally, the following points are for reference only for friends who are interested in open source:

First, almost every open source community provides a Getting Started Guide for novices. Reading it carefully can help you avoid unnecessary detours.

Second , be bold in interacting with the community. If you have any questions, don't think about them by yourself. Just ask them boldly. No matter how simple the questions are, there will always be enthusiastic people to answer them, and no one will laugh at you. Of course, when communicating, you must respect the other party. The email should include basic courtesy and express gratitude for the help of others. At the same time, don't forget to help others.

Third , open source development is somewhat free and undisciplined, without strict plans. Therefore, sometimes, you may feel that your requests are not responded to or met quickly. It is important to note that not all bugs you submit will be recognized, and not all code you submit will be accepted. In such cases, you should explain the reason clearly, and not act on impulse.

Fourth , the code quality of some open source projects is really not satisfactory. This may be due to the uneven quality of the programmers involved in the development and the lax supervision, but it is not all the case. I still remember that I often joked that some functions in the OpenOffice.org code are often so long that you can't see the other end from one end. Gödel's incompleteness theorem points out that any formal system of number theory similar to the one given by Russell and Whitehead in "Principles of Mathematics", no matter how strong it is, is incomplete. There is always a well-formed G proposition that can neither be proved to be true nor false. Therefore, no formal system can completely describe the entire properties of number theory or even mathematics. This is certainly not a perfect conclusion, but on the other hand, it means that the discovery of mathematical truth still depends on the creative wisdom of mathematicians. It can be said that it is a loss in one place but a gain in another. Generally speaking, life always has too many shortcomings, suffering, absurdity, separation, troubles, vanity, sorrow, hesitation, sadness, broken love, mediocrity, ambition but lack of talent, talent but not being appreciated, the illusion of being rich and beautiful, the pain of being short, ugly and poor, etc. On the contrary, it is the bad side that makes the good side more worthy of cherishing. Only those imperfections can achieve perfection. This is a vicious circle of philosophical speculation. The open source computer program developed by the efforts of many people is also like this. Therefore, we need to be patient in everything and cherish it.

Fifth , theoretically speaking, if you want to realize a software function, as long as it is within the scope of the Church-Turing thesis, it can be expressed in computer programming language. At this point, no matter how sophisticated the algorithm and program are, there is actually no difficult and insurmountable technical gap. It can be said that technology is always simple. What you can do, others can do, and vice versa. However, art is infinite. If you want to reach the level of painting like Escher or the level of music like Bach, you can't do it. Of course, computer programming can also be regarded as art, such as the techniques presented in Donald Ervin Knuth's famous book "The Art of Computer Programming". Therefore, the quality of the program and the performance of the algorithm are indeed different. In short, whether it is a company or an individual, there is no need to treat everything as a treasure, and protect it as strictly as the martial arts secrets or Chinese medicine secrets handed down from ancestors, thinking that in this way, you can have what you have and others can't have, which is a big mistake. Therefore, in many cases, contributions to open source will not harm a company's competitiveness, but on the contrary, will enhance the company's competitiveness.

Sixth , contrary to the fifth point, as an independent programmer, you should also fully understand your company's policy on intellectual property rights and never submit code with your company's proprietary intellectual property to the open source community.

<<:  Exclusive interview with Bo Rui Meng Xidong: "Active" APM is closer to local needs in China

>>:  Moxtra Xu Congyi: "Geek" collaboration helps team growth and creates a one-stop communication experience

Recommend

How attractive are nuclear-powered rockets?

With the continuous advancement of manned space t...

Ocean stars, the beauty of the shell

Someone said: "There are as many shells in t...

Strong carcinogenicity! Don't eat this kind of fruit

Expert of this article: Wang Xiaohuan, Doctor of ...

Elegant skeuomorphic progress bar control

Source code introduction: An elegant and fresh pr...

AARRR traffic funnel model|Himalaya FM analysis report!

This article uses the AARRR traffic funnel model ...

A new direction for battery development? Lithium-sulfur batteries

From mobile phones to computers to cars, lithium ...

Windows 10 Mobile's critical bug has been fixed

Last week, Microsoft provided Windows Mobile Buil...