Since August 2003 UP with big probability will go from unspecified binary environment to CLR (Common Language Runtime) and automaticly to any language which supports CLI (Common Language Interface).
It seems there are no well
abstracted OS interfaces for now - just look on .NET System.Net.Sockets interfaces...
As I can see it will run easy only over IP
(protocols identifiers are hardcoded numeric constants, address class is present only for IP).
And why HTTP protocol support
should be present in system interface boundary by standard
(see ECMA)??? I have an
answer - it does because M$ did so. But I have no answer where System.HTTP
interfaces go if HTTP transforms in, for example, WSTTTPTPTPT. That was an example why .NET
smells sometimes like old money-shaking story:
"Win16 API is OBSOLETE now - use the new MODERN Win32 API highway from M$. And thousands of coders proclaim: "Oh yes! Win16 API is bad, but Win32 is cool on-the-edge stuff!!!". Then they come to bookstore to get a Win32 Book, go to special MS courses to give some money and listen about old-founded technologies in cool modern words. And then they (rewrite)/(recompile with new 32 bit compiler bought at MS) their old Win16 applications for new cool API (after what buttons looks very sexy) and make money."
As any technology .NET has a lot of positive arguments: proclaimed interlanguage
interaction (but I don't see anything for 3 years except pure IL C#/VB, x86/IL C++, homegrowing C <-> .NET mapping),
standardized Intermediate Language with wide functionality which seems
to become the mainstream for the resistant computer software.