das sehe ich naturgemäß nicht ganz so.
es ist doch prinzipiell eine gute idee, eine sammlung von tools und bibliotheken zu verbreiten, damit künftige programme diese funktionalität nicht mehr "mitbringen" müssen sondern schon vor ort verfügbar haben. darauf basiert sowohl windows mit seiner api (seinen dlls) als auch unix mit seinen libraries.
nun ist der gedanke hinter java und .net der absolut gleiche: diese funktionalität auf ein noch viel "kompfortables" level zu erweitern und so den software-entwicklungsprozess effizienter zu gestalten. genau das also, was eh schon überall passiert (ein programm verlässt sich auf ein oder mehrere andere) wird bei java und .net systematisiert. bei java kommt die cross-platform-compatibility dazu, die .net leider nicht hat. das ist aber nicht ganz so schlimm, weil sicher 60% aller für windows erhältlichen programme keinen unix/*ix port haben bzw. brauchen. für windows-programme also absolut ok.
weder bei java noch bei .net darf man meiner meinung nach die runtime zum programm selbst hinzurechnen, zumal das .net framework (wenn auch nur in version 1.0) sogar bereits in windowsxp integriert ist. und sonst installiert der nutzer es halt ein einziges mal und bleibt dann wieder bis zum nächsten update verschont.
und: sun macht jre und jdk, microsoft macht .net framework und .net sdk. wo ist der unterschied? ist java "opensourciger" weil es von sun kommt? oder weil's auch unter *ix läuft? *nixversteh*

!!