Well , you've missed out on two very important aspects here - 1) I've never seen an Exciting operating system. Operating systems - although they perform a large amount of work in the background , never have to try really hard to stimulate the user into doing something - sure , a MessageBox can have a really exciting message , but , when was the last time you clicked on one of those because you actually WANTED to? The operating system is just sitting there WAITING to be used , while a game has to actively DEMAND participation while simultaneously making it fun and exciting for the user. 2) Operating systems are built by much larger teams and take several times longer to get a version shipping - speaking of which - games only have ONE SHOT. If a game is released and its first version is no good , you can bet that nobody is going to buy "Buggy Game - Beta Release(stable)" , whereas operating systems have the luxury of knowing that they have a few years to get everything working - did you think Windows was just thought up three months ago , Kernel and all - and plug and play from the word "go" ? No , operating system designers have years and years to perfect their product , whereas Game Programmers typically have a little over eighteen months to build a virtual world that entices and excites the user into wanting to use the product. Furthermore, typical Game Design teams have , on average, less than twenty people on board who have to do all the work , how many employees does Microsoft have? How many thousands of programmers have contributed to the Linux Operating System to make it as robust and reliable as it is today? When you think about the sheer workload and the intensive requirements that Game Programming demands of its programmers , I think you can begin to see why its the hardest form of programming around ... PS - when was the last time you saw somebody trying to plug in a PC Tablet as an input device to DOOM3 ? Games basically only ever need to support a KeyBoard, Mouse and some form of JoyStick or GamePad , so at least we got a break on that one ... The long and short of it is that Game Programmers are forced to do the work of many people in a very short amount of time and still have the end product looking good and being as exciting as possible. So , My vote is still for Game Programming.
The tears shed in vain and the hatred and pain will be nothing but dust at the end of the day