Understand Open Source: Usage Models

    Open source


    Why are companies and individuals investing in Open Source?



    Wikipedia offers a cart and a small cart of answers to this question. I will not retype Wikipedia here. I will dwell only on a few models of working with Open source. For 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 the development paths of Open source.

    At the end you will find several questionnaires (which the stubborn Habrahabr engine stubbornly does not allow to insert into the main text).


    “Just like that” or “so as not to be lost”


    Sometimes people write software in order to complete a thesis or solve a scientific problem, or for some other auxiliary purposes. If the code turns out to be large and useful, the creators may want to make money on it and continue to develop as a proprietary product. So, for example, it happened once with the Simics simulator , created by Swedish researchers from the academic environment.

    Simics


    However, often the code size is small or the creators have no plans for commercialization. Then they can put the code in Open Source "just like that."

    Most likely, you have already come across this anti- business model many times . I mention her here for two reasons. Firstly, I want to share one interesting example for me. And secondly, I want to offer a little "lyrics" on the topic of gift.

    First an example. Software, given to the world without plans to make money, I - like many other developers - use quite often. However, thoroughly delve into the code laid out "just like that", had only once. It is about this case that I will tell.

    Somehow I needed a native client library to work with HDFS. HDFS is a file system in Hadoop. It's okay if you haven’t heard anything about it. (However, it’s still interesting to know 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 topic below), and I needed to access HDFS bypassing the Java machine. To do this, I found a very nimble C library called Hadoofus .

    Apparently, I became her first serious user, because I immediately came across several very significant bugs. He contacted the author, and he instantly fixed everything.

    It turns out that the person not only laid out the result of his work in general use, but also is ready to support for free. Moreover, it responds to third-party requests instantly. Faith in people after such cases is definitely growing stronger.

    I corresponded a lot with the author of Hadoofus. Thanks to what he learned that he wrote the library once as a tool for his own work. Those. in a sense, its creation was 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 spoiler
    It turns out that there is such a thing - the gift economy.

    Recently I read an interesting article written by the deputy on this subject . Director of the Central Economics and Mathematics Institute of the Russian Academy of Sciences.

    If you believe the author of the note, then in the gift economy it is not customary to talk about "self-serving" models. Apparently, for about the same reason that I’m minus the Habré after I say that “open source is not just like that”. There is probably something good in this. Perhaps this suggests that idealists live on Habré (or maximalist schoolchildren, which is also good). Indeed, people spend hours and even days to write good material and put it here. And often completely free. But what can I say? .. I myself once spent 3 months preparing one of the materials. Nobody paid me for this. Even more than that: I myself spent a little money and a lot of time.

    But! Due to such ideological distortions, as the author of the article claims, an important area of ​​research is in place.

    What selfish motives can the donor have?

    For example, theft of attention. Now you are reading me, but you could read “The Kolobok” or “Winnie the Pooh”. It turns out that I "stole" 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 looked at from the perspective of the gift economy. The following hypothetical example comes to mind. You produce type A. You have a competitor that produces the same type of product. But besides this, the competitor also earns on selling type B software. 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 the competitor. Outwardly, it looks like a gift, because you do not play in the market for type B. However, in reality you are depriving a competitor of a market share in which you are not playing. It may turn out that after this the competitor will face bankruptcy and he will free you the market of goods A.

    I don’t know, such schemes were being turned into reality. But for me it is obvious that the further open source will develop, the more sophisticated models of its use we will see.

    Let us hope that the gift economy will develop properly. And we still learn a lot about the “gifts” that they give us. It is not necessary that we learn the bad. Learning something good will be doubly nice :)

    This, perhaps, ends 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 motivation scale:
    1. There are a handful of enthusiasts for whom open source is the goal.
    2. There is a much larger group of people who go to Open Source either “so as not to be lost”, or with obscure goals (“What if it shoots itself somehow?”, Etc.)
    3. And there are people and companies for whom open source is a tool to achieve specific business goals.

    There are still mixtures of the first, second and third in different proportions.

    For me, the third kind of motivation is the most interesting. We’ll talk about it further.

    Non-core asset


    Often companies - especially large ones - develop software that plays a supporting role to support the core business. This often includes infrastructure applications, such as testing systems, task managers, and code analysis tools. There may be higher-level things, such as a “accounting system for something” or a graphical interface for “something else”.

    Selling such tool applications to a 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). Such tulam has a direct road to open source. For example, Google did just that with its app 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, which is why it was puzzled by the development of the Sanitizer. Trying to make money directly on it for Google would be ridiculous. But the conclusion of the tool in open source allows you to attract outside users to its development. The more users the application has, the more useful and reliable it can be made.

    Main Product Promotion


    There are many examples of how open source software is used to promote paid software. We will not dwell on such examples. The cases when Open source is used to promote NOT software products look much more interesting.

    There are much fewer such examples. But even fewer cases when it comes to really large Open source projects around which a developed community of developers is built.

    However, they are. The most interesting example here seems to me to be Intel.

    Intel a few years ago was involved in the development of Open source compilers GCC and LLVM . Here, for example, is a screenshot from the GCC website homepage. I made it December 25 last year.
    Gcc contributors

    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 you need to take a step to the side 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 work on compilers . Intel earns on pieces of iron. From the company's financial report it is easy to understand that the turnover for all Intel software products - and this is not only a compiler - does not exceed 4% of the total turnover. If you try to isolate the share of the compiler from these 4% percent, then it will be vanishingly small.

    Maybe the company would like to make money on compilers (who knows ...), but it doesn't. And even more than that. Let’s say the aliens arrived, installed laser guns at the company’s headquarters and plants (and also CEO in person) and said:
    “If you take money for the compiler, we will incinerate you.”

    And you know what? Intel will continue to make compilers. Will give them out for free. Because the compiler for Intel is a strategic product. For he helps sell processors.
    And so how
    1. 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 a merit not only of iron, but also of the compiler in many ways. Without a good compiler, there are significantly fewer microprocessor positioning options
    2. If you are preparing updates for the processor family, it is important that the new functionality be supported from the first day of the release of the updated product
    3. It is important that the client, in case of compilation problems, can get a high level of service. If only third-party developers are developing compilers for your platform, it’s harder to guarantee a high level of service
    4. The compiler allows you to "enter the house" of the client. Iron is too far from most software products. The compiler is much closer. If users of your - or even someone else's - hardware also use your software, you have reasons to “look” at them. Because they constantly break something or work badly. Looking at a client, you can better understand how he lives and what the market as a whole needs. 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 it should now be clear why Intel is developing the GCC. This is a very popular compiler, so the company is fighting to ensure that its processors compiled with GCC run better than others.

    With LLVM, the situation is similar. Now this compiler is gaining popularity. It is already a system compiler for FreeBSD and some versions of OS X. It is used along with GCC to compile for Android. The official ARM compiler is based on it.
    GccLLVMAmong the reasons that system software developers are switching from GCC to LLVM is a more flexible license, which allows you to build proprietary products on the basis of the compiler.

    Intel can also benefit from this property. Overclocking GCC is a rather complicated and risky task. 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 "tidy" improvements in the proprietary code. Therefore, from the point of view of commercial companies, it is much more interesting than GCC.

    If you speculate, then we can assume that in the future many proprietary compilers (perhaps even the Intel core compiler) will be built on the basis of LLVM.

    (See the questionnaire on compilers at the bottom)

    Main Product Promotion 2


    Another example on the same topic.

    DockerLarge cloud providers are now investing in the development of open system software and virtualization tools. For example, Google is involved in the development of Docker .

    The motive for such an activity is obvious: selling cloud services built on these products.

    This is an emerging trend, and further it will only intensify. Moreover, in addition to software that allows you to sell the "infrastructure", cloud providers are likely to begin to invest 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 is offered free of charge, and customers pay for used computing resources)
    • your option?

    Revive a “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 does not sell as well as you would like.

    Moreover, the product is not necessarily bad. It can be of high quality, useful, but for some reason unclaimed in the market.

    And then you decide to breathe new life into it. Spread in Open source. It is desirable, under a different name, something like "fresh product". You hope that you will be able to build a wide community of programmers and users around your brainchild, and they will help you make it desirable for the market. Promoted to niches that you haven’t even dreamed of.

    What is your hope based on? It has been observed that many Open source products - such as Hadoop - are developing explosively at the expense of a large and competent community.

    Suppose now your idea has shot. The product turned out to be excellent. 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 hardware-software solution. Or a solution enhanced by proprietary modules. Or a solution supplemented by after-sales service. And much more…

    Having changed myself, I will not give specific examples here. For my friends from various companies are working on the most interesting projects that I know of. Not sure if they would be happy to see the names of their offspring in such a context. However, if you know such examples, please write about this in the comments. It will be interesting to track the fate of such projects.

    For the future


    The ways that companies get involved in Open source are diverse and not always clearly categorized. Often, open source code is “somewhere on the side” or even a by-product at all, for which a company agrees for the sake of some delayed benefit.

    An example here is Google’s educational activities called GA4GH - The Global Alliance for Genomics and Health . The alliance was created to develop standards and reference software for the exchange of genomic and clinical data.
    GA4GH

    But here a little digression should be made.

    Over the past 25 years, many scientific and technological breakthroughs have been made in genomics and related fields (see the questionnaire below). However, most of the achievements until recently had a "laboratory" character.

    But a few years ago, the world realized that genomic technology was ripe for commercialization and implementation in clinical practice. Since 2013, IT companies have begun to realize that they are facing a multi-billion dollar market, which must somehow enter. It was clear that the one who did it on time and correctly would hit the big jackpot. It was incomprehensible (and still, to some extent, remains) how to enter there.

    Nevertheless, something had to be done. And they started to do. Nowadays, only a lazy one has his own large-scale project - and even several - in the field of biomedicine. SAP, IBM, Microsoft, Intel, even Yandex - everything is already there.

    No one has really hit the big jackpot yet. Companies have to dodge and choose the most promising areas of activity.

    GA4GH is one of Google’s destinations. Google realizes that the Alliance has turned out large and international. Therefore, it is highly likely that something can spill out of it. So, you need to enter it at an early stage. In order to influence the standards in our favor, promote our technologies, have access to international expertise and, of course, use the best practices in our products. For example, in the Google Genomics platform .
    Google genomics

    The software that is created by the alliance is a great opportunity to "play around" with the implementation of the developed standards in front of experts from different fields. And a great reserve for later packing it “as it should”, or even creating a proprietary implementation.

    On this, perhaps, finish with the models. We will follow the emergence of new ones and the development of old ones. Do not go to a fortuneteller - fascinating schemes await us!

    Only registered users can participate in the survey. Please come in.

    Do you know Hadoop?

    • 4.5% Yes, I even use it 14
    • 3.5% Yes, but it is hopelessly outdated. I use more modern means 11
    • 62.7% I heard, but I do not use anything like it 192
    • 29% Not familiar with Hadup 89

    Apache Hadoop is fully implemented in Java. Do you find this a performance issue?

    • 16.6% Not at all 47
    • 16.9% Absolutely. Such things must be written with lower-level tools 48
    • 25% For the most part, no. But some things (for example, input-output, i.e. HDFS) would be better written with lower-level tools 71
    • 41.3% I don't care at all 117

    Which compiler do you use? (Choose one option - the main one)

    • 33.7% GCC 112
    • 6.3% LLVM 21
    • 0.3% ICC, ICL 1
    • 15.6% Microsoft 52
    • 1.5% Other native code compilers 5
    • 37.6% I do not compile into native code because I program in Java, Python, etc. 125
    • 4.8% I don’t write code 16 at all

    How do you feel about the latest advances in genomics?

    • 20.4% I am very happy with them 60
    • 1% I'm afraid of them 3
    • 10.8% I'm glad and afraid 32
    • 64.6% And what is genomics? 190
    • 3% Other 9

    Also popular now: