I often find myself explaining the same things in real life and online, so I recently started writing technical blog posts.
This one is about why it was a mistake to call 1024 bytes a kilobyte. It’s about a 20min read so thank you very much in advance if you find the time to read it.
Feedback is very much welcome. Thank you.
This is all explained in the post we’re commenting on. The standard “kilo” prefix, from the metric system, predates modern computing and even the definition of a byte: 1700s vs 1900s. It seems very odd to make the argument that the older definition is the one trying to retcon.
The binary usage in software was and is common, but there’s definitely more recent, and causes a lot of confusion because it doesn’t match the older and bigger standard. Computers are very good at numbers, they never should have tried the hijack in existing prefix, especially when it was already defined by existing International standards. One might be able to argue that the US hadn’t really adopted the metric system at the point of development, but the usage of 1000 to define the kilo, is clearly older than the usage of 1024 to define the kilobyte. The main new (last 100 years) thing here, is 1,024 bytes is a kibibyte.
Kibi is the recon. Not kilo.
Kilo meaning 1,000 inside computer science is the retcon.
Tell me, how much RAM do you have in your PC. 16 gig? 32 gig?
Surely you mean 17.18 gig? 34.36 gig?
abhibeckert in this thread had a good point. Floppies used the power of ten prefixes, so it wasn’t particularly consistent.
209GB? That probably doesn’t include all of the RAM: like in the SSD, GPU, NIC, and similar. Ironically, I’d probably approximate it to 200GB if that was the standard, but it isn’t. It wouldn’t be that much of a downgrade to go to 200GB from 192GiB. Is 192 and 209 that different? It’s not much different from remembering the numbers for a 1.44MiB floppy, 1.5436Mbps T1 lines, or ~3.14159 pi approximation. Numbers generally end up getting weird: trying to keep it in binary prefixes doesn’t really change that.
The definition of kilo being “1000” was standard before computer science existed. If they used it in a non-standard way: it may have been common or a decent approximation at the time, but not standard. Does that justify the situation today, where many vendors show both definitions on the same page, like buying a computer or a server? Does that justify the development time/confusion from people still not understanding the difference? Was it worth the PR reaction from Samsung, to: yet again, point out the difference?
It’d be one thing if this confusion had stopped years ago, and everyone understood the difference today, but we’re not: and we’re probably not going to get there. We have binary prefixes, it’s long past time to use them when appropriate-- but even appropriate uses are far fewer than they appear: it’s not like you have a practical 640KiB/2GiB limit per program anymore. Even in the cases you do: is it worth confusing millions/billions on consumer spec sheets?
I’m not sure if you just didn’t read or what. It seems like you understand the history but are insistent on awkward characterizations of the situation.
I mean kibi is the retcon because it made all previous software wrong.
They didn’t modify the use of kilo for other units - they used it as an awkward approximation with bytes. No other units were harmed in the making of these units.
And they didn’t hijack it - they used the closest approximation and it stuck. Nobody gave a fuck until they bought a 300gb hd with 277gb of free space.
The difference was a lot smaller when you were dealing with 700 byte files - it was often a rounding error. Also - you needed two sectors (1024 bytes at the time) two store your 700 byte file, so what did it matter anyway? If you want to get really specific, you actually needed three sectors - because there’s metadata on the file… however the metadata will share space with other files so does that count?
Filesystems are incredibly complex and there’s no way they can be explained to a lay person. Storage is and always has been an approximation.
It’s even worse with RAM these days - my Mac has 298TB of memory address space currently allocated… but only between 6GB and 7GB of “app memory” in use (literally fluctuating between those two from one second to the next when I’m not even doing anything but watching the memory usage).
Yeah, no, I’m sure I noticed it but I didn’t really have the sophistication to get the implication.
Before we got our first Windows machine I had some DOS books. I remember a table in DOS for dummies talking about kilo/giga/petabytes and internalized it, but CDs were a thing by then.
To me, your attempt at defending it or calling it a retcon is an awkward characterization. Even in your last reply: now you’re calling it an approximation. Dividing by 1024 is an approximation? Did computers have trouble dividing by 1000? Did it lead to a benefit of the 640KB/320KB memory split in the conventional memory model? Does it lead to a benefit today?
Somehow, every other computer measurement avoids this binary prefix problem. Some, like you, seem to try to defend it as the more practical choice compared to the “standard” choice every other unit uses (e.g: 1.536 Mbps T1 or “54” Mbps 802.11g).
The confusion this continues to cause does waste quite a bit of time and money today. Vendors continue to show both units on the same specs sheets (open up a page to buy a computer/server). News still reports differences as bloat. Customers still complain to customer support, which goes up to management, and down to project management and development. It’d be one thing if this didn’t waste time or cause confusion, but we’re still doing it today. It’s long past time to move on.
The standard for “kilo” was 1000 centuries before computer science existed. Things that need binary units have an option to use, but its probably not needed: even in computer science. Trying to call kilo/kibi a retcon just seems to be trying to defend the use of the 1024 usage today: despite the fact that nearly nothing else (even in computers) uses the binary prefixes.
I don’t think it’s more practical. I think it’s what emerged from researchers trying to refer to concepts. I prefer the clarified prefixes.