(toiminnot)

hwechtla-tl: .NET: viime muutokset

Microsoftin uusi(n) hype.

Minulla ei ole pienintäkään aikomusta koskea tähän käytännössä, joten en voi tarjota kovin teknistä mielipidettä (niitä on muutenkin netissä tarpeeksi, esim. http://www.kuro5hin.org/story/2003/7/11/21859/2846). Sen sijaan voin tarjota ohjelmoijan näkökulman hypen alle.

.NET:n sydämessä on kaksi asiaa: yhtenäistetty runtime environment (CLR), ja kasa (luokka)kirjastoja. CLR on "avoin" standardi (altis Microsoftin laajennuksille ja muille päähänpistoille), ja se toimii välimuotona, johon ohjelmat käännetään ja josta niitä ajetaan eri koneilla - aivan samaan tapaan kuin JVM, joka on Javan ytimessä. (Tarkennus tähän terminologiaan vielä: sekä CLR että JVM ovat itse asiassa tämän välimuodon ajo''toteutuksia'', välimuotoa itseään kutsutaan JVM:n tapauksessa Java-bytecodeksi, CLR:n vastaavan nimi on MSIL.) CLR:in on Microsoft tuottanut aika monen kielen käännöstoteutuksen, kun taas ohjelmien kääntämiseksi JVM:lle on kaziljoona Sunista riippumattomien instanssien tuottamaa toteutusta.

CLR:n ytimessä (tavallaan rajoittamassa sitä, mihin se taipuu ja mihin ei) on sen tyyppijärjestelmä (CTS, common type system). Tämä tyyppijärjestelmä näyttää suunnilleen Java-kielen tapaiselta, ja siitä puuttuvat (muistaakseni) parametriset tyypit, ad hoc -alatyyppisyys (siis että alatyypin ei tarvitse olla alaluokka), funktionaaliset tyypit jne. Se siis olennaisesti rajoittaa uudenaikaisempien kielten järkevää toteuttamista .NET-alustalla. Tämä on primäärinen syyni vastustaa .NET-teknologiaa.

Jäljelle jäävät kirjastot. Olen nähnyt aika vähän arvioita .NET:n standardikirjastoista, mutta oletan, että niiden tila muistuttaa Java-kirjastojen alkutaipaleen tilaa. Suunnilleen kunnolla suunniteltu, liian suppeat useimpiin asioihin, kehittyvät hirveää vauhtia ja mihin suuntaan sattuu, ja todennäköisesti päätyvät samanlaiseksi sotkuksi kuin kaikki Microsoftin luokkakirjastokokoelmat tähänkin mennessä (MFC, COM -perusluokat, ActiveX jne...)

Mutta arvatkaa mitä? C-kirjastoja (tadaa) on suunnilleen joka tarkoitukseen maan ja taivaan välillä. Ja useimmat ohjelmointikielet tarjoavat jonkinlaisen tavan käyttää niitä.

[kategoria: mv-mielipide] // http://c2.com/cgi/wiki?MicrosoftDotNet // http://c2.com/cgi/wiki?CommonLanguageRuntime //


(viimeksi muutettu 27.06.2005 15:41)