zlatkoA je napisao/la:ali pošto je on razvijan na bazi C koji je ruku na srce puno sporiji od Assemblya
neznam kako bi ga se moglo baš ubrzat.
Ajme meni, imaš li ti uopće pojma o čemu pričaš?
Assemly je pojam iz .NET-a koji predstavlja jedan "paket" koji sadrži kompletnu .net aplikaciju (nešto poput jar-a u javi, samo puno nespretnije izvedeno). I to nije brzo, nego je nešto najsporije što sam ikad vidio u životu.
Assembler je, s druge strane, program koji procesorske instrukcije prevodi u strojni kod koji procesor može izvršavati - instrukcija i njezin strojni kod su u odnosu 1:1 - prvi se može prevesti u drugo i obratno.
C je pak programski jezik, i to definitivno najbolji programski jezik jer, osim što nudi direktan rad sa memorijom i hardwareom (što obično može samo assembler), nudi i rad sa višim funkcijama koje su prilagođenije ljudima. Zato je C najbolji za pisanje jezgre operacijskih sustava i drivera. I windows kernel i linux kernel i macos kernel i svi ostali današnji kerneli (solaris, BSD, ...) su pisani u C-u, kao i svi driveri za navedene operacijske sustave. U C-u su pisani i frameworki koji su potrebni za izvođenje instrukcija viših programskih jezika, npr. java virtual machine ili .net framework. I tu dolazimo do odgovora zašto je vista tako spora kako je, iako nema u sebi ništa revolucionarnog: e upravo zato što je većina programa koji dolaze s vistom su rađeni u .net-u radi "bolje kompatibilnosti", no to nema apsolutno nikakvog smisla jer se prilikom izvođenja .net programa MSIL instrukcije (.net-ovske instrukcije) prvo moraju kompajlirati u x86 ili x64 instrukcije (at runtime, zato i jest sporo) i tek onda izvesti. Na sličan način radi i java, no s jednom razlikom - java je 13 godina stara tehnologija, te ima puno više iskustva u izvođenju bytecode instrukcija te ima hrpu optimizacija, što javu čini "samo" 1.3 puta sporijom od C-a (priznajem, i meni je to malo teško za vjerovati - ja bih dao procjenu od barem 2x sporija, ali sun microsystems tvrdi da je 1.3, pa neka im bude...).
Sad ostaje samo pitanje zašto M$ tolko forsira .net, kad im kompatibilnost sa ostalim OS-evima (što je očekivano od virtualnih mašina poput .net frameworka) očito nije u interesu (.net framework je izdan samo za windowse, dok open source projekt mono za M$-ovim .net frameworkom daleko zaostaje). Ja mislim da M$ očekuje da netko napravi procesor koji će direktno moći izvršavati MSIL instrukcije (valjda im je za to povod činjenica da je sun već uspio napraviti procesor koji direktno može izvoditi neke java bytecode instrukcije). Što bi se time postiglo? Pa..., budući da je .net uglavnom zatvoren softver, na navedenome hipotetskom procesoru bi se mogli izvršavati samo programi pisani u .net-u, odnosno na windowsima. Na takvom bi procesoru vista čak i brže radila, no definitivno ne bi trošila ni bajt manje memorije. Ja se samo nadam da nitko nije dovoljno lud da započne izradu takvog procesora.