Ivane, u cemu si ti zapravo ogranicen u .NETu? Brkas .NET sa teletabis silverlightom/WP7 i javom.
Ko je to rekao i sta ti je zapravo zabranjeno? Uopste mi nije jasno zasto i na osnovu cega sumnjas u podudarnost krajnjeg native proizvoda? Pogledaj malo native kod iz JITa i iz C++ kompajlera, tu nema neke velike filozofije, for petlja je for petlja. Postoje samo dve stvari koje usporavaju .NET aplikaciju. Prva je GC latency (ukljucjuci i checkup pozive), druga je sam FCL koji nije pisan za performanse vec za funkcionalnost (array nije samo niz vrednosti). Oba dolaze do izrazaja kad koristis FCL Math u milionski iterativnim izracunavanjima (>O(n)) kakva su UVEK po pravilu ova benchmarking merenja. Prvo (GC latency) je drasticno poboljsano u .NET4 (pod uslovom da vec nisi koristio concurency multi-core GC) ali eto, ako ce ti srce biti na mestu i ja mislim da IL-u nedostaje "CPU critical" sekcija u kojoj bi mogao da suspendujes native check pozive u GC i za koji bi ti JIT napravio potpuno lean code. Isto su mogli da ostave vise prostora da tweakujes JIT optimizacije ali eto sa njihovog stanovista oni smatraju da bi time samo usporio program jer oni JITuju shodno optimalnim vrednostima za masinu na kojoj je runtime instaliran (nasuprot compile time optimizaciji C++ koja ne uzima u obzir varijetete u runtime okruzenjima).
Iz nekog razloga MS je vise zauzet pravljenjem dodatnih nivoa apstrakcije i ja im tu ne mogu nista, i njihov zvanicni stav je da ako ti GC smeta kriticne sekcije koda odradis u unmanaged delu. Ocigledno je da njihovo vidjenje buducnosti ne podudara sa tvojim i da oni smatraju da FCL ne mora da bude optimizovan i da buducnost desktop aplikacija nije u 100% lean&mean aplikacijama i da ne vredi gubiti vreme perfeksionisanjem koje kaci 1% upotreba.
Realno, za Windows ili ces preci na .NET ili ces ostati na GDI+ emulaciji. AKo hoces direktan input u desktop composition i bells and whistles na Win7+ bices na .NETu ili ces biti na .NET i deloma na C++/CLI-u. Ne razumem bas ni tvoj komentar za milcore.dll, on nikad ni nije predvidjen za direktno linkovanje user aplikacija niti je imao public API, sta vise u Windows 7/2008r2 ga vise nema uopste i njegova funkcionalnost je pretopljena u druge dllove. Tvoja WPF aplikacija je nesvesna svega toga jer je na visti presentationcore.dll wrapovan oko milcore, na Windows 7 oko PresentationNative_v0400, a tvoja aplikacija radi bez izmena. Vremena se menjaju i menja se i GUI engine, WPF je po meni mnogo vise prilagodjeniji desktopu od GDIa, ono sto je sprecilo tranziciju pre 4 godine je bila idiotarija od viste i odbijanje ljudi da predju sa XPa (na kojem je situacija potpuno obrnuta i na kojem je WPF spor kao puz jer radi preko softverske emulacije unutar GDI+). Windows 7 ne pati od tih problema i sve vise ljudi prelazi na 7-u i samim tim ce i broj aplikacija koje se rewrituju na WPF polako povecavati. Do windows 7 ni paint nije bio .NET, sad jeste. Zao mi je ako vam se to ne svidja ali doba bitmapiranih user kontrola je gotovo, a bice veoma tesko napraviti pure native aplikaciju koja ce raditi direktno sa WDMom => GDI emulacija. Posto se WPF primitive na kraju svode na native DX primitive wpf aplikacija na win7 ce uvek imati brzi UI i lepse ce izgledati i imace vise opcija za prezentaciju i polako ce istisnuti winforms, a i ostale ne-NET GDI based frameworke kao sto su MFC, Qt, itd. Hoce li ljudi deinstalirati windows zbog ovoga? Nema sanse.
I ko kaze da ne smes da diras memoriju? Tu su unsafe i fixed, mozes da radis sa njima sta hoces (sa tim sto si ponovo preuze na sebe rizik pointer aritmetike), cak mozes i da menjas immutable stringove.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić