Most Linux advocates are trying to defeat Linux against criticism with the idea in mind to convince the other side what the advantages of Linux are. The problem with this argumentation is that a potential alternative to Linux is defined as the wrong choice and it's ignored. The better idea is to understand why somebody argues against Linux.
Linux is the legitimate predecessor to Unix. And Unix was invented as an operating system. Exactly this is the dominant reason why the world doesn't like the concept very much. The reality is, that the concept of an operating system is unusual for the computer industry. By definition, a standardized operating system is able to run on multiple hardware, for example smartphones, desktop PC and server and it's provides to the programmer an abstract platform on which he can write software. Exactly for these features Linux is hated by Apple, Microsoft and IBM.
But isn't Apple provides an operating system itself? No they don't. Mac OS X is not an operating system but it is something different. The reason is, that Mac OS X doesn't run on multiple hardware and it doesn't provide the programmer an abstract platform. Instead, the potential developer has to install the Xcode development plattform. The main idea behind xcode is, that the number of programmers is reduced, the allowed programming languages is smaller and that Apple controls what the standard is. In case of Microsoft the situation is the same.
Instead of arguing pro or contra Linux we have to argue for or against an operating system. Does it make sense to invent a middle layer between hardware and software? Has the middle layer run on different hardware? Is there a need that the programmer can choose it's preferred language? If somebody argues against an operating system he will also criticize Linux.
Let us describe a world in which no operating system is available. If somebody likes to program a computer he has to ask the manufacturer of this computer. The software is written for a certain machine in mind, for example only for the Intel based cpu, which has a unique amount of register. The software won't run on a different platform, for example the ARM CPU. This make the costs for migrating the software to different computer more expensive. It slow downs the development of new programs and will increase the costs for the enduser. Who will profit from such a usecase? The surprising answer is, that in today's computing world lot of companies profit from it. If software development costs more money, than the profit is higher. It's the same situation like in the time before the spinning jenny (by James Hargreaves in England) was invented. The clothing manufactoring companies have no interest in modern technology because it will destroy their traditional business model. An operating system, especially a highly powerful one, is some kind of innovation which increases the productivity. And exactly of this reason, Linux is boycotted from everywhere. Especially from large companies how have a long history. They have understand what an operating system and they are sure, that they doesn't want it.
History of operating systems
In the past, it was common to develop hundred of different so called operating systems. Even if they were called with the term, in most cases it was an improved BIOS Firmware. The best example is the kernel for the Commodore 64 which runs only on that machine. The early IBM/360 and the Mac GUI can be treated as well. It seems, that the different companies had a great need for developing endless amount of system software but only a little attempt to develop a standardized operating system.
The typical firmware in the past, runs exactly on one computer type, was limited to a certain programming language and restricted the amount of programmer who are able to write software for it. From an economic standpoint this development is surprising because a standardized operating system which runs on many plattforms and which is open to everyone would reduce the costs for software development drastically. And exactly because of this reason, a standard OS was never invented. That means, the current software industry loves a highly unproductive world in which the wheel is invented twice.
What Notebook manufactorer or Game console producer are doing very often is to produce a unique operating system. Not because there is a technical need for doing so, but because this is equal to the selling point. A non standardized firmware helps to lockin the customer, gives the hardware company are greater amount of control makes the resulting product unique. That means, the notebook in the first generation has a different firmware than the notebook in the second generation. And the customer has to pay additional money because he has to buy all the software again. The modern computer industry isn't interested in programming advanced software, but they want to earn money.
Let us describe the situation from an economical point of view. How much is Linux more productive / more cost effective than a propriatery firmware which like Mac OS X? The costs are 10x smaller and more. That means, the same software can be produced with less man power, has less errors and will become 10x more affordable. The comparison with the Spinning jenny makes a lot of sense. Linux (or any other operating system) will improve the productivity drastically and this makes the former software development obsolete.
Alternatives to Linux
Suppose a hardware company doesn't like Linux very much. What can he do if he want's to do exactly the opposite? The first thing is to invent a new kind of CPU which isn't compatible to the x86 standard. Then he creates a new laptop around the cpu and programs on top of the system a BIOS and a firmware. This is able to execute only software which was written for this unique hardware.
From a technical point of view, all theses design decisions are useless. On the other hand the chance is great that he is able to sell the product to some customers, because what the company is doing is accepted widely. If he explains, that the all the parts of the notebook like the cpu and the firmware are handmade the company is able to ask for a higher price. If the customer at the other side is not an expert and is happy if he can get access to a computer at all, he will pay the higher price.
The decision to use a new cpu, program a new firmware which is not an operating system, and allow only certain software to run on the machine are the best practice method if somebody likes to resist against technology. Mostly, he is selling a story in which any kind of standard is declared as evil and an operating system isnt mentioned at all. Instead the plot is about happy customers who get access to a PC because they are rich enough to spend thousands of US Dollar for a handmade product. Such a laptop is equal to a custom tailored man suit which wasn't manufactured on efficient machines but produced with hundred of man hours without any modern technology. The underlying idea that neoluddism makes sense, that a computer is an expensive good and that the own system is unique from other products.
Weakness of LInux
Linux has some features which can become problematic under certain constraints. One of the disadvantages is, that a single program has the tendency to become executable under any computer hardware. That means, the same piece of sourcecode will run under x86 PCs, Smartphones and server operating systems. All what is needed is a simple make command but sometimes, the binary file will run out of the box. Another disadvantage of Linux is, that Linux software has the tendency to produce a small profit or no profit at all. That means, it is impossible to sell a game for 100 US$ to the Linux community. The enduser is not trained to pay such price. The only thing what makes sense to Linux users is, if the game is provided for free or for a little amount of money which is 0.99 US$ for an AAA title.
Both disadvantages are part of inner structure and can't be overcome. If the goals are the opposite, than Linux is a bad choice.