You're comparing apples and oranges as far as the technical details. I'm saying Win 3.x let me continue when it saw problems, and NT could also do that.
Not really. The kind of situations where Windows 3.x let you try to continue, Windows NT just handles transparently. In Windows 3.x, with cooperative multitasking, a single application can refuse to relinquish the CPU. If this happens, you have three choices (outlined by the dialog box):
In a system with protected memory and preemptive multitasking, an application that refuses to relinquish the CPU will just have its priority downgraded and the only thing that you'll notice is the CPU getting warm. Eventually, you may choose to kill the program, but it never affects system stability.
I'd like to have the *option* to continue to save my work even if there was a chance of data corruption. For example, take the common NT blue screen IRQL_NOT_LESS_OR_EQUAL. That fact that my buggy network driver tried to access paged memory in the wrong sequence is miles away from catastrophic. And it certainly doesn't take priority over something I've been working on for hours. IRQ 0 is me, motherfuckers!
It means that there's a high probability that something has damaged some kernel data structures. If you continue, there's a good chance that this corruption will spread to the buffer cache and you'll end up writing invalid data to disk. If you kill the system, the corruption is limited to the RAM.
Also I'm not sure about your phone but with mine I can disable data over cellular in the swipe down settings. It's literally a swipe and a single click, so if you really want to restrict everything and then only use it as required that would be the easy way to do it system wide and is about as complicated as turning on screen rotation.
You didn't read my post, did you? You can turn it off globally, but it's really hard to then turn it on for a subset of applications. You have to individually disable each one's access (and they all default to 'on', so you have to remember to do it again after installing each new app). If I turn on mobile data somewhere expensive to look something up urgently (or, for example, to get an updated boarding pass for a flight) then suddenly a dozen applications will say 'whee, Internet! Let's download a load of updates!'
Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal
If you're doing a million items, then the difference between O(N) and O(N^2) is a factor of a million. If each operation takes one cycle to complete, then on a 2GHz CPU you're going to take 500 microseconds. More plausibly, if each iteration takes 10 cycles, then it will take 5ms. The O(n^2) version, assuming the same ten-cycles per operation (which is pretty small - even a bubblesort on integers in an array will be hard pressed to be that quick), will take one hour and 23 minutes.
If you really think that the difference between 5ms and almost an hour and a half is irrelevant, then I really hope that I never use any code that you write.
De Morgen's laws are widely known and trivial to automate. Any vaguely modern compiler knows about them and will do the transform for you. Not only will it do it for you, it will do it for you everywhere and base on knowledge of the target architecture.
That said, it won't rearrange things that might have side effects. In C, for example, you have short-circuit evaluation, so if you have something cheap on the left of an or and something expensive on the right, then it will be faster unless the compiler can determine that the expensive thing has no side effects. If you have a negation of a long string of ands, the arguments to each of which is expensive to compute, then turning it into a string of negated ors is faster, because the compiler can stop computing once it's found one that's failed.
Or, you put it another way, the most expensive wishful thinking on the planet.
When people say 'first strike' in this context, they mean 'nuclear first strike', as in 'launch enough nuclear missiles to take out your enemy's ability to fire back'. The reason for nuclear submarines is to largely eliminate this possibility: even if you completely destroy every military installation in the USA, there is going to be at least one submarine hidden somewhere that will be able to flatten a few of your cities.
MAD only works as a deterrent if there is a very small chance of getting away with a first strike. If you can shoot down incoming ballistic missiles, then you might be tempted to launch first and just shoot down the retaliatory strike. If you can fire missiles that are fast enough that the enemy doesn't have time to order a retaliatory strike, then you might be willing to live with a couple of submarines shooting at you, especially if you have a good idea of where they are and can have aircraft ready to launch interceptors flying above them.
Aircraft carriers completely suck for launching nuclear missiles (and the USA has not confirmed that they even bother putting them on board), because they're a big obvious target. If, for example, the USA put a nuclear-armed aircraft carrier near Russia, then you can bet that the Russian second-strike capability would be on alert and ready to launch unless they got regular confirmation that the US carrier hadn't launched. Aircraft carriers also suck for second-strike, because they're too big to easily dodge a nuclear strike and so will be on the list for first-strike targets.
They're good for a conventional (non-nuclear) first strike, because they give you a staging post that you can put right next to someone else's country, but that's less of a problem for global stability. A non-nuclear first strike commits you to an expensive war. Aircraft carriers aren't also specifically first-strike weapons. They have support roles and are even occasionally used for disaster relief (a big portable nuclear reactor turns out to be quite handy sometimes).
There is, but it's to coarse grained. For example, I'd be happy for an IM application to use mobile data, because it's likely to be very low traffic. I'd like my web browser to use mobile data sometimes: when I'm away from WiFi and need to look something up urgently. I want everything else to be restricted to WiFi. I want these settings to vary slightly between when I'm at home and when I'm roaming, as data charges can vary by a couple of orders of magnitude.
Android actually does provide an interface for doing this, but everything defaults to being able to be used all of the time. Within some applications (e.g. web browser) I want something like the old 'show images' button from the MODEM days, so that images, videos, and anything else large will not be downloaded unless I opt in on a specific page.
For comparison, the USA is #1, Germany, France and the UK are 6-8. Now, if you're the worlds second-largest economy, would you prefer to have the worlds eighth-largest economy as a trading partner, or the world first, third, fourth, fifth and sixth? Now, if rational choices aren't enough, keep in mind that (in the scenario under discussion), the current President of #8 is someone who fondly recalls the days when you were a junior partner in an alliance and has demonstrated a willingness to use nuclear weapons.
UNIX was not designed to stop you from doing stupid things, because that would also stop you from doing clever things. -- Doug Gwyn