En fråga som aldrig dör ut inom systemutveckling är vilket programmeringsspråk man ska använda. Det fylls ständigt på med nya språk, samtidigt som de etablerade får ny funktionalitet. Lägg till det att kraven på utvecklare ständigt förändras, så blir resultatet att det kan vara klokt att omvärdera språkvalet med jämna mellanrum.
Här tipsar IDG News om 9 språk att hålla ögonen på.
1. Kotlin är ett modernt alternativ till Java
Java är förträffligt språk som fungerar på många av de populäraste plattformarna genom tiderna. Men det börjar bli rätt gammalt, med brister som gör sig påminda. Kotlin som skapats av verktygsleverantören Jetbrains, som bland annat har IntelliJ i sortimentet, är designat för att kompilera snabbt, samexistera med Java och att åtgärda en del brister i Java.
Kanske allra bäst med Kotlin är den omsorg som lagts på hanteringen av nullvärden, vilken kan kräva mycket arbete. Eftersom man är tvungen att definiera vilka variabler som ska kunna ha nullvärden går det att kontrollera hur de hanteras automatiskt.
Google stöder Kotlin för Androidutveckling och det går att kompilera Kotlinkod till Javascript. Kotlin ökar i popularitet, till exempel hos en del stora banker.
Läs också: Google helgarderar med nytt språk på Android
2. Erlang: Funktionellt i realtid
Erlang är bekant här i Sverige, eftersom det såg dagens ljus på Ericsson. Det är ett funktionellt språk som lämpar sig väl för parallellism, vilket gjort att det blivit aktuellt på senare år. Det bygger till stor del på att dela upp program i självständiga delar som kommunicerar med varandra och lämpar sig väl för realtidslösningar med höga krav på datakvalitet.
Erlangfans skryter ibland om att hantera 20 miljoner samtidiga processer på en webbserver. Det ska bland annat bero på smart hantering av resurser för processer.
3. Go är enkelt och känns dynamiskt
När folk på Google undersökte vilka språk som finns tillgängliga tyckte man att många var röriga, komplexa och bjöd på dåliga prestanda, vilket ledde till att man skapade ett nytt. Go såg dagens ljus 2009. Det påminner om C, men bjuder på mer inbyggd funktionalitet, till exempel vad gäller hantering av datatyper.
Det är flexibelt, vilket gör att många tycker att det påminner om dynamiska språk, trots att datatyper ska anges. Det övergripande designmålet för Go har hela tiden varit att det ska vara ett enkelt och litet språk. Det används flitigt inom Google och allt oftare även på andra ställen.
Läs också: 5 fördelar och 5 nackdelar med Googles superspråk Go
4. Ocaml för komplexa datahierarkier
Vissa programmerare gillar dynamiska språk för att de slipper deklarera datatyper för sina variabler. Andra vill kunna ange att en variabel ska innehålla till exempel heltal eller textsträngar. Och så finns det de som vill kunna definiera avancerade typhierarkier, eller till och med hålla på med ”datatypsalgebra” (om det finns något sådant uttryck). Och för dem passar Ocaml.
Det handlar till exempel om listor, tabeller över ”heterogena typer” som kombineras, polymorfism, primitiver för mönstermatchning, inkapsling av data, metatyper, metametatyper, och så vidare. Krydda anrättningen med automatisk minneshantering och bra portabilitet. Om det här låter spännande kan du ta en titt på Ocaml.
5. Typescript är Javascript på allvar
De som använder Javascript men tycker att det kan bli lite rörigt rekommenderas att titta på Typescript, Microsofts turbovariant av det populära språket. Det bjuder bland annat på datatyper för variabler, vilket kanske tilltalar Javaprogrammerare som är intresserade av Javascript.
Datatyper ger fördelar till exempel vid felsökning och gör det enklare att bygga bra utvecklingsverktyg för Javascript. Dessutom är det populära ramverket Angular numera skrivet i Typescript.
6. Rust är användbart för systemprogrammering
Mozilla språk Rust är tänkt att vara en modern ersättare till C. Det är mycket populärt, vilket till exempel märks på den välkända sajten Stack Overflow. En anledning är säkert att många av problemen med C åtgärdas med Rust.
Bland fördelar märks till exempel smart minneshantering och ett flexibelt typsystem, dessutom uppskattas goda prestanda för program som byggs. Man kan likna Rust vid en C-variant för vilken många programfel upptäcks tidigt.
7. Scala: Funktionellt på Javaplattformen
Om du vill använda en kombination av objektorienterad och funktionell programmering på Javaplattformen så är Scala ett bra alternativ. En fördel är att det blir enkelt att kombinera Java och Scala i projekt.
Scalafansen brukar framhäva en syntax som är enklare och renare än Javas. Man behöver inte jobba strikt funktionellt med Scala i alla lägen, vilket vissa ser som en fördel och andra som en nackdel. Scala passar inte minst för distribuerade lösningar med många noder.
Läs också: Därför blir Javascript bara bättre och bättre
8. Haskell är strikt funktionellt
Under mer än 20 år har det funktionella språket Haskell utvecklats i den akademiska världen. Målet har varit att utrota onda sidoeffekter i programkod. Haskell är ett av de mer strikta funktionella språken. Det finns varianter av Haskell som är integrerade med andra språk, som Java och Python.
9. Julia är ett snabbt alternativ till Python
Många som hanterar mycket beräkningar i sin kod jobbar med språket Python. Man gillar den enkla syntaxen, men retar sig ofta på dåliga prestanda. Julia är tänkt att vara en lösning på de problemen, bland annat med hjälp av bakgrundskompilering. Och det går att utöka språket för olika ändamål.
Lägg till det smart hantering av parallellisering, så får man ett bra verktyg för dataanalys. Om du redan gillar Python kan det finnas anledning att undersöka Julia.
Och många till.
Förutom de nämnda språken finns det all anledning att titta på Apples Swift som många tycker är både kraftfullt och enkelt, kort sagt genomtänkt. De som är inne på funktionell programmering kanske kan undersöka Clojure. Och så går det alltid att skriva ren Javascriptkod, med eller utan ramverk och bibliotek.