Blogg » Vilket programmeringsspråk användes för att bygga ...?

Visste du att det för närvarande finns över 700 olika programmeringsspråk? Den här siffran ser imponerande ut, men det är bara en bråkdel av språken som används av 99 % av världens kodare. Och fastän vi pratar om de 10 största språken är det inte helt lätt att avgöra vilket språk som användes för att skapa exempelvis Facebook, och vilket språk som egentligen utgör kärnan i ditt favoritspel.

 

När det gäller frågan ”vilket programmeringsspråk användes för att bygga Instagram/mobilspel/en specifik webbplats?” handlar det för de flesta av oss mest om att stilla vår nyfikenhet lite. Men när det handlar om blivande utvecklare, ställer de sannolikt frågan för att klura ut vilket språk de ska lära sig, baserat på den typ av programvara de själva föredrar.

 

Oavsett vilken av kategorierna du tillhör kommer du att få ett fullständigt svar på den här frågan nu direkt, med ett stort urval av exempel. Nu tar vi reda på vilket programmeringsspråk som användes för att bygga ...

 

Enkla webbplatser

 

De absolut enklaste webbplatserna, den typ som du förmodligen fick skapa under dina lektioner i datakunskap på gymnasiet, kan skapas med HTML. De här ser emellertid väldigt grundläggande ut och saknar funktionella element på sidorna. Här följer ett typexempel på en sådan webbplats:

 

 

Det här är inte vad du förväntar dig att se i en diskussion om vackert byggda webbplatser. För att säkerställa att din webbplats får en hyfsad design vill du förmodligen använda CSS, som ser till att de visuella elementen på webbplatsen blir unika.

 

Och slutligen, om du behöver lägga till interaktiva element på din webbplats, som former, animationer, knappar, popupfönster, frågesporter osv., kommer du att använda Javascript.

 

De två förstnämnda är inte programmeringsspråk: HTML är ett märkspråk för hypertext, medan CSS är stilmallar för layout av XML- och HTML-dokument. Javascript, å andra sidan, är ett fullvärdigt programmeringsspråk som används för att koda skript för webbplatser och enklare applikationer.

 

Men det handlar bara om s.k. gränssnittsorienterad bearbetning (front-end). Om du gräver djupare i appens dataåtkomstlager som drivs av servern och inte klienter, kommer du att se olika typer av skript som skiljer sig från en webbplats till en annan.

 

När vi tittar på den här statistiken, ser vi att basbearbetningen (back-end) på 78,5 % av alla webbplatser skapas med PHP. Det förklaras av att omkring 35 % av alla webbplatser använder Wordpress som CMS och baserar dem på Wordpress ”sidbyggare”. Wordpress är i sin tur baserat på PHP.

 

Andra språk som används på webbplatser är Java (3,5 %), Ruby (3,3 %), Scala (1,6 %) och Python (1,4 %). Airbnb är till exempel baserat på Ruby, Apples webbplats är en kombination av Java och Scala, medan Reddit använder Python som primärt programmeringsspråk.

 

Sociala medier som Facebook, Instagram och Twitter

 

På tal om Reddit är det mer av ett onlinecommunity än bara en webbplats. Det ligger någonstans mellan att vara en nyhetsaggregator och en social nätverkstjänst. Vi vet också att den näst mest populära sociala medietjänsten, Instagram, är skrivet uteslutande i Python. Det här språket har en enkel syntax och rekommenderas som ett bra första språk att lära sig för nybörjare i branschen.

 

Instagram-upplevelsen har också visat att Python inte behöver vara en kompromiss mellan enkelhet och effektivitet. Det är helt skalbart, till och med för enorma projekt som Instagram, Pinterest och YouTube, som utöver det dessutom är överlastade med tung grafik.

 

Facebook startade som en PHP-webbplats, men utvecklade sedan sin egen PHP-dialekt kallad Hack. Nu är Facebook till stor del baserat på just Hack, men inkluderar även delar baserade på Python, C++ samt Java och mindre kända språk som D eller Erlang. Twitters ursprungliga gränssnitt använde Ruby on Rails, men ändrade senare sitt basspråk till Scala. LinkedIn håller sig till Java och Scala.

 

Meddelandetjänster då?

 

Lyssna inte på folk som hävdar att Instagram och TikTok ligger högst upp på behovslistan för sociala medier-beroende. Det stämmer inte längre eftersom meddelandetjänster tagit över ledartröjan. WhatsApp är den tredje mest populära sociala medier-plattformen efter Facebook och YouTube, följt av Facebook Messenger och WeChat.

 

Meddelandetjänster är snabba, praktiska och besparar oss användare en massa oönskad fluff som vi annars stöter på i våra flöden. På det här sättet har dessa tjänster blivit precis lika effektiva kommunikationsmedel som sociala medier, men utan den så välbekanta informationsöverdosen.

 

De teknikstackar som användes för att bygga den här programvaran skiljer sig också åt. WhatsApp, WeChat och den tidiga versionen av Facebook Messenger baseras på Erlang. Trots att Erlang inte är så välkänt, är det ett mångsidigt programmeringsspråk som även används av Amazon, Ericsson och Cisco för olika ändamål. Språket är bra på att hantera flera anslutningar och dirigera meddelanden, vilket är skälet till att det används av många meddelandetjänster.

 

Viber och Telegram använder flera olika språk. Viber använder C, C++ och Java för skrivbordsappen. Telegram har ungefär samma upplägg; dess teknikstack inkluderar C, C++ och Qt. För sina mobilappar använde båda naturligtvis Java för Android och Objective-C för iOS (senare migrerat till Swift).

 

Stora spel som GTA, PUBG och RDR

 

Under 1970-talet var det i stor utsträckning programmerare och mjukvaruingenjörer med sin exklusiva tillgång till datorer som populariserade de första videospelen. Det är ganska tydligt att mer eller mindre samma människor låg bakom varje titel som utvecklades på den tiden. Videospel har förändrats mycket sedan dess, men en ganska stor andel av dagens mjukvaruutvecklare gillar dem fortfarande. Vissa av dem valde till och med yrket på grund av sin kärlek till videospel.

 

”Vill du att fler ska programmera? Uppmuntra dem att spela mer videospel” – sa Mark Zuckerberg, grundaren av Facebook. Och eftersom videospel kan vara inkörsporten till att bemästra ett yrke, är det hög tid att ta reda på vilka språk som egentligen används för att skapa dem.

 

Och så här ligger det till: Stora projekt som GTA, Red Dead Redemption, PUBG eller Assassin’s Creed använder sig inte av ett programmeringsspråk på samma sätt som till exempel meddelandetjänsterna ovan. De använder spelmotorer (ramverk, arkitektur osv.) som huvudsaklig utvecklingsmiljö, och dessa motorer baseras ofta på C, C++ eller Java. Spelmotorer definierar grafik, fysik, ljud, animationer och även AI som vi kommer att stöta på i det sista spelet.

 

Både GTA 5 och RDR 2 baseras på Rockstar Advanced Game Engine (RAGE). Några av de tidigare spelen i serierna, däribland GTA 3, Vice City och San Andreas, använde sig av spelmotorn Renderware.

 

PUBG baseras på Unreal Engine 4 jämte titlar som Dead by Deadlight, Fortnite och Tropico 6. Witcher 3 drivs av REDengine 3, medan Assassin’s Creed: Odyssey använder AnvilNext. Samtliga är baserade på C++. Så om du vill bli spelutvecklare, vet du vad du ska lära dig.

 

Casinospel på nätet

 

När man talar om casinospel på nätet kommer 7 av 10 personer att tänka på spelautomater. Enligt den här rapporten föredrar 71 % av alla casinospelare spelautomater eller videopoker framför andra typer av spel. Rent tekniskt är dessa spel också de mest intressanta att titta närmare på.

 

Moderna spelautomater behöver även en stark basbearbetning på serversidan eftersom det krävs kommunikation mellan casinoservrar och spelleverantörerna för att säkerställa  processen där spelautomater genererar ett utfall. Utfallet representeras av ett specifikt nummer, så de flesta casinon använder en dedikerad hårdvara med slumptalsgeneratorer (RNG) för att generera slumpmässiga kombinationer.

 

Således bör varje spelautomat programmeras på ett sätt som säkerställer omedelbar dataöverföring mellan casinoservrar och spelautomatens basbearbetning på servernivå. Du behöver alltså vara skicklig i C++ eller Java för att bygga en spelautomat, eftersom de inte skiljer sig så mycket från andra spel.

 

Casinospel använder sig emellertid inte av spelmotorer utan fungerar mer som webbapplikationer. I teorin innebär det att du kan använda ett annat språk utöver dessa två. Och du behöver definitivt JavaScript för gränssnittsbearbetning. Kombinera Javascript, HTML5 och CSS3 för att göra spelet visuellt gångbart och responsivt oavsett enhet, inklusive mobiler.

 

Mobilappar och spel

 

Under 2020 spenderar 90 % av användarna sin tid i appar och föredrar dem framför webbläsaren i mobilen. Så istället för att bara anpassa en webbplats för mobilen (vilket borde ske automatiskt), går företagen nu ännu längre genom att utveckla mobilappar helt dedikerade till deras tjänster. 

 

Den mobila miljön domineras av två operativsystem: Google Android och Apple iOS. Båda har sina egna direkta programspråk för apputveckling. Om du vill skapa en app eller ett spel för Android, använd Java. Om ditt val är iOS, behöver du bemästra Swift, och helst även Objective-C.

 

Det finns också några ramverk för plattformsoberoende mobilappsutveckling. Appar som skapas med hjälp av dessa kallas för hybrider och kan utvecklas mycket snabbare och på ett enklare sätt. De har dock vissa nackdelar som sämre prestanda än appar som utvecklats med direkta programspråk. Populära ramverk för utveckling av hybridappar är Ionic, React Native och Apache Cordova.

 

Artificiell intelligens

 

AI är den mest komplexa produkten på vår lista och samtidigt den produkt som trendar snabbast. Marknaden för AI förutspås växa med 840 % under kommande fem år och vara värd 126 miljarder dollar 2025. Det uppskattas emellertid att det just nu bara finns några hundratals AI-specialister totalt i världen, även om den nuvarande tillväxttakten skulle kräva miljoner.

 

Således är AI en nisch med framtiden för sig för alla som överväger en karriär inom mjukvaruutveckling. AI-färdigheter kräver mer tid och resurser för att verkligen tillägna sig, men den genomsnittliga lönen för en AI-ingenjör är å andra sidan ofta dubbelt så hög som lönen för en vanlig mjukvaruutvecklare.

 

Vilket programmeringsspråk använder de? Inte helt förvånande så är Python toppvalet för AI-lösningar. 57 % av yrkesverksamma i branschen är till exempel mer benägna att använda Python än C++, ett annat populärt språk för AI-mjukvara.

 

Slutsats

 

När vi talar om de mest använda programmeringsspråken totalt sett, kan det vara intressant att titta på Stack overflows utvecklarenkät för 2019. 69,7 % av de tillfrågade använder Javascript för dagliga uppgifter, 63,1 % använder HTML och CSS. Man kan således utgå från att de flesta utvecklare i världen är gränssnittsorienterade. De mest populära serverspråken är Python (används av 39,4 % av professionella utvecklare) och Java (används av 39,2 %).

 

Den här statistiken visar att spelutveckling inte är så vanligt, medan webbplatsutvecklingen är det mest utbredda. Samtidigt kräver mer komplexa produkter som Googles ekosystem eller artificiell intelligens en bredare teknikstack för att utveckla.