To neni tak uplne pravda, pochybuji, ze Microsoft ma podobnou dolozku. Tudiz z Mona lze prejit do Msoftu, naopak nikoliv. Dokonce dokud nebyly zdrojaky .NET zverejneny, tak Microsoft doporucoval, pokud bylo treba modifikovat kod, prebirat kod z Mona. Nicmene nejde az o tak signifikantni udalost. Microsoft se nepochlapil - ostatne zdrojaky nekterych svych knihoven priklada do svych develop nastroju snad odjakziva. Podporuje tak hlavne svoje vyvojare, kteri se pri debugu nepropadnou do black boxu a muzou vykradat .NET tridy a nikoliv nedustojne Mono (psano s mirnou nadsazkou).
No ja som si skusal spetne prekladat MS kniznice .NET Reflectorom, a dalo sa tiez do toho celkom seriozne nahliadat:) Teda zaujimalo ma hlavne to, nakolko reflector generuje citatelny kod...
Řešení je jednoduché, najmout lidi, kteří budou vyvíjet pro Windows (jen částečně fungující programy), které budou pod nějakou opravdu svobodnou licencí a z ní to může kdokoliv už opsat. Otázkou zůstává jestli je od Microsoftu co opisovat :D
Podobné narážky na kvalitu MS věcí jsou trochu (možná trochu víc) mimo mísu. Zvlášť platforma .NET je jednou z nejkvalitnějších, nejvymakanějších a nejpoužitelnějších se kterými jsem se kdy setkal a můžu ji jen chválit (a to jako dřívější zarytej linuxář a javista a fanda opensource věcí).
Bez ohledu co si myslím o Microsoftu, tohle mohu potvrdit. .NET knihovny jsou velmi kvalitní a možná je to aktuálně nejlepší framework na světě.
Je to velmi zajímavé, protože někdy MS vypustí do světa dost špatné věci. Spíše jde ale v těchto případech o chyby architektury a marketingových mágů.
Jo, ty knihovny nejsou až tak špatný, jen ty jazyky jsou děsný. A i když svůj oblíbený propojím s .NETem (což jde), pořád ještě tu je impedance mismatch co do runtimu. Ten .NETový není žádná sláva, kdysi jsem byl nadšený z toho, že tu konečně máme vícejazykové prostředí, jenže ono se nakonec ukázalo, že pro .NET se dají rozumně psát jen kompilátory jazyků, které jsou funkčně identické s C# (žádná vícenásobná dědičnost, žádný vícenásobný dispatch, žádné ukládání heapu, žádná dynamická redefinice tříd s přizpůsobitelnou aktualizací instancí, žádné restartovatelné výjimky - jen namátkou jmenuju věci, u kterých mě opravdu nenapadá, jak je efektivně implementovat bez zásahu do zdrojáků .NETího VM). Takže to prostředí stejně nikdy nebude stačit všem a nativních kompilátorů se nezbavíme. ;-)
Veci, ktere v .Net nejsou je spousta, z tech skutecne potrebnych tam nechybi vsak temer nic. To co jste vyjmenoval jsou takrka, z pohledu .Net, nepodstatne feature. Nektere terminy mi ani nic nerikaji ;).
- Vicenasobna dedicnost: Objekt muze dedit z jedne tridy a z neomezeneho poctu rozhrani (ISwissArmyKnife, yay). Zavadet vicenasobnou dedicnost je imho zbytecnost a urcite bych to nechapal jako chybu VM.
- Multiple dispatch: Nevim co je na pretezovani metod nedostacujiciho.
- Ukladani heapu: Specifikujte trochu blize. Pokavad to nejde v managed prostredi, tak mame P/Invoke.
- Dynamicka redefinice trid: Ale ano, mame TypeBuilder, AssemblyBuilder atd. Aktualizace instanci je pak uz jen pouze na vas.
- Restartovatelne vyjimky: Nevim co si pod timto mam predstavit.
"- Ukladani heapu: Specifikujte trochu blize. Pokavad to nejde v managed prostredi, tak mame P/Invoke."
Tipol by som, ze tym bolo myslene nieco stylu coroutines/continuations v Python/Ruby, ale tiez len odhadujem (tam bol nejaky pokus ohackovat to cez fiber api ale nejak to udajne odislo do vecnych lovist)
"- Restartovatelne vyjimky: Nevim co si pod timto mam predstavit."
Zrejme nieco v style retry keyword v Ruby (tiez hadam)?
Coroutines/continuations sice nemame, ale mame generatory(yield) a ono hrube a nepravem nenavidene GOTO :)
V restartovatelnych vyjimkach nejak nevidim zadne pozitivum :/
Nicmene, pokud jsou dane feautres implementovany v Pythonu/Ruby, tak by nebylo od veci se podivat na .Neti implementace techto jazyku, IronPython a IronRuby, zda tam to neni nejak osetrene. I bych tipoval, ze ano, a prave proto je MSIL kod vygenerevoany temito dvema kompilatory nekompatibilni s C# a pravdepodobne i zbytkem zakladnich jazyku.
No, to ses s moc platformama nesetkal. :-) Ale "enterprajs sféra" má tendenci stavět na tak primitivních věcech, že pokud Tě sem vítr zavál odtamtud, tak se tomu nedivím. (Já samozřejmě chápu potřeby a omezení velkých firem, ale to neznamená, že to jsou potřeby a omezení platná pro všechny. :-))