(toiminnot)

hwechtla-tl: .net

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
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 ajototeutuksia, 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


kommentoi (viimeksi muutettu 27.06.2005 15:41)