Termen "funktionella språk" är väldigt ofta missbrukad. Tar man språk som Haskell kan man prata om "funktionellt språk" då det egentligen den enda modell man förväntas använda för saker skrivna där. Även om det är möjligt att skriva imperativ kod i Haskell är det rätt meningslöst.
Språk som Scala och Kotlin har syntaktiskt socker för att möjliggöra funktionella programmering där det är vettigt. Ett typiskt Scala-program innehåller gissningsvis betydligt mer funktionella moment än ett typiskt Kotlin-program.
Man samma sak kan sägas om C#, Java, C++, Go, Swift m.fl. Normalfallet i dessa är inte funktionell programmering, men alla dessa har specifika språkkonstruktioner riktade mot funktionell programmering.
Just av den orsaken tror jag "rena" funktionella språk inte kommer slå på bred front. CPU/GPUer är tok-optimerade för "mutable-state", vilket rimmar illa med funktionell programmering. Finns ändå en rad fall där fördelarna med funktionell programmering överväger nackdelarna, men de fallet täcker man i allt större grad enkelt in med de "vanliga" programspråken.
Min personliga åsikt om Scala är att det kommer aldrig ta fart då det är ett allt för komplicerat språk. Samma kan sägas om C++, men skillnaden där är att C++ skapades i en tid när konkurrensen var långt mindre så det språket har redan lyckas trots att det är överkomplicerat.
Kotlin har inte det problemet, det är ett på i princip alla sätt ett bättre Java (Java-done-right).
https://www.qt.io/faq/
Bibliotek med LGPL kan i praktiken användas i kommersiella program utan problem. Qt's kommersiella licens behövs bara av de som behöver modifiera själva Qt-biblioteken och inte vill göra dessa förändringar öppna.
Men varför inte använda Webbläsaren eller Electron som UI-ramverk 2019???
Jag följer CppCast och de har nästan aldrig nämnt något annat än projekt som kör C++ både i front-end, back-end, middle-end
C++ är allt annat än unikt för back-end om man tittar på större system, t.ex. använder Google, Facebook och Microsoft massiva mängder C++ kod i deras system. C++ är däremot helt utraderat för små och medelstora system, där hittar du nog ~99 % av alla som konsultar inom IT i Sverige.
Men precis som Java används knappast C++ idag för att det är bäst, eller ens ett bra val. Dessa används för att de är mogna miljöer med stabila tool-chains. De används p.g.a. att det finns en massiv mängd redan existerande mängd programvara man kan använda som byggstenar.
Kan inte se en enda orsak att välja vare sig C++ eller Java om jag fick starta från scratch. I C++ har man ett jätteproblem med att många bibliotek använder sig av s.k. templates vilket i praktiken kräver att man måste skriva sina saker i C++ för att utnyttja detta. C++ är inte specificerat på binärnivå och C++ utvecklas mot att låta allt mer köras redan i kompilatorn -> man blir allt mer låst till att köra just C++.
I jobbet använder jag primärt C (majoritet av koden), C++ (kompilator, standardbibliotek och en del applikationer) och Python (primärt olika former av verktyg). Privat där jag kan välja fritt utan legacy-stenar att släpa runt kör jag primärt Go (perfekt match till t.ex. RPi), R (analytics) och JS (tja, vilket val har man för webben...).
De språk som använder en JVM (Kotlin, Groovy, Scala, Clojure) kan alla utan problem använda existerande bibliotek skrivna i Java då det finns en binärspecifikation att luta sig på. Kotlin gör det även möjligt att enkelt anropa saker från Java.
Av den anledningen skulle jag bara använda Java om man absolut måste. Skulle välja Kotlin så långt som möjligt.
Det skrivet: både Java och C++ kommer finnas kvar och inom "industrin" vara superviktiga spåk under överskådlig tid. Finns helt enkelt allt för mycket skrivna i dessa språk i drift. Båda utvecklas därför aktivt, C++ var ju nästan dött sett till utveckling under en tioårsperiod men nu har det tagit rejält med fart (C++11 och senare är i praktiken ett annat språk jämfört med C++03)