Skriptspråk gör kodning enklare och snabbare, så det är inte förvånande att de används ofta inom webbutveckling.

Detta är dock inte deras enda användningsområde. Det finns även skriptspråk för operativsystem, programvara för statistisk analys, kontors-applikationer, spelmotorer och många andra typer av plattformar.

I det här inlägget får du lära dig vad de betyder och lära känna de bästa exemplen på skriptspråk i år 2024.

Skriptspråk kan utföra olika åtgärder i en viss körtidsmiljö. De kan exempelvis automatisera utförandet av uppgifter, förbättra funktionaliteten hos den överordnade programvaran, utföra konfigurationer, extrahera data från datamängder och annat.

De kan uppstå på två sätt:

  1. En körtidsmiljö kan införa ett eget skriptspråk, t.ex. Bash för GNU-operativsystemet eller VBA för Microsoft Office-programmen.
  2. En körtidsmiljö kan anta ett befintligt skriptspråk. MongoDB’s mongo shell har exempelvis byggts upp kring JavaScript.

Å andra sidan är det ibland skriptspråket som existerar först och som ger upphov till en egen överordnad plattform – hur konstigt det än kan låta.

Detta är vad som hände med Node.js. Det är en körtidsmiljö för backend som skapades för att göra det möjligt för webbutvecklare att använda JavaScript inte bara på frontend utan även på backend, enligt paradigmet ”JavaScript överallt”.

Vad betyder skripting i programmering?

Skriptning innebär i huvudsak att man skriver en serie kommandon som tolkas ett efter ett av en applikation eller en skriptmotor. Även om skriptet vägleder plattformen om vad den ska göra (ger den ett skript att läsa och tolka), utförs utförandet av körtidsmiljön och inte av själva skriptspråket.

Det är på detta sätt som skriptspråken skiljer sig från programmeringsspråk som Java. där kan man exempelvis ”skriva en gång, köra var som helst” (officiell Java-slogan som innebär att Java-applikationer kan köras som fristående applikationer i vilken miljö som helst. Sedan detta myntades har det även blivit WORA-principen, som hänvisar till plattformsoberoende kapacitet).

Skriptspråk vs. programmeringsspråk

Även om termerna ”skriptspråk” och ”programmeringsspråk” ofta används omväxlande är de inte samma sak.

Plattformsspecifik vs plattformsoberoende

Skriptspråk är plattformsspecifika, medan programmeringsspråk är plattformsoberoende. De har nämligen förmågan att exekvera sig själva. Du kan exempelvis köra en Java-applikation på vilket operativsystem som helst.

(Till största delen) tolkad vs kompilerad

Medan programmeringsspråk är kompilerade så är skriptspråk mestadels tolkade. Det finns dock vissa skriptspråk som är både kompilerade och tolkade, exempelvis Python och Groovy.

”Kompilerat” innebär att ett programmeringsspråk har en egen kompilator som översätter syntaxen till maskinkod före körning. Däremot så tolkas skriptspråken rad för rad under körning av tolkaren på den plattform som de körs på.

Snabbare respektive långsammare vid körning

På grund av denna skillnad i implementering körs programmeringsspråk snabbare än skriptspråk. De behöver ju exempelvis inte kompileras i realtid. Kompilatorer utför dessutom en kollektiv felhantering före utförandet, medan tolkar utvärderar koden rad för rad. Som ett resultat så pausar de (eller stannar helt upp) varje gång som de stöter på ett fel.

Detta ökar dessutom den totala exekveringstiden för skriptspråk, även om detta på modern och snabbare hårdvara är ett mindre problem än tidigare.

Mer respektive mindre kodintensivt

Programmeringsspråk är mer kodintensiva. Du måste nämligen göra många saker manuellt som hanteras av plattformen när du nyttjar ett skriptspråk. Om du använder ett skriptspråk behöver du skriva mycket mindre kod.

Fristående appar kontra appar som en del av en stack

Det finns vissa saker som du helt enkelt inte kan göra med ett skriptspråk. Det viktigaste är att du inte kan skapa fristående skrivbords- och mobilapplikationer med ett skriptspråk, eftersom det inte finns någon körtidsmiljö som tolkar dem.

Du kan exempelvis endast använda PHP-ramverk som WordPress och Laravel för webbplatser och webbapplikationer eftersom de använder webbläsaren som körtidsmiljö. På samma sätt körs WordPress-mobilappar i mobila körtidsmiljöer, exempelvis Capacitor, som innehåller webbvisningar.

Skript- och programmeringsspråk – Översikt över skillnaderna

Så de viktigaste skillnaderna mellan skriptspråk vs programmeringsspråk är följande:

Skriptspråk Programmeringsspråk
Plattformsspecifika Plattformsoberoende
(Oftast) tolkade Kompilerade
Långsammare vid körning Snabbare vid körning
Mindre kodintensiva Mer kodintensiva
Du kan skapa appar som en del av en stack Du kan skapa fristående appar

Förvirring om skriptspråk

Det finns några förvirringar om skriptspråk som du ofta stöter på. Låt oss därför ta en titt på dem innan vi går in på de bästa skriptspråken.

Viktigast av allt är att det inte är särskilt meningsfullt att tala om frontend vs backend scriptspråk. Detta trots att många artiklar som du hittar över hela webben använder sig av denna typ av gruppering.

Det finns faktiskt bara ett skriptspråk för frontend som används för närvarande, och det är JavaScript. Tidigare så fanns det exempelvis ActionScript och JScript, men nu är alla föråldrade).

Det är inte frontend vs. backend som är viktigt när det gäller skriptspråk utan den eller de körtidsmiljöer där ett skriptspråk kan köras.

Observera att ”frontend” bara betyder något (bild, typsnitt, markeringar, stilmallar, skript, en annan typ av statisk fil) som en webbläsare kan tolka. Försök exempelvis att öppna en PHP-fil direkt från webbläsaren: det går inte. Detta beror på att en PHP-applikationsserver måste tolka den – så PHP är ett backend-skriptspråk i samband med webbutveckling. Det är istället applikationslagret i en serverstack (t.ex. LAMP) i samband med skriptspråk.

Förutom webbutveckling (Skripting i frontend och backend) kan skriptspråk dessutom användas för flera olika saker. Det kan exempelvis handla om programmering och konfigurering av operativsystem och specifika applikationer/miljöer, manipulering av datamängder, automatisering av uppgifter och mycket annat.

Ett skriptspråk kan dessutom köras i flera olika miljöer.

Vad är inte skriptspråk?

Innan vi går in på de bästa skriptspråken ska vi se vilka kodningsspråk som ibland felaktigt kallas skriptspråk, men som inte kan nyttjas för att skriva skript:

  • Markeringsspråk, som HTML och XML. I HTML finns det attribut för händelsehantering som onclick och onmouseover, men dessa är fortfarande JavaScript-callbacks.
  • Stilmall-språk, t.ex. CSS, Sass och LESS.
  • Alla typer av bibliotek eller ramverk som byggs på ett skriptspråk, t.ex. jQuery, PostCSS, React, Vue, Angular, Rails, Grails, Django, Laravel, WordPress och andra.
  • Språk som kompileras till ett skriptspråk, exempelvis TypeScript och CoffeeScript.
  • SQL eftersom det används för att hantera data i relationella databashanteringssystem (RDBMS) som MySQL och MariaDB. De låter dig inte skriva dynamisk funktionalitet. Många RDBMS har dock skal som låter dig använda ett skriptspråk (exempelvis JavaScript eller Python i MySQL Shell).
  • Körtidsmiljöer för ett eller flera skriptspråk, exempelvis NodeJS.

Vilka är de 13 bästa skriptspråken?

Det finns många bra skriptspråk som skulle förtjäna ett omnämnande i den här guiden, men de är inte under aktiv utveckling längre. Följande 13 skriptspråk uppdateras dock regelbundet och används även i produktion.

Så om du funderar på att lära dig ett nytt skriptspråk som en ny yrkesväg är de alla värda ett försök.

1. JavaScript/ECMAScript

JavaScript
JavaScript

JavaScript är ett genomförande av standarden ECMA-262 som definierar det allmänna skriptspråket ECMAScript (ES). Med andra ord är JavaScript en dialekt av ECMAScript-språket och har därför ingen fristående specifikation. Det använder dock samma syntax som ECMAScript.

JavaScript har förstklassiga funktioner (funktioner behandlas som variabler) och stöder prototypbaserad objektorienterad programmering (befintliga objekt återanvänds som prototyper).

Kod-exempel

ECMAScript använder en syntax med parenteser. Följande JavaScript-kodexempel adderar tal från 1 till 10 och skickar ut resultatet i konsolen (du kan exempelvis testa det i webbläsarens JavaScript-konsol genom att trycka på F12):

let total = 0, count = 1;

while (count <= 10) {
    total += count;
    count += 1;
}

console.log(total);
// 55

Källa: Eloquent JavaScript by Marijn Haverbeke: Introduktion

Användningsområden och miljöer

JavaScript är det skriptspråk som används av moderna webbläsare, exempelvis Chrome’s V8-motor och Mozillas SpiderMonkey-motor. Förutom frontend-webbutveckling kan det även användas i miljöer utanför webbläsaren. NodeJS-körtidsmiljön har skapats för att göra det möjligt för webbutvecklare att använda det på backend.

Skalen till vissa NoSQL-databashanteringssystem, som MongoDB och Apache CouchDB, och vissa relationsdatabas-hanteringssystem, som det tidigare nämnda MySQL Shell, använder det dessutom som skriptspråk.

2. PHP

PHP
PHP

PHP är ett generellt skriptspråk med öppen källkod som används i backend-webbutveckling. Akronymen stod ursprungligen för ”Personal Home Page”, eftersom PHP först skapades för att lägga till dynamiska funktioner till statiska HTML-sidor.

Sedan dess har PHP utvecklats till ett fristående språk. Som ett resultat så används akronymen i betydelsen ”Hypertext Preprocessor”. PHP är löst typat (du behöver inte deklarera variablernas datatyper), kan bäddas in i HTML-dokument och har även objektorienterade funktioner.

Exempel på kod

PHP har en C-liknande syntax. Följande PHP-kodexempel skapar en numerisk matris med fyra element, loopar genom dem, multiplicerar varje element med två och tar bort variabeln $value när loopen är slut.

<?php
$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {
   $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)

unset($value);
?>

Källa: PHP-dokumentation: Kontrollstrukturer

Användningsområden och miljöer

PHP kan köras på olika HTTP-servrar, där Apache och Nginx är de mest populära.

De vanligaste PHP-serverstackarna är LAMP (Linux, Apache, MySQL, PHP), LEMP (Linux, Nginx, MySQL, PHP – används av Kinsta), WAMP (Windows, Apache, MySQL, PHP) och MAMP (macOS, Apache, MySQL, PHP).

Det används dessutom av många populära innehållshanteringssystem (CMS) som WordPress, Drupal och Joomla.Utöver detta så nyttjas det till ramverk för webbapplikationer som Laravel, Symfony och CodeIgniter, som alla är byggda på PHP-språket och som förbättrar det med extra funktioner.

Du kan även använda PHP för lokal utveckling av WordPress. Kolla in vår djupgående guide om de viktigaste skillnaderna mellan Javascript och PHP.

3. Python

Python
Python

Python är för närvarande det näst mest populära kodningsspråketGitHub (efter Javascript). Det är exempelvis omtyckt för sin tydliga och kortfattade syntax – när du kodar i Python behöver du skriva mycket mindre än i de flesta andra språk.

Detta är ett kostnadsfritt projekt med öppen källkod som förvaltas av Python Software Foundation. Det stöder de strukturerade, objektorienterade och funktionella programmeringsparadigmen och har ett omfattande standardbibliotek. Det är helt enkelt en samling av vanligt förekommande Pythonmoduler.

Kod-exempel

Python använder inte krusade parenteser och semikolon är valfritt, så koden är lätt att läsa och skriva. Följande Python-kodexempel loopar genom heltal mellan 0 och 4 och skriver ut dem:

count = 0
while count < 5:
   print(count)
      count += 1

Källa: Lär dig Python: Loops

Användningsområden och miljöer

Den mest populära implementeringen av Python är CPython, skriven i språket C. Det är dessutom referensimplementationen som du laddar ner tillsammans med Pythonspråket. Även om Python är ett tolkat språk använder CPython både ett kompilerings- och tolkningssteg. Först kompileras källkoden till bytekod (inte samma sak som maskinkod) som sedan tolkas vid körning.

Förutom CPython har Python även andra körtidsmiljöer. Vi vill exempelvis nämna PyPy som utelämnar kompileringssteget och endast gör JIT-tolkning (just-in-time). Python-implementationer är plattformsoberoende. Som ett resultat kan de köras på flera olika operativsystem, bland annat Linux, Windows och macOS.

Språket Python används ofta inom maskininlärning, webbutveckling i backend (Django är det mest populära webbramverket), dataanalys, automatisering, vetenskaplig databehandling och webbskrapning.

Omdu vill veta hur du bäst lär dig Python kan du läsa vårt blogginlägg om Pythonhandledning.

4. Ruby

Ruby
Ruby

Ruby är ett skriptspråk med öppen källkod och allmänt användbart språk med en kompakt och lättläst syntax. Det följer principerna för objektorienterad programmering och låter dig skriva en ren och logisk kod. Ruby är därför ett av de enklaste programmeringsspråken att lära sig. I Ruby är allting ett objekt – även typer som är primitiva i de flesta språk, exempelvis booleaner och heltal.

Objektorienterade begrepp som arv, mixins och metaklasser används också flitigt.

Även om Ruby har en rent objektorienterad design stöder det dessutom procedurell programmering (funktioner och variabler som definieras utanför klasser tillhör Self -objektet). Det stöder även funktionell programmering (genom anonyma funktioner, closures och continuations).

Kod-exempel

Ruby har en kortfattad syntax som liknar Python. I följande Ruby-kodexempel definieras klassen KaraokeSong som en underklass till klassen Song:

class KaraokeSong < Song
   def initialize(name, artist, duration, lyrics)
      super(name, artist, duration)
      @lyrics = lyrics
   end
end

Källa: Programmering i Ruby referensguide: Klasser, objekt och variabler

Användningsområden och miljöer

Ruby används främst för webbutveckling i backend och driver några robusta ramverk för webbapplikationer som exempelvis Ruby on Rails. Många populära webbplatser och applikationer körs på Ruby on Rails, bland annat Airbnb, Shopify, GitHub och Hulu.

Ruby är dessutom det språk som många populära verktyg för webbutveckling är skrivna i. Detta gäller framför allt CSS-preprocessorn Sass, den statiska webbplatsgeneratorn Jekyll och den virtuella maskinmiljön Vagrant.

Standardimplementationen av Ruby är YARV (Yet Another Ruby Virtual Machine). Den bytte ut Ruby’s ursprungliga tolk Matz’s Ruby Interpreter (även Ruby MRI eller CRuby) som hade kritiserats för problem med hastighet och skalbarhet.

Det finns dessutom flera konkurrerande körtidsmiljöer för Ruby, exempelvis JRuby (låter dig köra Ruby på Java Virtual Machine). Vi vill även nämna mruby (en lättviktsimplementering som du kan bädda in i din applikation). Utöver dessa så finns även TruffleRuby (Oracles Ruby-tolk som bygger på GraalVM), Rubinius (en molnbaserad virtuell maskin för Ruby), med flera.

5. Groovy

Groovy
Groovy

Groovy är ett otroligt flexibelt språk som är skrivet för Java Virtual Machine (JVM). Det kan användas både som skript- och programmeringsspråk. Språket är ett projekt med öppen källkod som underhålls av Apache Software Foundation. Groovy är ett objektorienterat språk som utökar den java.lang.Object överklass.

Det har dessutom stöd för både statisk och dynamisk typning (typkontroll kan utföras både vid kompilering och vid körning). Groovy har även ett inbyggt stöd för listor, associativa matriser, reguljära uttryck och uppmärkningsspråk som HTML och XML.

Du kan använda Groovy tillsammans med befintliga Javabibliotek.

Kod-exempel

Groovy har en Javakompatibel syntax med hjälp av krusade parenteser. Följande Groovy-kodexempel definierar klassen Coordinates med egenskaperna latitud och longitud och metoden getAt():

@Immutable
class Coordinates {
   double latitude
   double longitude

   double getAt(int idx) {
      if (idx == 0) latitude
      else if (idx == 1) longitude
      else throw new Exception("Wrong coordinate index, use 0 or 1")
   }
}

Källa: Groovy-dokumentation: Semantics

Användningsområden och miljöer

Eftersom Groovy kompileras till Java-bytekod kan du använda det som ett allmänt programmeringsspråk som liknar Java. I det här fallet kan du kompilera källkoden till bytekod före körning med hjälp av kompilatorn groovyc (motsvarande javac).

Det finns dessutom många Groovy-implementationer som låter dig använda det som ett skriptspråk. De mest populära är ramverket för webbapplikationer Grails (tidigare känt som Groovy on Grails) och byggautomatiserings-verktyget Gradle, men det finns flera andra också.

6. Perl

Perl
Perl

Perl är ett allmänt skriptspråk som har funnits i mer än trettio år (sedan 1987). Det skapades ursprungligen som ett UNIX-skriptspråk för rapportbehandling. Det är även därifrån som namnet kommer, eftersom akronymen Perl står för ”Practical Extraction and Reporting Language”.

Språket Perl blev populärt på 1990-talet när programmerare började använda det i stor utsträckning för CGI-skript (Common Gateway Interface). Det är en äldre gränssnittsspecifikation för webbservrar (för närvarande används det främst av äldre webbplatser).

Trots att Perl var en relativt tidig aktör är Perl fortfarande 11:e på TIOBE-indexet och det 21:a mest populära språket på GitHub (i oktober år 2020).

Kod-exempel

Perl’s syntax liknar C-språket. Perl-kodexemplet nedan definierar först underrutinen square() som beräknar och returnerar kvadraten på ett tal. Efter detta skickas värdet 8 som argument, underrutinen körs och resultatet sparas i variabeln $sq:

sub square {
   my $num = shift;
   my $result = $num * $num;
   return $result;
}

$sq = square(8);

Källa: Perl-dokumentation: Perl Intro

Användningsområden och miljöer

Även om Perl numera inte är det vanligaste valet bland webbutvecklare kan det användas framgångsrikt i backend-utveckling. Förutom CGI-körtidsmiljön körs det dessutom på webbservrarna Apache och Nginx. LAMP-stacken är egentligen LAMPP, som står för Linux, Apache, MySQL, PHP och Perl.

Det finns dessutom några ramverk för webbutveckling i Perl, där Catalyst, Mojolicious och Dancer är de mest populära.

Perl används av flera kända webbplatser och applikationer som Amazon, IMDB, Booking.com och BBC iPlayer. Det används dessutom inom andra områden, exempelvis nätverksprogrammering och systemadministration. Du kan även kolla in Comprehensive Perl Archive Network (CPAN) där 25 000+ Perlprojekt med öppen källkod finns tillgängliga för nedladdning.

7. Lua

Lua
Lua

Lua är ett snabbt och lättviktigt skriptspråk. Ordet ”lua” betyder ”måne” på portugisiska, eftersom språket utvecklas och underhålls av Pontifical Catholic University of Rio de Janeiro i Brasilien. Lua stöder de procedurella, objektorienterade och funktionella programmeringsparadigmen.

Eftersom Luas tolkare är skriven i C kan det lätt integreras i applikationer med hjälp av dess C API. Med detta sagt kan du använda Lua för att utöka befintliga applikationer som är skrivna i C-baserade språk. Det kan exempelvis handla om C, C++, C#, Java, Perl, Ruby och andra.

Exempel på kod

Lua har en kortfattad och lättläst syntax som liknar Python och Ruby. Följande Lua-kodexempel visar hur man använder if-then-else-anvisningen. Först utvärderar det variabeln op och utför sedan grundläggande aritmetiska operationer beroende på dess värde:

if op == "+" then
   r = a + b
elseif op == "-" then
   r = a - b
elseif op == "*" then
   r = a * b
elseif op == "/" then
   r = a / b
else
   error("invalid operation")
end

Källa: Programmering i Lua referensguide: Statements

Användningsområden och miljöer

Standard Lua-implementeringen tolkar inte källkoden direkt utan kompilerar den först till byte-kod som den senare kör på den virtuella Lua-maskinen. Eftersom allt detta sker vid körning finns det inget manuellt kompileringssteg som du behöver utföra. Men du kan exempelvis välja att kompilera Lua före körning för att förbättra prestandan).

Det finns även andra Lua-implementeringar, exempelvis LuaJIT, LuaVela och många andra.

Lua används ofta för att utveckla videospel, till exempel Angry Birds, World of Warcraft och Grim Fandango. Eftersom det är lätt att bädda in är det dessutom ett vanligt val för inbäddade enheter som set-top-boxar, instrumentpaneler i bilar (t.ex. Volvo), IP-kameror (t.ex. Cisco) och annat.

Det kan även användas vid webbutveckling. Både Apache- och Nginx-servrarna har nämligen en Lua-modul (här finns Apache’s mod_lua och här finns Nginx ngx_http_lua_modul). Wikipedia valde Lua som sitt mallskriptspråk, och användargränssnittet i Adobe Photoshop Lightroom är också skrivet i Lua.

8. Bash

Bash

Bash är namnet på både en kommandoradstolkare (shell) för operativsystemet GNU och det tillhörande skriptspråket. ”Linux” är i själva verket GNU-operativsystemet som använder Linux-kärnan (en kärna är kärnan i operativsystemet, den första applikationen som operativsystemet laddar).

Detta är en ersättning för det ursprungliga UNIX Bourne shell (sh) – Bash-akronymen står för ”Bourne Again SHell” (ett ordvitsord för ”born again shell”).

Förutom att Bash är en överordnad syntax till Bourne shell inkluderar den dessutom funktioner från andra skriptspråk för skal, t.ex. KornShell (ksh) och C shell (csh). Det handlar exempelvis om redigering av kommandoraden och kommandohistorik. Du kan använda Bash i interaktivt läge (du utför ett kommando i taget och väntar på maskinens svar) och i skriptläge (du kör en uppsättning kommandon – ett Bash-skript – på en gång).

Exempel på kod

Precis som de flesta CLI-skriptspråk har Bash en enkel och beskrivande syntax. Följande Bash-kodexempel väljer en fil från den aktuella mappen och ger ut ett meddelande med filens namn och index:

select fname in *;
do
   echo you picked $fname ($REPLY)
   break;
done

Källa: Bash Referens Manual: Conditional Constructs

Användningsområden och miljöer

Du kan använda Bash för att göra ändringar och utföra olika åtgärder i anslutning till ditt operativsystem. Det går exempelvis att utföra kommandon, utföra uppgifter som de flesta människor skulle göra med hjälp av ett grafiskt användargränssnitt (t.ex. skapa, flytta eller ta bort mappar och filer). Du kan även anpassa och automatisera administrativa uppgifter, ansluta till en fjärrserver och mycket annat.

Bash är standardskalet för många Unix-baserade operativsystem. Detta inkluderar de flesta Linux-distribueringar och alla macOS-versioner fram till macOS Catalina som ersatte Bash med Z shell (Zsh) år 2019. Du kan dessutom köra Bash-skript i Windows 10 med hjälp av kompatibilitetslagret Windows Subsystem for Linux (WSL) som har utvecklats av Microsoft.

9. PowerShell

PowerShell
PowerShell

Ursprungligen var PowerShell ett kommandoradsskal och skriptspråk enbart för operativsystemet Windows. Sedan dess har Microsoft öppnat och flyttat det från .NET Framework, som endast kan skapa Windows-applikationer, till .NET Core. Där kan man skapa applikationer för Windows, Linux och macOS. Som ett resultat så är PowerShell numera helt plattformsoberoende.

Det har dessutom bytt namn från Windows PowerShell till PowerShell Core. Detta motsvarar det underliggande ramverket. Till skillnad från de flesta kommandoradsskalor accepterar och returnerar PowerShell .NET-objekt i stället för vanlig text. Det skapas därför nya möjligheter till automatisering av uppgifter.

Exempel på kod

PowerShell har en kompakt syntax som gör det snabbare att arbeta på kommandoraden. PowerShell-kodexemplet nedan skapar en säkerhetskopia av filen boot.ini och sparar den sedan i filen boot.bak:

Copy-Item -Path C:boot.ini -Destination C:boot.bak

Källa: PowerShell-dokumentation: Arbeta med filer och mappar

Användningsområden och miljöer

Du kan använda PowerShell på operativsystemen Windows, Linux, macOS och vissa ARM-enheter (t.ex. wearables, multimediaspelare, surfplattor och andra elektroniska konsumentenheter).

PowerShell kan dessutom nyttjas för systemadministration, automatisering av uppgifter och konfigurationshantering. Om du vill hitta PowerShell-moduler och -skript kan du även titta på PowerShell Gallery och Microsofts officiella samling av exempelskript.

10. R

R

R is both a software environment and scripting language that you can use for statistical computing, data analysis, and graphical display. It’s a free and open source GNU project and an implementation of the S statistical computing language (not in active development anymore).
R allows you to use many different statistical techniques such as classical statistical tests, clustering, time series analysis, linear and non-linear modeling, and others.

Code Example

R’s syntax is different from most scripting languages and has some unusual elements, too — for instance, the primary assignment operator is <- instead of the = equals sign and it has loopless loops — see more about the quirks of the R syntax in this beginner’s guide to R by Sharon Machlis.

The following R code example defines a names attribute for the fruit vector (basic data structure in R that contains elements of the same type) that uses alphanumeric names (orangebananaapplepeach) to help identify its components. Later, the lunch (or another) subvector can access each component using its alias name:

> fruit <- c(5, 10, 1, 20)
> names(fruit) <- c("orange", "banana", "apple", "peach")
> lunch <- fruit[c("apple","orange")]

Källa: En introduktion till R: Indexvektorer; välja och ändra delmängder av en datamängd

Användningsområden och miljöer

Programvarumiljön R är plattformsoberoende. Du kan köra den på operativsystemen Windows, Linux och macOS. R’s standard-implementering är dessutom tillgänglig från vissa andra skriptspråk, exempelvis Python och Perl. Som ett resultat kan du få tillgång till alla statistiska funktioner i R med hjälp av dessa skriptspråk.

Förutom standardmiljön för R kan du använda skriptspråket R även i andra miljöer, t.ex. pqR (står för ”a pretty quick version of R”) och Renjin (en R-implementering ovanpå Java Virtual Machine).

11. VBA

VBA

VBA står för Visual Basic for Applications och är en implementering av programmeringsspråket Visual Basic 6 (inte i aktiv utveckling sedan 2008). Det har skapats för Microsoft Office-applikationer för att göra det möjligt för utvecklare att automatisera repetitiva uppgifter. Det går även att lägga till nya funktioner och interagera med slutanvändarna av dokumenten.

I likhet med Visual Basic följer VBA det händelsestyrda programmeringsparadigmet. Det sätter händelser som exempelvis användarhandlingar i centrum som sedan driver applikationens flöde.

Eftersom Microsoft Office-applikationerna har ett grafiskt användargränssnitt kan du fästa VBA-skript till menyknappar, tangentbordsgenvägar, makron (programmerbara mönster) och OLE-händelser (Object Linking and Embedding som gör att du kan styra en applikation från en annan; det är en proprietär Microsoft-teknik).

Kod-exempel

Eftersom VBA bygger på Visual Basic (som är en förstärkning av BASIC) används en syntax som liknar språken i BASIC-familjen (Beginners’ All-purpose Symbolic Instruction Code). Som ett resultat är det mycket lättanvänt för nybörjare.

I VBA-kodexemplet nedan används GetCertificateDetail()-metoden för SignatureInfo-objektet för att få fram utgångsdatumet för ett digitalt certifikat:

Sub GetCertDetails()
Dim objSignatureInfo As SignatureInfo
Dim varDetail As Variant

strDetail = objSignatureInfo.GetCertificateDetail(certdetExpirationDate)

End Sub

Källa: Office VBA-referens, SignatureInfo-objekt

Användningsområden och miljöer

Skriptspråket VBA är inbäddat i de flesta Microsoft Office-applikationer. Några exempel är Access, Excel, Office för Mac, Outlook, PowerPoint, Project, Publisher, Visio och Word. Varje applikation har en separat referensguide på Microsofts dokumentationssida, medan allmänna VBA-begrepp beskrivs i biblioteksreferensen.

Förutom Microsoft Office-applikationerna finns det andra applikationer som också stöder VBA, exempelvis AutoCAD och CorelDRAW.

12. Emacs Lisp

Emacs Lisp

Emacs Lisp är ett domänspecifikt skriptspråk som är utformat för GNU Emacs-texteditorn. Det är en dialekt av programspråksfamiljen Lisp (namnet kommer från LISt Processor).

Emacs Lisp har utformats för att användas i en kodredigerare. Det har därför en funktionsuppsättning som är specifik för den miljön, exempelvis textskanning och parsning, buffert (objekt med redigerbar text) och displayhantering, med mera.

Skriptspråket Emacs Lisp är nära integrerat med själva redigerar-gränssnittet. Som ett resultat är varje kommando även en Lisp-funktion som du kan anropa från ditt skript, och även anpassningsparametrarna är Lisp-variabler.

Kod-exempel

Syntaxen i Emacs Lisp är baserad på en helt parenteserad prefixnotation som kan vara lite svår att läsa till en början. Särskilt om du inte har arbetat med något Lisp-språk tidigare.

Följande kodexempel för Emacs Lisp definierar två variabler (symboler) och tilldelar var och en av dem en lista med värden. De får en lista med träd (pine, fir, oak, maple) till symbolen trees och en lista med växtätare (gazelle, antelope, zebra) till symbolen herbivores:

(setq trees '(pine fir oak maple)
   herbivores '(gazelle antelope zebra))

Källa: En introduktion till programmering i Emacs Lisp: Sätta värdet på en variabel

Användningsområden och miljöer

Textredigeraren Emacs är en plattformsoberoende applikation som du kan installera på Windows-, Linux- och macOS-maskiner.

Med hjälp av skriptspråket Emacs Lisp kan du utöka och anpassa kodredigeraren, upprepa och automatisera processer. Du kan även skapa grafer, begränsa fokus till specifika områden (för säkerhet), söka i reguljära uttryck, lagra text, definiera lägen och tangentbord, ställa frågor till användare och utföra många andra åtgärder.

Det finns även några konfigurationsramverk för Emacs Lisp – Doom Emacs och Spacemacs är de mest kända.

13. GML

GML

Akronymen GML står för GameMaker Language. Det är ett bra exempel på ett domänspecifikt skriptspråk som används inom spelutveckling. GML är ett proprietärt skriptspråk som tillhör GameMaker Studio 2, en plattformsoberoende spelmotor och utvecklingsplattform som ägs och underhålls av YoYo Games.

Även om GML huvudsakligen används för att styra spelobjekt är det inte ett objektorienterat språk utan ett procedurellt språk. Som ett resultat blir det möjligt att anropa anpassade skript från alla spelobjekt.

Förutom skriptspråket GML har GameMaker Studio 2 även ett visuellt skriptverktyg som kallas Drag and Drop (DnD). På grund av den flexibla karaktären hos GameMaker Studio 2 kan du även blanda DnD med dina GML-skript.

Kod-exempel

Syntaxen i GML liknar JavaScript och andra C-lika språk.

Följande GML-kodexempel får ett spelobjekt att röra sig horisontellt mot muspekaren på skärmen med en hastighet av 5 pixlar per steg. När det når pekarens aktuella position skapar skriptet ett lager med explosionseffekt, kör denna (det finns en explosionseffekt på skärmen) och förstör sedan instansen (explosionseffekten tas bort):

if mp_linear_step(mouse_x, mouse_y, 5, 0) {
   instance_create_layer(x, y, "Effects", obj_Explosion);
   instance_destroy();
}

Källa: GameMaker Studio 2 Docs – Scripting – GML Reference – Movement and Collisions – Motion Planning

Användningsområden och miljöer

GML tolkas av GameMaker Studio 2 som du måste köpa om du vill utveckla spel med detta skriptspråk.

Priset beror på vilken plattform som du vill skapa spel för, Mac- och Windows-spel är de billigaste. Plattformsoberoende (Windows, macOS, Ubuntu) datorspel, HTML5-webbspel, UWP-spel (Universal Windows Platform) och plattformsoberoende (Android, Fire, iOS) mobilspel ligger i mellanskiktet. PS4, Xbox One och Nintendo Switch är de dyraste.

Några exempel på videospel som har skapats med GML är Blackhole, 10 Second Ninja X, Death’s Gambit, Deltarune och flera andra.

Sammanfattning

Det råder ingen tvekan om att skriptspråk är fascinerande. De finns i många olika varianter, syntaxer och implementeringar och kan användas till massor av saker.

Från att bygga dynamiska webbplatser till att automatisera systemadministration, skapa videospel och så vidare.

De tre viktigaste sakerna att komma ihåg om skriptspråk är följande:

De kan inte köras på egen hand utan behöver alltid en miljö (implementering, körtid) med en tolk för just det skriptspråket.

Ibland kan man använda generella skriptspråk för att få tillgång till miljöer och plattformar som i första hand skapats för andra programmerings- eller skriptspråk. Tänk på JRuby (låter dig köra Ruby på Java Virtual Machine) och Renjin (R-implementering även på JVM). Vi vill även nämna Rpy2 (R-gränssnitt som du kan använda från Python).

Innan du lär dig ett nytt skriptspråk är det alltid en bra idé att kontrollera dess aktuella popularitet med hjälp av TIOBE-indexet eller GitHut.

Beroende på populariteten hittar du dessutom fler eller färre exempelskript, GitHub-arkiv, modulbibliotek, referensguider, detaljerade handböcker och app-showcases. De kan hjälpa dig att komma igång med språket… och få bättre betalda projekt och jobb!

Anna Monus

Anna Monus är en professionell teknisk skribent och redaktör som täcker webbutveckling, programmering, cloud computing, teknisk kultur, tillgänglighet och andra spjutspetsämnen. Hennes arbete har publicerats av de största tekniska publikationerna och bloggarna runt om i världen, som IBM Cloud, Envato, Raygun, Hongkiat, LogRocket och andra. Se mer på hennes hemsida eller X @azaleamollis.