There is a number of big issues, but not all of them is known.
If your looking at the Kernel only... The list would be...
The absolute biggest would be that there is No stable Driver API between kernels. The Driver API constantly breaks between releases, and this drives away Device makers that wish to support linux. Most device makers want to write a driver once, and then expect it to work for the major version. A Good example of this would be to write a driver for linux kernel 2.6.x where the driver binary would work up until at least version 3.0.0. However, as it stands now the drivers constantly have some form of api breakage between kernel releases.
ACPI/Power Management issues taking battery life from consumer laptops.
Microsoft, and the UEFI Secure Boot. Vendors are likely to support only Microsoft and lock out anything else.
If your looking at Graphics drivers:
Constant fighting between graphics drivers. It's impossible to have a system configured to have a mix of graphics cards without serious technical knowledge. Mixing and matching the Following graphics cards are guaranteed to have major problems arise.
Radeon Series ( Open Source Driver, Current )
Radeon series ( FGLRX/Closed Source driver, Current)
nvidia (Open source, nouveau )
Nvidia (Closed Source, Any model)
Switching between graphics cards without modifying Sessions with ease. For example, I would want to be able to Switch from the integrated graphics card to the dedicated graphics card when I play games, but when I am done, Switch back to the integrated to save power.
Incomplete device Support. No support for OpenGL 4.x in open source drivers.
If your talking about Software and Open Source in general, the issue is below...
Software Patents that prevent implementation of Specifications. For example Mesa had a lot of issues with the patents over the S3TC patents
lack of commercial video games ( Like Unreal Tournament 3, Halo, etc ) being Released natively on linux. Iinstead these games are increasingly being released on Mac OSX using libraries that are cross platform. Generally Speaking, This is a major issue because a lot of these games use libSDL, OpenAL, OpenGL, and a few other libraries that are also on linux.
Digital Rights Management demands by major content creators/providers. This on It's own is inherently incompatable with GPL, but is manditory if you want anything to do with consumer media ( Video Games, eBooks, Blurays, DVDs, etc). This is also why there is no decent HDMI capture cards that work on linux that users would want to use. For this, A good example would be wanting to capture a high definition stream of a video game you are playing on a Playstation 3, Xbox 360 or other major console.
Even though this is not Linux Specific, it is key... The GPL Compliance is abismal, and companies within china are usually the main instigator. This issue will only increase, and any action to corect this will only hinder linux overall because it'll scare companies away. While I mention china, there are also amarican companies that develop and release successful products that use Linux ( for example, Android tablets and routers) and then fail to comply with the basic license agreements involved. In any case, If you compare Linux and most other Open source products to the closed source alternative you wind up with a reliable comparison of the Open source product being a Reliant Robin, and then the Closed source product could be a Lamborghini Diablo.
What made me put Windows in addition to Linux on my (convertible) tablet pc: Handwriting recognition (both in quality and in the number of supported languages), and there doesn't seem to be anything similar to Onenote. And using it I noted that even Intel's open source driver is much slower than the windows driver (but at least power usage is pretty similar).
I would say that the biggest problem is the common belief that Linux is "hard to learn". You know how to use a mouse to click on icons and menu items? You know how to type words with a keyboard? If the answer is yes to both then you will probably be fine.
Besides that, I also agree with what Michael said in the article. Huge lack of documentation to attract more developers into the platform. I tried developing an app from scratch for Gnome a few months ago but that adventure didn't last more than a few days until I realized that there was NO documentation for PyGI. The answer to that was that I could use the C documentation and just convert as necessary to Python... I have no C knowledge and even with the few tips on how to do the conversion I still stumbled in a few exceptions to the "rules" of conversion, so I gave up.
i think package management is one of the best things in linux. there is a standardized way to install software and track dependencies. instead in windows every installer does it its own way and a broken install is a major headache. this makes updates on windows utterly annoying. most crappy FOSS apps make you uninstall, go to a browser link and then install again. absolutely ridiculous. i also love how adobe apps are too retarted to jump to the latest version and update incrementally (9.1-9.2, instead of jumping to acrobat X)
1) Lack of Optimus support. Optimus is becoming very common in recent laptops (including my own) and is not (officially) supported under Linux.
Under Linux I can't use my Nvidia card. Moreover, it is always powered on, leading to a very high temperature and power consumption. There are ways and workaround (acpi_call, bumblebee, ...) to use (or disable) the Nvidia card but it's still a big mess.
2) Regressions. Way too often, updating a component leads to a regression. Last example I faced: My wifi connection is broken (random loss of connectivity) under Linux 3.3 while it had always worked fine before. KDE is also a world-class champion when it comes to breaking stuff (or deleting features, which is at least equally bad) after each update.
Install Bumblebee 3 and Jupiter, when you will set Jupiter on Power Saving, your processor will run low and the external video card will be deactivated. You will also feel that the entire desktop experience is worse compared to Full Speed
This probably isn't one of Linux's "biggest problems", but as someone who also uses a Mac, there are a couple of things where I'd like to see more interoperability between OS X and Linux:
* Support for Apple's RTFD document format. An RTFD is mostly just a directory containing an RTF file, along with some image files if the document includes pictures. Many OS X apps save documents in this format, and it would be nice if LibreOffice (for example) could work with them as is. Yes, you can open the RTF and import the image files, but the result is something very unlike the way the document appears on OS X.
* Outliners! This is an application niche which has been explored on Macs more than any other platform. OmniOutliner is awesome, but there's nothing like it on Linux. I'd like to have a program in the LibreOffice suite that could read & write OmniOutliner files in their native format (it's just XML), and edit them as outlines.
Evernote for example has the same features and even more than OmniOutliner... OmniOutliner kind of creates it's own format, the lack of support for it is their fault, standardization is important. As you can see, a lot of people complain about that. To many formats...
...Microsoft, and the UEFI Secure Boot. Vendors are likely to support only Microsoft and lock out anything else...
...Switching between graphics cards without modifying Sessions with ease. For example, I would want to be able to Switch from the integrated graphics card to the dedicated graphics card when I play games, but when I am done, Switch back to the integrated to save power...
- Microsoft is the one asking for vendors to lock out anything else. If a vendor wants to be able to run Windows 8 it needs to enable Secure Boot by default, the Windows market share is about 90%, sure the vendors will want to sell more products, so they will choose those 90%...
- Bumblebee(Optirun) can switch from integrated graphics card to dedicated graphics without modifying Sessions, it doesn't do that automatically at this moment but it will.
For me it is that open source graphics device drivers are not so good as the proprietary ones; games don't work well, and too slow to watch 1080p (or even 720p) videos on YouTube.
And Ubuntu was the cool kid on the block but now is grandma.
* New release of GIMP or PHP comes out, and I have to wait 6 fucking months? What the hell? On Windows I can get it on same day!
* No cool new fancy software. Cinnamon, BeatBox, etc all latest software is nowhere to be found.
If you ask a gamer, its because Linux have no games and AMD drivers are shoddy.
If you ask a laptop user, its because issues with power management, ACPI, hibernation, etc. No GPU switching between integrated and discreet graphics card.
If you ask a professional user, there is no professional video editor, no professional graphics editor, no professional CAD software, etc.
Linux have very much software that is great, much that is great for consumers. But it often cant compete against commercial software by huge vendors when it comes to some software.
If you ask a software developer company, its the fragmentation and tons of different Linux distributions to deploy to.
If you ask some company, its probably something to do with Active Directory, Microsoft Exchange, SharePoint or something like that.