elbert :
Programmers dont program support for more cores because consumers dont have more cores.
Mainstream programs aren't written to use more cores because most algorithms used in mainstream software do not thread very well - two or more cores has been standard on desktops for over 10 years now and the majority of everyday software still relies heavily on single-threaded performance. Even if there was a sudden breakthrough that made pervasive threading simple and efficient, game developers would still have the issue of making their software usable with lower spec PCs if they do not want to alienate millions of potential sales.
The main reason PC sales are slowing down is simply that non-gamers have little to no motivation to upgrade their 4-5 years old PCs and laptops: their 5-7 years old Core2Duo will remain sufficient for Facebook, Youtube, Netflix, Word, Excel, etc. for another 5-10 years. Of course, CPU performance stagnation on top of rising Intel CPU prices is not helping either.
Phones and tablets are approaching a similar situation too: sales growth is decelerating now that nearly everyone who wants one already has one and a growing fraction are choosing to keep their devices for a longer time because their old devices are still good enough.
I used to upgrade something in my PCs nearly every year. In my i5-3470, I haven't upgraded anything in three years. At this rate, it may remain my main PC for 5-7 years instead of the usual 3-4.