Programmering
januari 13, 2012

Programmering

Programmering är en slags konst säger många och det kan jag väl till viss del hålla med om. Man måste ha en viss kreativitet och skapar-lust innan man kan sätta sig ner och skriva ett bra program. Det är väl bara att skriva vad den skall göra. Det kan väl inte vara nått problem kanske många säger och javisst man kan sätta sig ner och bara skriva rakt upp och ner vad datorn skall göra, men då kommer man troligen att hamna i stora problem till slut. Det kommer troligen en tidpunkt då det inte längre går att lägga till funktionalitet i programmet. Det måste finnas en viss struktur och design i ett program. Man skulle kunna jämföra det med att bygga hus. Det är ju inte fritt fram att bygga hus vart och hur man vill. Det skulle ju kunna resultera i att två byggnader byggs ihop av misstag.

Det räcker inte med att programmering kan ses som en konstart. Det finns en miljon olika tekniker att lösa det problem man ställs inför också, så programmeraren måste ha ett väldigt brett kunskapsområde och vara väl bevandrad i alla möjliga tänkbara tekniker, så en programmerare som lägger studerandet åt sidan blir snabbt efter och kan få väldigt svårt att komma ikapp. En arbetsgivare som anställer en programutvecklare måste samtidigt räkna med att det här är en person som måste utvecklas kontinuerligt och då är det nog bara att försöka komma fram till hur den här personen vill utvecklas. Det finns ju olika typer av personligheter när det gäller att ta in ny kunskap.

I dagsläget finns det två större grenar och typer av programmering skulle man kunna säga. Den ena grenen är den klassiska där program byggs i ett högnivåspråk som kompileras till körbar maskinkod som passar för det system det är tänkt och där processorn kan direkt utföra de instruktioner som har givits i programkod. Den andra grenen är en lite nyare variant där man bygger på det system där programmet skall köras med en så kallad virtuell maskin. Den är virtuell i den bemärkelsen att det finns ingen extra hårdvara utan det är mer en simulering av en dator i datorn. Vad skall det vara bra för då? Jo om man bygger en virtuell maskin som har samma gränssnitt utåt oavsett vilket system den körs på, så åstadkommer man en standard, vilket möjliggör att samma utvecklade programkod kan köras på flera olika typer av fysiska system. Vad skall det vara bra för då? Att utveckla programvara är en kostsam verksamhet där man vill spara så mycket utvecklingstid som möjligt.

Det är i dagsläget två olika grenar som är de dominerade inom programutveckling för virtuella maskiner. Sun Microsystems utvecklade Java-språket 1995 som är uppbyggt på den principen. För att kunna exekvera Java utvecklad programvara måste man alltså installera körmiljön för Java på det system som är aktuellt. Java utvecklades med en tanke att det skulle vara plattformsoberoende, vilket det verkligen har blivit. System skrivna i Java körs i daglsäget på allt ifrån stora datorsystem till små inbäddade system så som mobiltelefoner.

Den andra grenen som hör till virtuella maskiner är Microsoft utvecklade .NET miljön som de släppte 2001. Där valde man en liten annan inriktning. Microsoft hade inte tänkt att det skulle vara ett system som skulle kunna exekvera på andra plattformar än som de själva hade utvecklat det för. Det har dock på senare tid parallellt framtagits ett ramverk som bygger på samma principer som Microsoft utvecklade .NET miljön gör. Det var personal inom dåvarande Novell som utvecklade det så kallade Mono-ramverket och har släppt detta som ett opensource projekt. Microsofts tanke med .NET var snarare att bygga ett ramverk som skulle kunna utvidgas med olika utvecklingsspråk för att det skall kunna passa olika bakgrunder av programmerare. En person som tidigare hade varit verksam och utvecklat programvara i Microsoft Visual Basic skall kunna fortsätta att skriva kod i Visual Basic som är gjord för .NET och en annan utvecklare som kanske är mer van att skriva kod i C, C++ eller Java skall kunna lära sig C# som är ett liknande språk som är gjort för .NET. Microsoft har på senare tid utvecklad .NET miljön så att den skall kunna anpassas till mindre system också för att öka spridningen. De har tagit fram en miljö som de kallar för .NET Compact Framework som är anpassad för mobila handhållna enheter eller liknande där man i princip efterliknar det fullstora ramverkets utvecklingsmiljö. Man har valt att banta ner på funktioner och klasser i ramverket för att få ner storleken. Deras minsta system kallas då för .NET Micro Framework och är då så klart det minsta och är utvecklat för inbäddade system

Kommentera

E-postadressen publiceras inte.

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>