Great bikes, or why you sometimes need to write from scratch
Not invented here - a source of innovation and a reason for success?
I can’t give you a recipe for success, but I can give you a recipe for failure for sure: every day and every minute do everything as others do.
Very often, companies oppose the "not invented here" syndrome . As a project manager, I understand perfectly well such considerations. Bicycles are extra costs, extension of development time, complexity and high cost of product support in the future, dependence on bicycle developers and all that jazz.
But as a programmer, I clearly understand that without bicycles there will be no innovation. And without innovation, there will be no breakthrough technological solutions, new projects. There will be only the same projects and applications assembled from the same set of cubes that cannot compete with each other at all (unless someone will sue someone and “wring” the market).
It is no coincidence that therefore Google allocates 20% for free creativity, and this gives rise to such magnificent rethinking of old things as the Gmail mail client.
But first things first. In this article I want to briefly talk about the three "bicycles" that have revolutionized their field.
Bicycles and innovations often go side by side - sometimes literally
Ford Model T
If I listened to my clients, I would have to give them a faster horse
Henry Ford, an outstanding entrepreneur and inventor.
At the beginning of the 20th century, automobile production was manual. Each operation was performed individually. Also, cars were very expensive, because there were many different settings in the “config” of the assembly, and this led to costs.
Ford changed the situation radically, going against the prevailing views, and invented a bicycle. Firstly, he threw away all additional options, saying the well-known phrase “any client can get a car painted in the color that he wants - as long as this color is black”.
But more importantly, he was the first to patent and use an industrial assembly line for assembly, increasing production efficiency hundreds of times. What is told in the famous book "" My life, my achievements. ".
Ford's ingenuity made the luxury car an ordinary vehicle affordable to the American middle class.
However, not all attempts are successful and can just go, not to mention take-off.
Google is an example of a fantastically successful corporation combining product innovation with commercial success.
However, in the early 2000s, when they were just starting out, the situation on the search engine market was completely different. Today, Google is a leader and a monopoly. And then Yahoo, Altavista, Hotbot, Lycos and a number of other search engines reigned, which only bison of the Internet now remember (I wanted to say, the ancient is only fido, but that would be a lie)
It would seem worthwhile to reinvent the wheel when there are so many successful corporations on the market. However, Sergey Brin did not think so, on the contrary, he was actively interested in the subject, he made it the first object of his scientific research. And then, together with his future partner, Larry Page wrote a prototype of a search engine within the university, from which then a super-successful company emerged that survived the collapse of the dotcoms and defeated all its competitors.
Google recruited and is picking only the best, and maintains a spirit of enthusiasm and creativity, which is incompatible with the ban on the creation of their bikes. 20% of the time allocated to employees to create their projects, and this has paid off more than once.
In the fall of 2001, I had the idea to write a lighter and more powerful web server than Apache. At that time there were already other similar servers, but they all did not know how to proxy, they only gave static. They had one more common drawback - they worked in one process, and, accordingly, to scale them, for example, on a dual-processor machine was unrealistic.
At that time I already had pretty good experience working with Apache - both as a system administrator and as a programmer. Two written modules added to my knowledge: I had to look at the source codes of Apache and understand how everything works there. Therefore, a lot of things in nginx ideologically migrated from Apache. Not code, but ideology, all nginx code was written from scratch.
From the interview outstanding developer Igor Sysoev
There were no any variations of the web server on Habré - both on PHP, and on bash, and almost on Brainfuck (hmm, maybe it wasn’t necessary? It is necessary to check! :)).
But really serious developments are extremely few. Indeed, in the field of web servers, it would seem that everything has been decided a long time ago - there is Apache tested over the years, there are all sorts of Tomkats for Java, for MS there is its own IIS, in general, choose it - I do not want to. And undertaking to develop a web server that in the future will not just bypass apache, but even supersede it in some places (many people put nginx + php-fpm without Apache) - this is not just impudent, it is simply unheard of!
But, nevertheless, the bike was written, and achieved impressive results ( 100 thousand compounds, Frya, nginx, oil, 2007 ).
The words of the outstanding innovator are still relevant today.
% name of your project%
Why all these stories? It may seem to you that writing a bike is superfluous.
The bosses can successfully brainwash that you don’t need to write your components, you need to take everything ready.
Friends say that 10 frameworks (servers, encoders, search engines, archivers, rovers collected, etc.) have already been written, and that your idea does not make sense.
It all makes no difference if you are truly an Inventor. Not necessarily every day, but once a week devote to creativity. Let it be a day off, or evening of every day.
Find what you like. And create something of your own, new, that can be shown to the world. After all, if everyone will collect products from Lego blocks and copy from each other, who will move the world if not the inventors of bicycles?
Invent it all again!
upd: in the comments I saw complaints about the lack of a definition of "bicycle". As is known, a general definition of a unique does not exist. I will give my own.
So - by bicycle, in the article I mean writing from scratch my solution for a certain range of tasks, when there are already someone else's solutions that have solved these problems. And I don’t make any connections with quality - a bicycle can be either super-successful or just so that you want to cry looking at it (there are more second ones).
There is no doubt that nginx is a bicycle in this sense, no - it is a web server, albeit excellent in architecture and containing new ideas. But already __ there were__ web servers, and yet Sysoev wrote nginx from scratch, for which many thanks to him and a deep bow. And search engines were already up to Google, and cars were also made up to Ford.