Teknik
Snabbare och säkrare webbplatser med JAMStack
JAMstack är namnet på en specifik arkitektur för att bygga webbplatser - här berättar vi mer.
Idag finns en mängd olika programmeringsspråk, så som C++, Java och C#. Även om många språk är besläktade med varandra, är alla bra på olika saker. I den här artikeln tittar vi närmare på det objektorienterade programspråket C#.
C#, eller C-sharp som det uttalas, är ett objektorienterat programspråk (OOP) som utvecklades av Microsoft på 90/00-talet. Det är en efterföljare till C++ men har många likheter med Java, en del säger till och med att det är Microsofts svar på Java. Sedan starten har C# kommit att bli ett av de populäraste programmeningsspråken.
Kanske har det blivit så populärt just på grund av att det är besläktat med andra språk, som C++ och Java. Det gör det är relativt enkelt att lära sig och byta till som utvecklare. C# är dessutom ett kraftfullt och enkelt språk, som kan leverera komplicerad kod på ett relativt enkelt sätt. Det lämpar sig därför särskilt bra när man ska utveckla applikationer – både för webben och mobila enheter. Främst används språket för utveckling på Microsofts .NET plattformen, men det går att använda även på andra plattformar.
Att C# är objektorienterat innebär att programmet är uppdelat i mindre delar, vilket gör den mer lätthanterlig. Delarna kallas klasser och beskriver vad vi vet och vad vi kan göra med en viss typ av sak. Det fungerar lite som en mall, eller en byggritning, för hur vissa saker ska fungera och vad som ska finnas med. När vi programmerar med C# innebär det att objekten blir byggda utifrån samma ritning och har samma grund, vilket är en stor fördel.
Man skulle kunna jämföra det med olika lådor som har etiketter (klasser), där varje låda innehåller olika saker (objekt). Tänk dig en snickarbod där man har sorterat och grupperat verktyg i de olika lådorna. Alla skruvmejslar ligger i en låda och alla sågar ligger i en annan. Varje låda är tydligt uppmärkt med en etikett som talar om vad den innehåller. De olika verktygen har också olika funktioner - du hamrar med en hammare och skruvar med en skruvmejsel. Även om de båda är verktyg är de helt olika saker som används till helt olika ändamål.
En klass kan också innehålla variabler och metoder som definierar egenskaper och funktioner. Om vi säger att “Bil” är en klass, så är variablerna bilens egenskaper i form av exempelvis modell, antal dörrar eller hur mycket bensin finns i tanken. Metoderna ger klassen (bilen) funktionalitet som till exempel ”kör framåt” eller ”backa”. Tillsammans blir de byggstenar som man kan återanvända, vilket gör utvecklingen mer kostnadseffektiv.
Klasser innehåller även data som beskriver en specifik sak (ett objekt). Med bil-exemplet skulle ett objekt kunna vara “Min bil”. Objektet använder klassen som mall för att beskriva min specifika bils egenskaper och funktioner. Eftersom koden kan bli ganska omfattande används en kompilator. Den håller ordning och reda och omvandla kod från ett språk till ett annat.
Om vi återgår till verktygen och snickarboden så hade kompilatorn läst av vad som stod på lådans etikett och vad den innehåller. Den hade sedan översatt det till ett språk som är begripligt för snickaren. När allt är strukturerad i olika låder blir det också lättare för snickaren att hitta ett specifikt verktyg när han ska utföra en viss uppgift. Det här spar både tid och i slutändan pengar när man utvecklar en applikation.
För att man ska slippa uppfinna hjulet på nytt samlar C# de olika klasserna i ett bibliotek, eller ramverk. Koden finns då tillgängliga att använda för den som vill. Klassbiblioteket gör koden mer strukturerad, lättläst och enklare att återanvända i flera olika projekt. Det här är bra om man till exempel vill utöka och bygga vidare på en applikation om behovet förändras.
På Limetta gillar vi C# och stacken består av det i botten. Men eftersom alla projekt är olika varierar också de språk, metoder och verktyg vi använder. Vi inkluderar även TypeScript, React eller Vue för att nämna något.