…meie igapäevast IT’d anna meile igapäev…

2007-03-22

Programmeerimiskeeled: C#/.NET

Filed under: Infotehnoloogia,Programmeerimine — Sander @ 09:16:28

Veidi ajalugu

Üheksakümnendate keskpaiku tundus Microsoftile, et kõik maailmas on neil käes. Ilmunud oli Windows 95, mis oma bugiderohkusest ja aeglusest hoolimata oli kõrgelt kiidetud ja kasutajasõbralikum kui ükski teine Windows. Office 95 võeti vastu aplausiga. Konkurendid PC platvormi operatsioonisüsteemile puudusid, Apple turuosa oli tühine.

Aga salamisi oli tekkinud kummaline asi nimega Internet, millega Microsoft üldse arvestanud ei olnud. Üritati küll – tüüpiliselt Microsoftile – luua oma Internet (MSN – Microsoft Network), kuid seda ei kasutanud mitte keegi. Nii oligi Microsoft sunnitud ostma firmalt Spyglass õigused brauserile Mosaic, mis seejärel Internet Exploreri nime all välja lasti. Enne oli ilmunud Netscape Navigator, mille turuosa oli palju suurem kui IE’l. Algasid browser wars.

Sel ajal, kui brauserisõjad olid täies hoos, tuli Sun 1996. aastal välja programmeerimiskeelega ja -platvormiga koodnimega Java. Tegelikult küll mitte päriselt selleks mõeldud, sai Java esmaseks funktsiooniks brauserites võrgupõhiste Java applet’ite jooksutamine. Need ei saanud kunagi kuigi populaarseks ja samuti ei õnnestunud lõppkasutajale suunatud aplikatsioonide turul kuigipalju endale kohta leida – kuid serverites oli Java „tegija”, eriti pärast seda, kui IBM selle oma serverites kasutusele võttis.

Kuid mis hirmutas Microsofti oli see, et Java bytecode-keelena jooksis kõikidel levinumatel platvormidel, mitte ainult Windowsil. Samuti oli Java selgelt suunatud võrgupõhiste rakenduste loomisele – ja nagu Microsoft oma ehmatuseks avastas, ei olnud neil mitte kui midagi sarnast pakkuda.

Microsoft litsentseeris Sun’i käest Java litsentsi, kuid katsed luua oma versiooni Javast (nimega J++) kukkusid läbi, suuresti kuivõrd Microsoft hakkas J++’i Javast järjest rohkem lahku lööma. See aga ei meeldinud Sun’ile, kes Microsofti kohtusse kaebas ja võitis.

Nii oligi Microsoft taas palja tagumikuga – VC++ 6.0 lisas küll teatud võrgupõhiseid võimalusi, kuid ei midagi sel tasemel kui Java; samuti oli VC++ tunduvalt keerukam arendada, kui Java.

Pärast mõneajalist peataolekut hakkas MS arendama uut platvormi. Alguses tuldi välja Windows DNA‘ga (Windows Distributed interNet Applications Architecture), mis kukkus küll kolinaga läbi, kuid selle juures saadud kogemusi kasutati uue platvormi loomisel.

Microsoft varastas tarkpäid Borlandilt ja Intelilt orjama uue platvormi kallal, millele loodeti panustada kogu firma tulevik. 2000. aasta suvel teavitasid Bill Gates ja Steve Ballmer esmakordselt laiemat üldsust Microsoft .NET’ist, üteldes selle kohta kaunikõlaliselt „Microsoft .NET (pronounced dot net) will provide easier, more personalized, and more productive Internet experiences by harnessing constellations of smart devices and Web sites with advanced software through Internet protocols and formats.

2002. aastal ilmuski .NET

.NET

.NET platvorm laenas päris palju Javalt – seda hüüti alguses mõnitades lausa „Java for Windows”. Kuid peagi selgus, et .NET on palju enamat, kui Java. Moodsate, standardsete tehnoloogiate (XML, SOAP, HTML jne) tugi oli oluliselt paremini realiseeritud; hoolimata nimest ja võrgule suunatusest olid ka desktopirakendused kiired. Samuti olid .NET platformiga kaasas (so, Visual Studios) piisavalt komponente tavaliste rakenduste ehitamiseks – erinevalt Javast, kus tuli kasutada kiht-kihilt täiendavaid framework’e.

.NET ei olnud ka sõltuv programmeerimiskeelest – kõik programmid „tõlgitakse” algselt CIL‘i (Common Intermediate Language) ja seejärel CLR‘i (Common Language Runtime), nõnda et programmi tööle ega kiirusele pole teoreetiliselt üldse oluline, kas ta on algselt kirjutatud C#, VB.NET’is või mõnes muus keeles. Tänapäeval on .NET’i toetavaid keeli ja dialekte pea poolsada.

Kuivõrd .NET platvormi soovitakse kasutada ka muudel operatsioonisüsteemidel peale Windowsi, siis alustas Novell avatud lähtekoodiga projektiga Mono, mille eesmärgiks on .NET platformi toomine teistele operatsioonisüsteemidele. Microsoftil on küll olemas .NET versioon FreeBSD ja MacOS X jaoks (Shared Source Common Language Infrastructure), kuid selle litsentsi peetakse avatud lähtekoodiga tarkvara jaoks liiga piiravaks.

2005. aastal ilmus .NET v2, 2006 lõpus .NET v3. Eriti viimane, v3, on edasiminek lausa seitsmepenikoormasaabastega. Nii oli .NET v3’e lisandunud Windows Presentation Foundation (Avalon) ja Windows Communication Foundation (Indigo), mis tõotavad programmeerimist oluliselt muuta. Tulemas on v3.5, mis lisab LINQ toe ja muudki.

C#

C# (hääldatakse c-sharp, mitte nagu Eestis levinud c-trellid) on otseselt .NET platformi jaoks loodud ja ka kõige rohkem kasutatav dotnet-keel. C# meenutab süntaksilt eelkõige C’d, kuid kuna selle loomisel olid tegevad ka Delphi loojad, siis on nii süntaks kui ka kogu keel C’st oluliselt inimsõbralikum.

C# arenduskeskkonnaks on eelkõige Microsoft Visual Studio (hetkel VS 2005, tulekul on uus versioon koodnimega Orcas, mis toob küllaltki suuri muudatusi), mis on ilmselt hetke progressiivsem ja mugavaim arenduskeskkond.

Tasuta on saadaval veidi lahjem Visual Studio Express – kui Microsoft ei kardaks, et neid teised tarkvaraarendusele suunatud produktidega firmad kohtusse kaebavad, siis annaksid nad VS heameelega tasuta ära. Ainult arendage Windowsi jaoks tarkvara! Sellest ka täisversiooni 180-päevane katseaeg, mida lihtsalt pikendada saab. Nagunii on Visual Studio alaliselt ja planeeritult kahjumiga projekt.

Olemas on ka avatud lähtekoodiga ja vabavaraline SharpDevelop, mis kasutusmugavuselt amatöörile Visual Studiost oluliselt kehvem ei ole.

***

Minu kogemused .NET platvormiga olid alguses suhteliselt tagasihoidlikud – mängisin veidike sellega pärast esimese versiooni väljatulekut ja hiljem aitasin tuttaval üht rakendust inimsõbralikumaks teha ja optimeerida. Suuremad kogemused pärinevad sellest ajast, kui tööalaselt hakkasin .NET platformiga tegelema, eelmisel aastal – alguses üsna suurte eelarvamustega, mis aga peagi kadusid.

C# on kindlasti kõige paremini disainitud keel, milles ma programmeerinud olen. Nagu ikka, pole miski asi täiuslik – minu jaoks on vahest kõige häirivam funktsioonimuutujate vaikeväärtuste puudumine, alati tuleb funktsioonid overload‘ida. Kuid samas on ta moodne ja arendajale suunatud keel – kindlasti tehnoloogia tulevikuks, eriti kui arvestada kuidas Microsoft .NET platvormile raha sisse kallab.

2 kommentaari »

  1. kas funktsioonimuutuja on ‘function variable’ ?:P

    kommentaar kirjutas required — 2007-03-27 @ 19:23:11 | Vasta

  2. Ma ise ei ole küll veel .NET’iga üldse tegelenud, sest ma ei soovi oma läpakalt Linuxit maha võtta, aga mis puutub väitesse, et C# on modernseim ja uusim, siis ei tasu kahe silma vahele jätta ka Rubyt.

    2007. aasta seisuga olen ma üldjoontes küll C++ fänn, aga nendest keeltest, mida
    mina siiamaani olen proovinud(Java, Clean, C++, Pascal, VHDL, ehk veel üht koma teist, mis praegu ei meenu), siis
    kõige kiiremini saan ma oma lõbuks skripte ja programmikesi
    kirjutada just Rubys. Näiteks, kasutades Ruby-l baseeruvat
    Makefile’i asendust, Rake’i, saab otse reikfaili(“Rakefile”)
    objektorjenteeritud koodi sisse kirjutada.

    Üks väike koodinäide:

    massiiv=Array.new
    massiiv << “konn”
    massiiv << “kala”
    massiiv << “draakon”
    massiiv.each do |loomanimi|
    # Roppus “puts” tuleneb siin lyhendist “put string”.
    puts “Mina olen ” + loomanimi.gsub(“raak”,”eem”)
    end #tsykkli l8pp

    konsooliväljund oleks järgnev:
    Mina olen konn
    Mina olen kala
    Mina olen deemon

    kommentaar kirjutas Martin Vahi — 2007-07-30 @ 01:36:02 | Vasta


RSS feed for comments on this post. TrackBack URI

Lisa kommentaar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Muuda )

Twitter picture

You are commenting using your Twitter account. Log Out / Muuda )

Facebook photo

You are commenting using your Facebook account. Log Out / Muuda )

Google+ photo

You are commenting using your Google+ account. Log Out / Muuda )

Connecting to %s

Create a free website or blog at WordPress.com.