Why do companies and individuals invest in Open Source?
Wikipedia offers a
cart and a small cart of answers to this question. I will not reprint Wikipedia here. I will dwell on only a few models of working with open source. On those that, it seems to me, are either poorly illustrated in popular sources, or not mentioned at all.
')
I will pay special attention to approaches that have appeared relatively recently. Thus, I will fulfill the promise made in the
previous post on the topic of open source - a promise to talk about how to develop Open source.
In the end, you will find several questionnaires (which the stubborn Habrahabr engine does not allow to insert into the main text).
“Just like that” or “not to be lost”
Sometimes people write software to complete a thesis or solve a scientific problem, or for some other auxiliary purposes. If the code is large and useful, the creators may want to make money on it and continue to develop as a proprietary product. For example, it happened once with a
Simics simulator created by Swedish researchers from an academic environment.
However, often the code size is small or the creators do not have plans for commercialization. Then they can put the code in Open Source "just like that."
Most likely, you have repeatedly come across this
anti- business model. I mention it here for two reasons. First, I want to share one interesting example for me. And secondly, I want to offer some “lyrics” on the subject of donation.
First an example. Software, donated to the world without plans to make money, I - like many other developers - use quite often. However, it was only once to thoroughly delve into the code laid out “just like that”. I will tell about this case.
Somehow I needed a client native-library for working with HDFS. HDFS is a file system in
Hadoop . It's okay if you have not heard about it. (However, it is still interesting whether these words are familiar to you. See the questionnaire below). The main point of this story is that Hadoop is written in Java (there are also questionnaires on this subject below), and I needed to get access to HDFS bypassing the Java machine. For this, I found a very smart C library called
Hadoofus .
Apparently, I became its first serious user, because I immediately came across some very significant bugs. I contacted the author, and he instantly fixed everything.
It turns out that a person not only laid out the result of his work for general use, but also is ready to support it completely free of charge. And it responds to third-party requests instantly. Belief in people after such cases is definitely growing stronger.
I corresponded a lot with the author Hadoofus'a. Due to this, I learned that he wrote the library once as a tool for doing his own work. Those. in a sense, its creation is paid for by its employer. However, this does not detract from his willingness to help others.
Above, I promised some more lyrics. I'll hide it under the spoilerIt turns out that there is such a thing - the economy of donation.
Recently I read on this topic an
interesting note written by the deputy. Director of the Central Economics and Mathematics Institute, RAS.
If you believe the author notes, then in the economy of donation is not to talk about "selfish" models. Apparently, for about the same reason that I miss out on Habré after I say that "open source is not just that." Perhaps there is even something good in it. Perhaps this suggests that idealists live on Habré (or maximalist schoolchildren, which is also not bad). Indeed, people spend hours and even days writing good stuff and putting it here. And often completely free. But what can I say? .. I myself spent 3 months on preparing one of the materials. Nobody paid me for it. Even more: I myself spent some money and a lot of time.
But! Due to similar ideological distortions, as the author of the article argues, an important area of ​​research stands still.
What mercenary motives can a donor have?
For example, attention theft. Right now you are reading me, but you could have read Kolobok or Winnie the Pooh. It turns out that I “snitched” your attention with my post. Although, I confess, I did not have such a motive. This is just an illustration.
I think that open source can also be viewed from the perspective of the gift economy. The following hypothetical example comes to mind. You produce goods of type A. You have a competitor who produces goods of the same type. But besides this, the competitor still earns on the sale of software of type B. You do not produce such software. However, you decide to invest in the development of an open version of product B, in order to annoy a competitor. Outwardly, it looks like a gift, because You do not play on the market for goods of type B. However, in reality you are depriving a competitor of a market share in which you do not play. It may well turn out that a competitor is awaiting bankruptcy after that, and he will release you the commodity market A.
I do not know, such schemes turned in reality. But for me it is obvious that the further the development of open source will develop, the more sophisticated models of its use we will see.
Hopefully, the gift economy will receive due development. And we still learn a lot about the "gifts" that we give. It is not necessary that we learn the bad. To learn something good will be doubly nice :)
On this, perhaps, we will finish with the motivation "just like that." As I said in a
previous post , the largest and most interesting projects grow out of a different kind of motivation. But before moving on to them, I will give my very high-level scale of motivations:
- There are a handful of enthusiasts for whom open source is the goal itself.
- There is a much larger group of people who enter Open Source either “so as not to be lost”, or with unclear objectives (“What if you shoot it somehow?”, Etc.)
- And there are people and companies for whom open source is a tool for achieving specific business goals.
There are still a mixture of the first, second and third in different proportions.
For me, the third kind of motivation is the most interesting. About her further and we will talk.
Non-core asset
Often, companies - especially large ones - develop software that plays a supporting role in supporting the core business. Infrastructure applications, such as testing systems, task managers, and code analysis tools, are often included here. There may be higher-level things, like a “accounting system for something” or a graphical interface for “something else”.
To sell such application tools for the company would be a non-core business. However, keeping the code locked up also does not make much sense (unless, of course, it does not contain trade secrets). So there is a direct road to open source. For example, Google did just that with its application called
ThreadSanitizer . This is a tool for finding runtime errors in multi-threaded code. It seems that Google cares about the quality of its code, and therefore was puzzled by the development of the Sanitizer. Trying to make money directly on it for Google would be absurd. But the withdrawal of tula in the open source allows you to attract to its development of third-party users. The more users have an application, the more useful and reliable it can be made.
Promotion of the main product
There are many examples of how open source software is used to promote paid software. We will not dwell here on such examples. Cases when Open source is used to promote non-software products look much more interesting.
There are far fewer such examples. But even fewer cases when it comes to really large Open source projects, around which a developed developer community is built.
However, they are. The most interesting example for me here is Intel.
Intel a few years ago joined the development of the Open source compilers
GCC and
LLVM . Here, for example, a screenshot from the head page of the GCC website. I made it on December 25th of last year.
It is very nice to see on the page of such a popular product as GCC the names of people who work (or worked) in Intel's Moscow office.
However, why is this Intel ???
Here we must take a step towards and first understand the importance of the compiler as a product for the company.
Yes, he has his own compiler. Yes, this compiler costs money. But with all this,
Intel does not earn on compilers . Intel makes money on glands. It is easy to understand from the company's
financial report that the turnover of all Intel software products - and this is far from being only a compiler - does not exceed 4% of the total turnover. If you try to isolate the share of the compiler from these 4%, then it will be vanishingly small.
Maybe the company would like to make money on compilers (who knows ...), but does not earn. And even more. Suppose the aliens arrived, set laser guns at the company's headquarters and factories (and even at the CEO personally) and said:
- If you take money for the compiler, we will burn you.
And you know what? Intel will continue to make compilers. Will hand out them for free. Because the compiler for Intel is a
strategic product. For he helps sell processors.
And this is how- When different processors are compared in terms of efficiency (in any sense, even in terms of power consumption), they are not really compared, but user applications . How economically and quickly they are executed. And this is the merit of not only iron, but in many respects the compiler. Without a good compiler, there are significantly fewer microprocessor positioning options.
- If updates of the processor family are being prepared, it is important that the new functionality is supported from the first day the new product was released.
- It is important that the client, in case of problems with compilation, can get a high level of service. If only third-party developers are involved in developing compilers for your platform, ensure a high level of service is harder
- The compiler allows the client to “enter the house”. Iron is too far from most software products. The compiler is much closer. If users of your - or even someone else's - iron use your software, you have reasons to “look into” them. Because they constantly something breaks or works poorly. Looking at a customer, you can better understand how he lives and what the market needs as a whole. Sometimes even Intel could participate in the analysis or optimization of client software (since Intel already has a team of relevant professionals, compiler developers).
I think now it should be clear why Intel is engaged in the development of GCC. This is a very popular compiler, so the company is struggling to ensure that GCC-compiled applications run on its processors better than others.
With LLVM, the situation is similar. Now this compiler is rapidly gaining popularity. It is already a system compiler for FreeBSD and some versions of OS X. It is used along with GCC for compiling for Android. The official ARM compiler is based on it.


Among the reasons why system software developers are switching from GCC to LLVM - a more flexible license that allows building proprietary products based on the compiler.
Intel from this property can also win. GCC overclocking is a rather complicated and risky exercise. Many improvements can be platform-independent, which means that developers of other platforms will also benefit from them. LLVM allows you to hide all the most "tasty" improvements in the proprietary code. Therefore, from the point of view of commercial companies, it is much more interesting than GCC.
If you speculate, it can be assumed that in the future many proprietary compilers (perhaps even the Intel core compiler) will be built on the basis of LLVM.
(See compilers at the bottom)
Promotion of the main product 2
Another example on the same topic.

Now large cloud providers are investing in the development of open system software and virtualization tools. For example, Google is
involved in the development of
Docker .
The motive of this activity is obvious: the sale of cloud services built on these products.
This is an emerging trend, and then it will only increase. Moreover, in addition to software that allows you to sell the “infrastructure”, cloud providers are likely to start investing more and more in the development of popular user applications. Probably, something like “Cloud-ready open source” will appear, which will have the following properties:
- optimized for a specific cloud infrastructure
- compatible with popular cloud platforms
- integrated with cloud services
- are part of the “Pipeline”, which is sold as a separate service (or offered for free, and customers pay for the computing resources used)
- your option?
Revive the "rotten" product
In my opinion, this is one of the newest scenarios. At least, large companies began to resort to it only two or three years ago.
The idea here is as follows. You have a product called “rotten product”, in the development of which you have invested a lot of time and effort. However, it is not sold as well as you would like.
And the product is not necessarily bad. It can be qualitative, useful, but for some reason, unclaimed in the market.
And here you decide to breathe new life into it. Lay out in the open source. Preferably, under a different name, something like “fresh product”. You hope that you will manage to build a wide community of programmers and users around your creation, and they will help you make it desirable for the market. Promoted to niches that you never even dreamed of.
What is your hope based on? On the observation that many open source products — such as Hadoop — are developing at an explosive pace at the expense of a large and literate community.
Suppose now that your idea has fired. The product was canceled. However, how to sell it now?
It turns out there is a way. You “pack” it in a certain way, already under the third name “super product”, and sell it. There may be many reasons why the market may want to buy it. It all depends on the "packaging". This may be a ready-made software and hardware solution. Or solution extended by proprietary modules. Or the decision added with service. And much more…
Having changed myself, I will not give specific examples here. For my most interesting projects known to me work my friends from different companies. Not sure that they would be happy to see the names of their offspring in this context. However, if you know such examples, please write about it in the comments. It will be interesting to track the fate of such projects.
For the future
The ways in which companies are involved in the Open source, are diverse and not always amenable to clear classification. Often open source is “somewhere on the side,” or even a by-product, to which the company agrees for some deferred benefit.
An example of this is Google’s education activities under the name GA4GH -
Global Alliance for Genomics and Health . The Alliance was created to develop standards and reference software for the exchange of genomic and clinical data.
But here it is necessary to make a small lyrical digression.
Over the past 25 years in the genomics and related fields, many scientific and technological breakthroughs have been made (see the polls below). However, most of the achievements until recently had a "laboratory" character.
But some time ago, the world realized that genomic technologies had matured before commercialization and introduction into clinical practice. Starting in 2013, IT companies began to realize that they were facing a multi-billion dollar market that they had to somehow enter. It was clear that the one who will make it in time and correctly will break a big sum. It was not clear (and still, to some extent, remains) how to enter there.
Nevertheless, it was necessary to do something. And they started to do. Now only a lazy one has not had a major project in the field of biomedicine, or even a few. SAP, IBM, Microsoft, Intel, even Yandex - everything is already there.
No one has yet broken the really big sum. Companies have to dodge and choose the most promising areas of activity.
GA4GH is one of the directions of Google. Google realizes that the Alliance has turned out big and international. Therefore, there is a high probability that something can spill out of it. So, it is necessary to enter it at an early stage. To influence the standards in their favor, to promote their technologies, to have access to international expertise and, of course, to use the achievements in their products. For example, in the
Google Genomics platform.
The software that is being created by the forces of the alliance is a great opportunity to “play around” with the implementation of the standards being developed in the eyes of experts from various fields. And a great start in order to then pack it "as it should," or even create a proprietary implementation.
On it, perhaps, we will finish with models. We will follow the emergence of new and the development of old ones. Don't go to the fortuneteller - we are waiting for exciting schemes!