fraggle
Super Moderator

Posts: 6000
Registered: 07-00 |
Nomad said:
I read that as "Inept." I'm slightly buzzed, but I bet I'm not far off.
When Microsoft added TCP/IP networking to Windows, they imported the Berkeley sockets API, which they named "WinSock". There are a few things that are subtly different between Berkeley sockets and WinSock (for example, having to call closesocket() instead of close()) but in general they're mostly the same, which is useful if you want to write cross-platform software that will run on Windows, Unix and any other operating system that supports Berkeley sockets (ie. everything).
Now we're (supposedly) moving from IPv4 to the brave new world of IPv6, the sockets library needs some changes to support the new IPv6 addressing scheme. As an example, there's a function called inet_ntoa, which because of its design can only support IPv4 addresses. So the IPv6 folk created a new function called inet_ntop to replace it.
Operating system vendors have steadily been incorporating IPv6 support, and all of them have been incorporating the new IPv6 functions. It's really nice that, even though IPv6 support is a monumental amount of effort, people have been able to agree on common APIs for it. This makes programmers' jobs easier because we don't need to worry about one operating system behaving subtly different to others.
Microsoft added inet_ntop to Windows, as well, except it changed the name. On Windows it's called InetNtop. You can see that in a comment on the documentation page: "The ANSI version of this function is inet_ntop". So programmers now have to deal with an utterly needless inconvenience, because the function name was changed for no reason. Presumably they're doing it to comply with some internal set of rules that Microsoft has for naming functions. But basically it's braindamaged. It needlessly inconveniences programmers who use it while simultaneously making their own API ugly and inconsistent.
/end of obscure, offtopic programmer rant
|