11 ms·
Big Sur is both 10.16 and 11.0
- agustif 6y agoIm on the beta and it takes a lot to boot it gets semi-stuck on like 80% for almost a minute.. Need to backup and do a clean install I guess what can it be?
- zitterbewegung 6y agoDo you have full drive encryption on? On my MacBook 12 2016 that seems like it gets stuck on initially.
- agustif 6y agoIf it's filevault. i've it disabled. didn't happen before big sur fwiw
- rbanffy 6y agoEven Apple says it's a terrible idea to install beta versions on computers you actually use. Or like the data that's in them.
- saagarjha 6y agoSome of us tend to ignore what Apple says ;)
- cpeterso 6y agoThe User-Agent string for Big Sur's Safari running on Apple Silicon (ARM) still says "Mac OS X 10_16" and, curiously, claims to be "Intel": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15"
- tasogare 6y agoUser agents have been garbage for decades. Keeping Safari’s one like it is is probably a good idea, who knows which websites could break if changed.
- ladberg 6y agoNot sure why you're being downvoted, but this is exactly the reason. Chrome on Windows includes "Safari" in the user agent and Chrome on Android includes "Mobile Safari" because if they don't add it, tons of websites will break. Everyone does this, which is kinda why we need to get rid of user agents and replace it with feature detection (and css that works everywhere for people who don't want to run Javascript).
- baggy_trough 6y agoBrowsers have bugs so it's not really possible to do that and maintain a reliable web.
- alerighi 6y agoBugs should be fixed by who produces the browser and not by the website administrator by looking at the user agent and using workarounds. When someone asks me to build I site for them I say, look I will guarantee that the site that I make is compliant with the W3C specification. If there is something that it doesn't work because some browser don't implement the standard correctly, you go to Microsoft to complain, or you install a decent browser like Firefox.
- baggy_trough 6y agoI admire your idealism, but here on planet Earth engineers are paid to make things work.
- kortilla 6y agoLol, I don’t know who your clientele are but producing websites that don’t work on popular browsers “because the browser is not following spec” is a non-starter. A bank wants a banking website its customers can use, not a website 60% of its customers can use and a link to a 7 year old bug report.
- nameoda 6y agoGot to admit - that's a simple yet clever solution.
- greatgib 6y agoQuite the opposite, it is a complex mess.
- coldpie 6y agoYes. Caring about backwards compatibility is a whole universe of compromises.
- agnokapathetic 6y agoThere is speculation the reason Windows jumped from version Windows 8 to Windows 10 is that too many things were string matching (version ~= "Windows 9\d*")
- richardwhiuk 6y agoor just .startsWith("Windows 9")
- Lammy 6y agoAt some future point the frameworks that are getting the backwards-compat version number will be dropped, all those apps will cease to function on macOS 11.n+1, and it won’t matter any more. I think it’s a great solution.
- GekkePrutser 6y agoI agree, this is not good. I manage Macs in MDM and I already saw that in some actions they show up as 11 and in others as 10.16. sw_vers tends to report 10.16 but UIviews tend to report 11.0. MDMs are complex machines and they don't always do every operation the same way. Why is this bad? Well for one example, because sometimes you use version numbers not exactly. Consider the statement: "Applies to 11.0 and higher". Depending on how the OS identifies itself this will be valid or not. On the same OS. Or consider reporting, if under some conditions the Mac identifies itself as 10.16 and in others as 11, you're going to have them in 2 different buckets even though they're the same thing. Really, they should have made a choice, one or the other. If software wasn't compatible because of this it should just be updated. Apple never said it would always be 10.x. I don't really understand why they're doing this as Apple normally has no issue telling developers to fix it or stuff it. They never cared about backwards compatibility before. If having 11.x was not that important to them to upset a lot of stuff, they should have just stuck with 10.16.
- fpgaminer 6y agoIs there context for this? Are apps breaking when the major version of the OS changes?
- 0x0 6y agoLazy developers assuming majorVersion is always 10, so they do an "if minorVersion < 14 then error 'requires at least macOS 10.14'"
- twoodfin 6y agoI suspect the larger problem is code that checks the minor version is > n and either refuses to run or disables capabilities that weren't available in the OS before 10.n.
- deleted 6y ago[deleted]
- fredoralive 6y agoWindows 95 (4.0) tells 16 bit apps that it is “3.95” because enough old apps had problems because of broken version checks. So it’s not without precedent for an OS to lie to old apps about version numbers, and in this case the version has been 10 for 20 years, so there are probably a fair few that assume the major part must be 10.
- my123 6y agoWindows 8.1 onwards also do in Windows land, with it returning the Windows 8.0 version number (NT 6.2, build 9200) for apps that aren't enlightened for newer versions.
- wk_end 6y agoLegend has it this is why Windows skipped version 9 - too many apps broke when they checked the version string just for “Windows 9” to capture both “95” and “98”.
- 6y ago
- sixstringtheory 6y ago> Big Sur will identify itself as both version 10.16 and 11.0 according to context. This should put the minds of many at rest Not mine. It's an extra piece of cognitive burden and another opportunity for misconfiguration.
- crazygringo 6y agoWelcome to all technical migrations ever. The ease of mind of the current developer is far less important than software not breakly widely for users because previous developers made bad assumptions about version strings.
- sixstringtheory 6y agoMaking policy to avoid the consequences of prior bad practices does not sound like a recipe for encouraging good practices moving forward. In terms of technical debt, it's like taking out a loan to pay off a credit card. I worry this will just lead to baking in more bad assumptions as developers hurry to get this off their plate. I wonder why they don't announce a deprecation of the old versioning schema, and give developers time before switching, instead of just doing both at the same time with little to no warning. They've done that with lots of other technical migrations and even then, there is still plenty of controversy–see Catalina 32-bit support. Is there any reason to believe that doing a migration outright is safer, when the stepped approach has already proven difficult? The least charitable guess I can come up with is that this was a mistake that they can't walk back for technical reasons, so are just fixing forward. If it were up to me, I'd announce that a future version of macOS will increment the major version and that will be moving to semver/calver/whatever-other-protocol, and do it when the current place name marketing strategy runs its course, as did the cat name marketing strategy. That would also give a few more years to get any major UI/system changes ready to drop for macOS 11. Just my 2¢.
- crazygringo 6y agoThe issue is old software continuing to work without having to be updated. Giving more "time" solves nothing for all the programs out there that cannot or will not be updated for whatever reason. This wasn't a mistake on Apple's part, it's just working around bad programming practice by developers. But there's no reason why users should suffer for it.
- dindresto 6y agoWhy did they even go with 11 instead of just dropping the 10, making Big Sur macOS 16?
- Traster 6y agoWould've made a lot more sense to jump to MacOS 20, that makes a nice jump from 10 and puts them in line with the years going forward. Plenty of companies in my industry just do Y.0,Y.1,Y.2. Makes it a hell of a lot of sense.
- dindresto 6y agoTo the people downvoting this comment: By saying that 11 is what 10 was to Mac OS 9 implies the same substantial changes made to the whole system which is not the case here, at all. Mac OS 10 / OS X / macOS was a completely new system based on NeXTSTEP (or at least, completely different from Mac OS 9). It is still the same operating system, just in the usual upgraded fashion (although this time with more visual changes). By dropping the 10, Apple would have stated that macOS is just considered the successor to Mac OS (9) and the previous major "10" is already implied by the name. The 11 just makes no sense considering there has already been an 11th OS X.
- richardwhiuk 6y agoI think the 11 is being justified as "supporting ARM64", but given 10.0 supported PowerPC, it does seem dubious.
- burtonator 6y agoI found that my iPad PRO lies about its user agent and will pretend to be MacOS by default. They don't even provide you with a hint to detect that it's a lie.
- snazz 6y agoYes, user agents are a mess (see this comment for non-Apple examples: https://news.ycombinator.com/item?id=23910637 https://news.ycombinator.com/item?id=23910637). They're not a good way to detect features as a web developer.
- saagarjha 6y agoYes, because Google Docs would throw a fit if it didn't.
- neilalexander 6y agoIn fairness, the user agent string isn't, and wasn't ever, intended to be a user-facing feature. It shouldn't matter to you what the user agent string reports.
- klodolph 6y agoNote that this is how Windows has worked since 2013. If you ask what version of Windows you are running, for example with GetVersionEx, Windows will report Windows 8.0. This is true unless your application marks compatibility with a newer version in its manifest, at which point Windows will report whatever the newest version in your manifest is, or whatever version Windows actually is, whichever of the two is older.
- richardwhiuk 6y agoIt's kind of annoying from an analytics perspective, because you need to upgrade the manifest (and thus the compatibility) to find out how widely adopted a version is, so you can find out if how much effort it's worth putting into validating it as a platform.
- dietrichepp 6y agoTrue that this is annoying, but there is a solution. https://stackoverflow.com/a/25986612/82294 https://stackoverflow.com/a/25986612/82294
- gruez 6y agoNow we just have to wait until that method gets abused enough by devs and microsoft ends up spoofing that too.
- derefr 6y agoThere's an ultimate future-proof solution, though: just generate, in a loop, a series of assemblies that each purport compatibility with Windows ABI vX.Y.Z; spawn those in a separate process; and get them to return what version of Windows they perceive. Once the number stops going up, that's the version you're on. No real way to get around that without misinforming fresh, valid applications.
- cesarb 6y ago
- Razengan 6y agoI wonder if the real reason that Windows skipped version 9 was to "catch up" to Mac OS "Ten", and whether Microsoft will jump to 11 too now.
- rubber_duck 6y agoAFAIK Windows skipped 9 to avoid issues with bad version testing mistaking it for 9x (95, 98).
- DaiPlusPlus 6y agoI don’t believe that for one moment. If you ask Win32 for its version number you get a VERSION structure with Major/Minor/Build fields - not a string. Windows faked its reported version information to software for compatibility purposes since Windows XP (opt-in) and since Windows 8 (opt-out, using application manifests) - so any program that doesn’t claim support for Windows 8, 10, etc is stuck in “Windows Vista mode” - so even if software was doing an osMarketingName.StartsWith(“Windows 9”) check it would be straightforward to make it work.
- Someone 6y agoReading https://www.gaijin.at/en/infos/windows-version-numbers https://www.gaijin.at/en/infos/windows-version-numbers, major.minor.build doesn’t uniquely identify a Windows version. Windows 7 and Windows Server 2008 R2 both are 6.1 build 7600, for example. Also, suppose you check the version for compatibility checking, what do you do if you get a version that you don’t know about, say “6.4, build 7709”? You can give up and declare your program doesn’t work with this version, but that may lead to lots of support calls when Microsoft rolls out a service pack. So, instead, programs try to guess from the version string what OS they run on. And yes, ideally, programs check for features (https://docs.microsoft.com/en-us/windows/win32/sysinfo/operating-system-version https://docs.microsoft.com/en-us/windows/win32/sysinfo/opera...). Unfortunately the world isn’t perfect.
- hu3 6y agoInternet Explorer 5.5 on Windows 95 looked like this: > Windows 95 browser agent string: Mozilla/4.0 (compatible; MSIE 5.5; Windows 95; BCD2000) Back then browser agent checking was used a lot more. So a good reason to name it "10" instead of "9" is to differentiate it from Windows 95/98 for code that did things like: > browser.contains("Windows 9")
- ludwigvan 6y agoMakes sense, 16 is 1 in Base 16, so 10.16 = 11.0 :)
- kbenson 6y agoSo, there was A.F, then it incremented bu 0.1 to B.0. Checks out, except for their weird insistence to use a decimal representation for what is now obviously a hexadecimal scheme. ;)
- deleted 6y ago[deleted]
- RJIb8RBYxzAMX9u 6y agoI don't understand why -- and do educate me on why I'm wrong -- software don't just use an internal and external version number. Version numbers may have started as a technical label with precise meanings, but they've been a part of branding and marketing for a while now. It's futile to fight it[0]. Let the former be a monotonically increasing (say 64-bt) integer, and the latter be a free-form string. This way, marketing folks are free to call one version "macOS 10.16 Big Sur", followed by "macOS 11.0 Big Sur Pro Max", "macOS 10.32 Pro SE", etc. w/o developers pondering over whether "Pro SE" > "Pro Max". As for API, maybe something like getProductVersion() for the internal version, and getProductName() for the external version. Heck, be facetious and let the latter return a string like "!!! DO NOT USE FOR VERSION COMPARISON USE getProductVersion() INSTEAD !!!\07\07\07macOS 10.16 Big Sur". Yes, lazy developers will get it wrong, similar to how they use gettimeofday()[1] instead of clock_gettime(CLOCK_MONOTONIC, ...)[2]. In their defense, often software switch between versioning conventions such that what's the "right" thing to do is unclear. [0] Such appropriation is everywhere. Don't get me started on how Porsche Taycan, an electric car, has a "Turbo" model. It probably doesn't even come with blinker fluid standard. [1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html https://pubs.opengroup.org/onlinepubs/9699919799/functions/g... [2] https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html https://pubs.opengroup.org/onlinepubs/9699919799/functions/c...
- elcomet 6y agoI think that a lot of projects already do this. In particular windows : Windows 95, 98, 2000, XP, Vista, 7,8,9,10 are all external version numbers.
- moron4hire 6y agoAdditionally, they have all of GP's suggested functions.
- rpastuszak 6y agoWhat’s win 9? I thought 9 was the internal version of 10.
- jorams 6y agoI don't really understand why they add this complexity. Supposedly it's to avoid breaking backwards compatibility, but they break all kinds of backwards compatibility on every release anyway.
- dmitshur 6y agoIs there any confirmation if next year we should see macOS 12 or 11.1? I hope it’s the former, as that will make yearly updates to macOS more consistent with iOS, iPadOS, tvOS, and watchOS.
- saagarjha 6y agoIt's likely that it will be macOS 12: https://github.com/WebKit/webkit/commit/805c4f790d01d8579a2a14b8c11a26f241a61a13 https://github.com/WebKit/webkit/commit/805c4f790d01d8579a2a...
- Wowfunhappy 6y agoEw, I do not like that! I couldn't tell you why but it greatly bothers me.
- saagarjha 6y agoPerhaps it’ll improve the security patch situation we have now where they differ by just build numbers, though.
- Wowfunhappy 6y agoThey could fix that if they wanted by just adding another decimal.
- lupinglade 6y agoThis is not correct. It is being reported as 10.16 only on x86 and only temporarily. It is noted as such in the release notes. Final build will be 11.0.
- eyelidlessness 6y agoIt’s correct AND you’re currently correct. Both are true.
- saagarjha 6y agoIt is reported as 10.16 on Intel, and the final build will present itself as 11.0 unless the application is linked with an older SDK or you set the right environment variable.
- danpalmer 6y agoI recommend reading the article, it is correct and the reasons why – for compatibility with legacy software – are interesting and well thought out.
- musicale 6y agoThat is kind of crafty. I wonder if they intend to continue this with macOS 12 or to return to single version numbers?
- exikyut 6y agoOh, Linux can do this too! $ uname -a Linux h0nk 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux $ setarch --uname-2.6 $ uname -a Linux h0nk 2.6.79-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux $ _ Of course, I shudder to think about the situations this would actually be used in.
- account42 6y agoThe difference here is that the default behavior is to report the actual version and it is up to the user to enable the compatibility hack for broken software.
- madeofpalk 6y ago(Minor site feedback, if the authors/owners are here: please consider adding pointer-events: none to the "drop cap" decorative first letter so it doesnt obscure text selection of the actual article.)