It may be in use but doesn't stop it being obsolete. Fortunately most dists will flip the switch and use wayland over the next year or two. And not before time.
Virtually every *nix app runs over abstraction layers such as QT, GTK, Pango, Cairo etc. Assuming there are wayland backends for these layers then porting isn't as hard as you think. There may be vestigal bits of X to clean up and some edge cases that need more effort (screengrabbers, video players, browser plugins etc.) but porting the majority of apps will just port over. Aside from that, if you *did* have some ancient X app you could still fire up X over wayland just for that.
X will probably stick around as a core component for a few more years in most dists and then it'll be pushed off to the side as an optional package, available for those who want it but not installed otherwise because it won't be needed.
X11 is an arcane and largely obsolete framework. The fact it needs so many damned extensions to be any way functional is precisely the reason that developers are keen to get rid of it. It's not secure, it's filled with arcane and obsolete code and it's terribly inefficient both locally and remotely. Fortunately it'll be moved aside and replaced by wayland over the next few years.
Yeah, well, EB games should be sued, if they don't have that warning printed in every store in large print. As well as Amazon and thousands of others.
EB games don't trade in digital games. They trade in physical media. And unless there is a registration code in the box then it's implicitly transferable.
That is not true: you are NOT "buying a license to a game", you're buying the game.
Sorry it is true and wishful thinking doesn't change it. Virtually all commercial software is covered by a EULA - end user licence agreement. You are buying a licence to use the software under the terms described by the EULA. If you run afoul of the terms then your right to use the software may be void or other penalties may apply.
In this particular case I suspect UPlay, Origin, Steam are reasoning that the licence is non transferrable, and since it WAS transferred from one person to another it has become void. That sucks but it's well known that they do this and if you want to avoid it, don't buy licences off some reseller.
It just demonstrates the utterly obscene pricing models in these online stores. In the real world the MSRP / RRP is just a guideline - the store can sell a game for any margin they like and usually they reduce it below MSRP. In the online store, the price is always the MSRP. I occasionally read the (pathetic) excuse that it's the publishers who set the price and there is nothing the store can do about it. Wrong! Publishers should be required to sell their digital download licences at the same wholesale cost as the physical copy and then digital stores retail can compete on their margins.
Just recently Sony offered a 10% discount off of PSN by way of apology for being attacked on Christmas day. The irony is that even with 10% off the prices there were still more expensive than a physical copy with the cost of middleman and postage thrown in. It's not just them of course - XBL is the same. And Steam. And Origin. And UPlay. They only time these services offer value is for games so old that their retail sales have flatlined and where people might pay $10 for a game in digital form that they wouldn't even bother with in physical.
Personally I think they should let people use these keys but the keys should unlockversions of the game that are heavily localized, thus negating any "advantage" people think they got from buying them. e.g. I bet Far Cry 4 and AC 4 are a lot less fun if the audio, text and subtitles are hardcoded to Thai and multiplayer to Thai servers.
As it is, I wouldn't be surprised if the terms of service allow them to do precisely what they did but I think there are better ways to discourage code selling.
It's not like C/C++ is a perfect language - it's a horrible language in some ways but it's also very powerful and quite portable with discipline. It also has standards by which to measure implementations by and it has tended to keep compilers pretty close together aside from a few extensions.
And C++ adds it's own layer of fun. Templates are the work of the devil - get an arg wrong e.g. miss a const or a (de)reference, and the compiler might throw a wall consisting of hundreds of errors back at you. Not intuitive at all and certain not easy to step debug.
Doesn't mean the answer is Pascal but C/C++ was never designed for readability and any that exists is by the grace of the person who wrote the code rather than inherent to the language. Other languages do try a lot harder to enforce readability in the file structure and in the code itself. Python would be most famous for it but even enforcing filename = classname, path = namespace as seen in Java / C# gives more structure than you get in C.
Anyway, Pascal lost the language war because it wasn't low level enough (at the time) to compete with C and didn't offer any other advantages. By the time franken-Pascals like Delphi appeared to gain those features it was too late because Java filled the application end and C/C++ was still there for the other stuff.
There are two ways to write error-free programs; only the third one works.