Kotlin lär ha en ljus framtid givet att det pushas hårt på Android. Google gör helt rätt då deras förhållande till Oracle (som kontrollerar Java) är minst sagt "ansträngt" just nu
Personligen hoppas jag Kotlin tar fart på traditionella Java-områden. Likt Scala gör Kotlin det trivialt att använda existerande Java-bibliotek rakt av. Som språk tycker jag Kotlin kan bäst beskrivas som "Java-done-right".
Java är tre olika saker
Språket: här finns en del att önska även om det har blivit bättre i senare versioner
Standardbiblioteket: typ "allt" finns, men börjar bli väl mycket junk och skulle nog må bra av en rejäl städning
Plattformen(JVM): här är punkten där man riktigt lyckas, det är en lysande plattform med fantastisk prestanda i rätt miljö
Sista punkten är ju primära orsaken till att många nya språk återanvänder plattformen.
Inga pekare i Java? NullPointerException...
Java har pekare, hade man gjort allt "rätt" hade det verkligen kunnat designats så att "null" kunnat undvikas. Dock inte säker att det hade varit att föredra.
Java har en väldigt restriktiv variant av pekare, specifikt tillåter man inte pekararitmitik vilket hindrar en hel del sätt att skjuta sig i foten. Men det hindrar också vissa riktigt fina prestandaoptimeringar samt gör vissa typer av programvara i praktiken omöjlig att utveckla (drivrutiner och annat som jobbar direkt mot HW/RAM).
I C/C++ skulle man kalla det Java har för "handle". En indirekt pekare till någon resurs. Att den är indirekt gör att man kan flytta platsen där tillståndet för det man pekar på är lagrat utan att handtaget behöver ändras. Java utnyttjar det i sin garbage collector (hade inte gått att packa saker i RAM annars, men finns språk med GC och direkta pekar och borde vara fullt möjligt att köra direkta pekar som implementation även i Java).
Angående officepaket. Nämn ett enda relevant Officepaket som inte är primärt utvecklat i C++ utöver iWork (som är utvecklat primärt i Obj-C).
Kan se två primära grundorsaker till att använda C++ idag
Prestanda är kritiskt, ledordet för C++ är "you only pay for what you use". Språk som Java & C# har en kostnad i RAM och i vissa lägen prestanda som du måste betala vare sig du använder det eller ej
Kodbasen använder redan C++. Majoriteten av alla program du använder daglig dags är skrivna i C++, exempel är din webbläsare, ditt office program, din java kompilatorn och JVM, dina spel
Termen "scriptspråk" är väldigt löst definierat och betyder tyvärr rätt olika saker för olika personer.
BASH och PowerShell är exempel på domänspecifika språk, dessa är inriktade på att automatisera olika former av sekvenser man kan göra i "skalet" på sitt system.
Att kalla JavaScript, Python, Ruby och liknande för "scriptspråk" känns för mig rätt fel. Visst finns det folk som använder dessa för just för att automatisera uppgifter där man lika gärna skulle kunna använt vad för mig är "scriptspråk" som BASH, PowerShell etc.
JS, Python och Ruby är alla generella programmeringsspråk där den enda riktigt hårda gemensamma nämnare är att de alla inte kräver ett separat kompileringssteg samt att de alla är dynamiskt typade. Men de är alla just generella programmeringsspråk, inte domän specifika. Vidare är JS väldigt "svagt" typat medan Python är väldigt "starkt" typat.
Håller med om att JS inte har något vidare typsäkerhet, men det gäller även för C som må vara statiskt typat (likt C++, C#, Java m.fl.) men C är tyvärr lite väl "svagt" typad på många håll. Implicit konvertering av alla pekartyper till void*, implicit konvertering mellan heltalstyper/flyttalstyper (som tyvärr även C++, C# och Java ärvt, bara några få som t.ex. Go där man fått till detta "rätt").