Vista (Announce)
I'll illustrate this a little better, too, with regards to API calls.
What happens if I write my own API call in the late 80s:
dword size_in_bytes = getHDSize(byte drive_letter)
Nothing wrong with that at the time; hard disk drives weren't going to reach into the gigabytes! And 640k RAM is enough for everyone! :)
Okay, now it's the 90s. What do I do? Well, I definitely need a new call:
qword size_in_bytes = getBigHDSize(byte drive_letter)
What do I do with the old one?
Return an error? Wrap it around the new one and truncate the answer? Return 0xFFFFFFFF? How will applications behave since they're getting the wrong answer?
There's no simple answer.
My code would probably look like this in the case of backwards compatibility in some simple pseudo code:
dword getHDSize(letter) {
freespace = getBigHDSize(letter)
if(freespace < 0xFFFFFFFF) {
return truncateToDword(freespace);
} else {
return 0xFFFFFFFF;
}
}
qword getBigHDSize(letter) {
device = getDriveDevice(letter);
return callDevice(device, GET_FREE_SPACE);
}
Now I've got extra code. All I used to need was the code 'getBigHDSize' now has.
Multiply this problem out for pretty much every API sooner or later. My OS is now way bigger, taking more disk space and requiring more RAM - also meaning it takes longer to load. The backwards compatible call takes much longer than it used to.
Now consider the nightmare debugging, when I don't know what's causing a bug when someone is trying to get hard disk size amount:
A) Was it a problem with the hardware, or a problem with my code?
B) Was it a call to my old code, or a call to my new code?
C) Was it a call to the old function on a big hard disk and the application not knowing how to deal with the wrong answer, or a problem with my function?
D) If it's a call to the old code, was it the extra logic in the old code that's new and not as well tested? Was it one of the other functions I had to add into my old code to make it work?
[edit to add code to illustrate better]
Complete thread:
- DR-DOS 8.1 - RayeR, 21.11.2007, 18:02 (Announce)
- DR-DOS 8.1 - Laaca, 21.11.2007, 18:55
- DR-DOS 8.1 - RayeR, 21.11.2007, 19:13
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:50
- DR-DOS 8.1 - RayeR, 21.11.2007, 19:13
- DR-DOS 8.1 - RayeR, 22.11.2007, 00:50
- DR-DOS 8.1 - david, 22.11.2007, 08:33
- DR-DOS 8.1 - RayeR, 22.11.2007, 10:14
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 10:41
- DR-DOS 8.1 - RayeR, 22.11.2007, 11:17
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 11:23
- DR-DOS 8.1 - RayeR, 22.11.2007, 11:44
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:28
- DR-DOS 8.1 - RayeR, 22.11.2007, 12:54
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 13:05
- DR-DOS 8.1 - RayeR, 22.11.2007, 16:39
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 13:05
- DR-DOS 8.1 - RayeR, 22.11.2007, 12:54
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:28
- DR-DOS 8.1 - Steve, 22.11.2007, 13:23
- DR-DOS 8.1 - rr, 22.11.2007, 13:26
- DR-DOS 8.1 - Steve, 22.11.2007, 13:31
- DR-DOS 8.1 - rr, 22.11.2007, 14:02
- DR-DOS 8.1 - Steve, 22.11.2007, 14:49
- DR-DOS 8.1 - rr, 22.11.2007, 14:59
- DR-DOS 8.1 - Steve, 22.11.2007, 15:12
- DR-DOS 8.1 - rr, 22.11.2007, 14:59
- DR-DOS 8.1 - Steve, 22.11.2007, 14:49
- DR-DOS 8.1 - rr, 22.11.2007, 14:02
- DR-DOS 8.1 - Laaca, 22.11.2007, 15:24
- DR-DOS 8.1 - rr, 22.11.2007, 15:55
- DR-DOS 8.1 - Steve, 22.11.2007, 13:31
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 13:37
- DR-DOS 8.1 - Steve, 22.11.2007, 15:07
- Vista's pre-SP1 DOS (in)compatibility - Rugxulo, 22.11.2007, 15:43
- Vista's pre-SP1 DOS (in)compatibility - RayeR, 22.11.2007, 16:26
- Vista's pre-SP1 DOS (in)compatibility - Rugxulo, 22.11.2007, 17:13
- Vista's pre-SP1 DOS (in)compatibility - Steve, 22.11.2007, 17:18
- Vista's pre-SP1 DOS (in)compatibility - RayeR, 22.11.2007, 17:18
- Vista's pre-SP1 DOS (in)compatibility - Rugxulo, 22.11.2007, 17:13
- Vista's pre-SP1 DOS (in)compatibility - Steve, 22.11.2007, 16:28
- Vista's pre-SP1 (in)compatibility - Rugxulo, 22.11.2007, 17:19
- Vista's pre-SP1 DOS (in)compatibility - flox, 22.11.2007, 17:00
- Vista's pre-SP1 DOS (in)compatibility - RayeR, 22.11.2007, 16:26
- Vista's pre-SP1 DOS (in)compatibility - Rugxulo, 22.11.2007, 15:43
- DR-DOS 8.1 - Steve, 22.11.2007, 15:07
- DR-DOS 8.1 - rr, 22.11.2007, 13:26
- DR-DOS 8.1 - RayeR, 22.11.2007, 11:44
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:39
- DR-DOS 8.1 - RayeR, 22.11.2007, 13:06
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 13:18
- DR-DOS 8.1 - RayeR, 22.11.2007, 13:06
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 11:23
- DR-DOS 8.1 - RayeR, 22.11.2007, 11:17
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:23
- DR-DOS 8.1 - rr, 22.11.2007, 12:29
- DR-DOS 8.1 - Steve, 22.11.2007, 14:42
- DR-DOS 8.1 - Rugxulo, 26.11.2007, 20:20
- DR-DOS 8.1 - DOS386, 12.12.2007, 02:09
- DR-DOS 8.1 - RayeR, 22.11.2007, 16:58
- DR-DOS 8.1 - rr, 22.11.2007, 20:51
- DR-DOS 8.1 - RayeR, 22.11.2007, 21:16
- DR-DOS 8.1 - RayeR, 23.11.2007, 02:06
- DR-DOS 8.1 - rr, 23.11.2007, 09:27
- DR-DOS 8.1 - RayeR, 24.11.2007, 14:33
- DR-DOS 8.1 - rr, 23.11.2007, 09:27
- UIDE caches even disks for which it doesn't do UDMA - lucho, 24.11.2007, 09:09
- UIDE caches even disks for which it doesn't do UDMA - RayeR, 24.11.2007, 17:39
- DR-DOS 8.1 - rr, 22.11.2007, 20:51
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 10:41
- DR-DOS 8.1 - RayeR, 22.11.2007, 10:14
- DR-DOS 8.1 - david, 22.11.2007, 08:33
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 10:13
- DR-DOS 8.1 - RayeR, 22.11.2007, 10:27
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 10:53
- DR-DOS 8.1 - RayeR, 22.11.2007, 11:31
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:36
- DR-DOS 8.1 - RayeR, 22.11.2007, 17:11
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 12:36
- DR-DOS 8.1 - RayeR, 22.11.2007, 11:31
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 11:19
- DR-DOS 8.1 - flox, 22.11.2007, 15:37
- TriDOS -- DPMI bug? - Rugxulo, 22.11.2007, 16:20
- TriDOS -- DPMI bug? - flox, 22.11.2007, 17:02
- DR-DOS 8.1 - Rugxulo, 26.11.2007, 20:24
- TriDOS -- DPMI bug? - Rugxulo, 22.11.2007, 16:20
- DR-DOS 8.1 - flox, 22.11.2007, 15:37
- DR-DOS 8.1 - Rugxulo, 26.11.2007, 20:23
- DR-DOS 8.1 - jaybur, 27.11.2007, 02:12
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 10:53
- DR-DOS 8.1 - RayeR, 22.11.2007, 10:27
- DR-DOS 8.1 - Rugxulo, 22.11.2007, 13:45
- DR-DOS 8.1 piracy :-( - DOS386, 12.12.2007, 02:00
- DOS -- single-tasking? - Rugxulo, 12.12.2007, 18:26
- DOS -- single-tasking? - Steve, 14.12.2007, 06:06
- DOS -- single-tasking? - Rugxulo, 14.12.2007, 08:24
- DOS -- single-tasking? - DOS386, 15.12.2007, 18:59
- DOS -- single-tasking? - Rugxulo, 16.12.2007, 00:44
- DOS -- single-tasking? - Steve, 14.12.2007, 06:06
- DOS -- single-tasking? - Rugxulo, 12.12.2007, 18:26
- DR-DOS 8.1 - Laaca, 21.11.2007, 18:55