"Open source" is what, can eat it?

Source: Internet
Author: User


Talking about "open source", I'm sure you can say that many of the very hot open-source products at the moment are Linux, MYSQL, Mangodb, Memcached, Redis, JQuery, Hadoop, Android ... and even Microsoft, who has been hostile to open source, has embraced " Open Source: ASP. Open source jquery as the default JS library, ASP. NET MVC open source, support mono (can be seen as "open source. Net") development, embedded systems, open source. To know that Microsoft has "forbidden to participate in any open source project" as an employee specification, it can be seen that "open source" influence and role has become increasingly large.

But many people have misconceptions about "open source":

    • Someone posted a blog on the development of their own software, the bottom of the comments on someone shouted "strong demand for open source";
    • Someone on the blog to develop a product of their own source code published, the title is "xxx some open source!" ”;
    • Some people write a blog on a non-open source product and the same kind of open-source product comparison, the bottom of the comments also often say "open source to you have any impact, all the source code you can see, but you have modified these source code?" ";
    • Some people think that "open source is free";
    • Some people say that "open source software is developed by netizens, quality is not guaranteed, or commercial large companies to develop software assured";
    • Some people say, "Do not dare to use open source things, source code everyone can see, the system of loopholes are not seen?" ”。

So what is "open source"? In layman's words, "open source" is the "function of everyone to improve together, bug everyone to change together" crowdsourcing collaborative development model. Take the most famous open-source operating system Linux, for example, "The father of Linux" Linus developed the initial version of Linux, and then put Linux in the form of open source to the open source community to co-maintain. Without a large company like Microsoft's Windows team to maintain the Linux operating system, all enthusiasts and vendors of the open source community develop and maintain Linux:

    • Some math cow a feel that Linux should have scientific computing capabilities, so they have developed a scientific computing software package submitted to Linux, so that Linux has a scientific computing software package;
    • Another person B used a developed by the scientific software package, found that there is also a need for a function of their own, to add this functionality to the Scientific computing software package, and then the code submitted to Linux;
    • Microsoft discovered the need for Linux to increase access to the Windows file system, the development of Linux access to the Windows file system features, submitted to Linux, so that we can use Linux to access the Windows file system;
    • Novell wants to enable. NET-developed programs to run under the Linux platform, developing open source mono;
    • Unity uses mono to develop a cross-platform game engine, Unity3d, who discovered the improvement point of Mono, modified the mono code, and submitted the revised Code back to mono;

Linux developers, such as Microsoft, Novell, Redhat and other large companies, there are small companies and non-profit organizations, a lot of individual enthusiasts, some contributors may have contributed tens of thousands of lines of code, some contributors may only submit a few lines of code Some contributors have added important functionality, and some contributors may have just changed several bugs ... Perhaps the contribution of individual organizations or individuals is small, but thousands of water droplets are converging into the sea, achieving such great open source products as Linux.

If there is no open source, then all the functions of the system will have to wait for its developers to provide, if there is no open source, the system bug can only wait for the developers to repair, because Windows is not open source, so unless Microsoft provides, otherwise we can not put windows into smart TV, because Linux open source, So we can migrate Linux to a mobile phone, because the. NET Framework is not open source (true), so it is not possible to run. NET programs under Linux, and because Mono is open source, we can use mono to develop Android, C#/.net iOS apps (Monotouch is using c#/. NET development of iOS app technology, Mono for Android is using c#/. NET to develop technology for Android apps, while Unity3d is using C # to develop game development techniques across iOS, Android, Windows and other platforms; because Android is open source, it doesn't need to be offered by Google, Someone has ported Android to the X86 architecture CPU so that we can install the Android operating system on the x86 PC.

the biggest charm of open source lies in not relying on a manufacturer, the public can modify the code to meet their own needs, thousands of "their own needs" to converge into a great product, any violation of the idea of open source is "pseudo-open source."

If you just can "see the code" is not really open source. A person to develop their own software source code published on the Internet, but did not through git, SVN, etc. to manage the source code, and no one responsible for the other people on the software to compile the revision, management, can only be interested in downloading the "self-modify their own" and did not contribute to the community, Therefore, it does not reflect the community value of open source. For example, Microsoft's release of the. NET Framework source code is the Microsoft Reference License protocol, the most obvious feature of this protocol is "allow users to see the source code, but not to modify and distribute, only for reference", so it does not count as the true meaning of open source. Microsoft's ASP. NET MVC is based on the Apache protocol, "everyone in the community can participate, provide feedback on checked-in code, bug fixes, new feature development, and can build and test the product using the latest version of source code and tests built daily" so that the ASP. MVC is the real Open source project.

In my case, many years ago, I found an Eclipse anti-compilation tool jodeeclipse very useful, but after upgrading to the new version of Eclipse, this jodeeclipse will not be usable. So I downloaded the jodeeclipse source code, changed the code so that it could run under the new version of Eclipse, submitted the revised Code and released a release, and later found out that a lot of people were using the new version I released. Another example of the first two years I used a software (the name has been forgotten), found that it does not have a Chinese version, so I based on its multi-lingual implementation mechanism to create a Chinese language package, and submitted to the new version of the Chinese version.

Open source is a so-called "crowdsourcing" mode of work, because we have the open source of such a wonderful technology world. Used to be incompatible with open source. Net community has now become rich and colorful because of the idea of open source, Log4net, Json.NET, Lucene.Net, Npoi, Spring.net, NHibernate, ASP, etc. mature open-source technology, naturally needless to say, The Mono system is more than just a shine. NET developers have a cross-platform addiction, including using mono to run ASP. NET Web site, open source game development engine Monogame, and mono-based commercial engine mono for Android/monotouch/unity3d. Of course more hope. NET developers do not confine their vision to the Microsoft community, MYSQL, Memcached, Redis, Nginx, Linux, MongoDB and other excellent open source technology can also be used in the. NET technology community in the solution (refer to an article I wrote earlier which Guy says "website goes." NET "? 》)。

Embrace open source, take advantage of open source, contribute to open source, let our technology life more colorful!

---from: Yang Zhengko csdn Blog

"Open source" is what, can eat it?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.