Linux's biggest problem isnt the lack of applications. It already has the apps for 99% of consumers.
Linux's 3 big problems are
1: public image. People think linux is all command line. Despite the likes of mint and ubuntu being able to do most stuff without terminal, people still think linux is some black box with no rules.
2: lack of user friendliness. Part of the reason #1 exists is that it it still partially true. You have to put in PPA's off of google, through terminal, to get the latest video drivers (and dont get me started on the dismal quality of old intel video drivers or AMD drivers for anything that isnt GCN 1.4). New hardware still needs fussing with terminal to make some oddball hardware work properly. Mounting a secondary drive for data storage, navigating the file system, restoring after a bad update, all these things are far more user friendly on windows then they are on linux. The issue is linux is geared to professional use, and as a result it has never truly caught on with end users.
3: fragmentation. The fragmentation of different drivers, kernels, software, PACKAGE MANAGERS (seriously why does linux need 6 different package managers that all do the same thing but use different commands?) ece. This fragmentation makes linux slow to adopt some new changes, like how long it took to get openGL 4 support on intel hardware, getting newer drivers out, the arguing of what will replace X11, ece. Arguable a lot of this wouldnt be an issue if, say, debian was the core of every distro. But linux doesnt work that way. so you end up with tons of distros all doing the same work at the same time, but for different distros, resulting in lots of wasted time making the same fix over and over again.
This is something MS got right. It's closed source, single player nature allowed MS to rapidly adapt to changing requirements and to keep it's OS consistent with itself. Which they miraculously screwed up with 8, and made worse with 10.