Сега дали Линукс е ОС, а Вин не, не мисля да го коменирам (ползвам ги и двете, и двете си имат предимства и недостатъци). Сега за .NET. Каква е идеята:
Хващаш ти като виден програмист и написваш програма на Перл кажем (въпреки, че за някои това не било език
'> ). Да, ама тя си работи само на Перл. Тук се вкючва .NET. .NET има набор от езици в които може да работи и да преобразува в т.нар. MSIL (M$ Intermediate Language). След това .NET използва CLI интерпретатора за да обработва този общ код. Сега .NET позволява да пишеш и директно в IL. Това преобразуване се извършва от .NET Framework. На теория би трябвало такава програма да се пуска на всяка платформа, която я поддържа. На практика обаче дажи и Windows не поддържа изцяло .NEТ, т.е. ще трябва да инсталираш допълнителни програми (това за старите 95/98). Новите версии ХР/2003 са значително по-добре, но все още поддръжката не е 100%.
Пък Java-та.... ми това е нещо подобно на .NET, но е доста по-различно (ма го казах и аз). Тук можеш да пишеш само на Java (това е различното, както и други работи). Общото е, че кода отново се транслира до т.нар байт-код и се изпълнява от виртуалната машина на Java. T.e. за да пуснеш една програма писана за Java ти трябва само неговата виртуална машина (Java e пример за код независещ нито от операционната система, нито от хардуерната платформа).
Аз лично се надявам някога да имаме .NET за Линукс, който да е интегриран в ядрото или поне като библиотека, която да идва с дистрибуцията.