It is a quite common belief among developers that technical properties of some solution (tools, libraries, frameworks, OS, clouds, etc.) are the main driving factors when some solution is chosen for particular project/application/etc. If to assume that this belief is correct then it's quite logical to make assumption that popularity of some solution is directly related to its technical quality/properties.
Nevertheless, it always worth to keep in mind that behind every single significant technology we can see a company or group of companies. For these company/companies popularity (aka "market share") of this particular technology directly affects their money. Needless to say that these company/companies use all necessary marketing tools to increase popularity of their products, including all forms of direct and indirect advertising.
Once we realize this naked truth, it gets quite simple to understand why quality of particular technology has quite low relation to popularity. If technology is outdated, poorly designed and even worse implemented - just put more money into advertising, sponsor more articles, provide more free training courses, etc., etc. After all, if technology causes harm and/or expensive in long run, this is not your problem anymore.
Some developers to whom I explain things above, arguing that "we're smart enough to filter out marketing stuff". This is true, but only partially. We're really smart, after all this is our job. But this does not mean that marketing stuff does not affect us. Popularity creates dead cycle: technology is popular -> most developers are familiar with it -> teams tend to choose technologies with which most people have experience -> technology is popular. As a consequence we have popular technologies which killing innovation, preserving bad practices and design approaches, spawning whole generations of developers which accept this as a norm.
Top comments (0)