Har gjort en del research kring efterfrågan av olika kompetenser på svenska IT-arbetsmarknaden då känslan länge varit att C#/.Net är oproportionerligt mycket vanligare i Sverige än andra länder. Ska skriva ett svar till denna tråd, inte haft vare sig data eller tid tidigare men är nu på semester
En väldigt kort sammanfattning är ändå: det finns en viss regional skillnad i Sverige, av någon anledning använder vi i något större utsträckning Microsoftlösningar.
Men på det stora hela skiljer verkar vi skilja oss mindre än vad jag skulle ha gissat. Lägger man in olika programspråk som sökord vid sökning av jobbannonser hamnar Java och Python i topp även här. Skrapar lite lite mer på ytan ser man att Python och även JavaScript (som är typ 3:e vanligaste) förekommer rätt ofta i kombination med Java/C#.
Gissningsvis används Python för mindre saker samt scripting medan JS väldigt ofta kommer med i "fullstack" för front-end.
Begränsar man JS till "Node JS" försvinner ungefär 2/3 av JS jobben, i storstäderna finns i runda slängar ungefär lika mycket Node JS jobb som C++ jobb. Båda dessa är vanligare än jag hade gissat, faktiskt inte jättemånga fler C# jobb än det finns C++ jobb (ca 20 % fler C# jobb än de andra två). I flertalet globala undersökningar kring populäritet och arbetsmarknad brukar C++ och C# ligga väldigt nära varandra, vilket faktiskt verkar stämma även för Sverige (fast här är C# vanligare).
En annan sak jag noterade är att om man befinner sig i storstadsregionerna är bristen på IT-personal så stor att frågor lik "vilket språk / teknik etc bör jag lära mig för att få jobb" är i rätt irrelevanta. Man behöver ju bara ett jobb åt gången, även om man är rejält specifik, t.ex. "jag vill bara jobba med back-end i Rust" så finns ju ett femtiotal jobb att söka i bara i Stockholm!
Lång inledning till för att lite komma till vad tråden handlar om: vad som är bäst kräver mer information.
C#/.Net/WFP/VS är ett lysande val förutsatt att man är säker på att man kommer köra på Windows/x86. .Net core (framförallt .Net 5) har på senare tid fått väsentligt bättre stöd för ARM64, men man startade från en bedrövlig nivå och ligger fortfarande efter både Java och framförallt efter Node JS och C++.
Java verkar lite ha gett upp UI-delen, vilket känns vettigt då det aldrig varit speciellt bra för att utveckla desktop-applikationer i. Men det är extremt moget, finns bibliotek för allt man kan tänka sig på "back-end" och fungerar bra både under Windows, MacOS, Linux (och fungerar bra på x86, Arm och även Linux/PowerPC).
Electron (Node JS + Chromium) måste ju vara det självklara valet 2021 om man vill bygga desktop applikationer som ska kunna köras på Windows, MacOS och Linux. Node JS är även ett toppval för "molnet" då det fungerar bra både på x86 och ARM64. Startar man med "rent papper" är bra ARM64 stöd en rejäl fördel då perf/$ är klart bättre på sådana instanser för det man väljer att köra "i molnet".
Node har också ett väldigt effekt gränssnitt mot C++ (och mot native Rust, även via WASM om man föredrar det). Så går att både får fördelarna med snabba cykler i Node med rå-kraften från systemspråk som C++ och Rust.
Vilket IDE som är bäst lär ju vara en rätt meningslös fråga: använd den du känner dig mest bekväm med. Personligen skulle jag säga att "modern C++" väldigt ofta betyder CMake. Även om CMake går att tråckla in i Visual Studio är det betydligt enklare och smidigare att jobb med Visual Studio Code (eller Vim eller Emacs för den delen).
Fördelen med VS Code är att man då inte är fast på Windows, det fungerar då lika under Windows, MacOS och Linux. Faktum är att man enkelt kan sitta på sin Windows dator, köra VS Code där och i realtid utveckla, debugga etc mot en Linux-server, inbyggt system eller liknande över SSH.
Skrivet av datoriserad:
Måste ställa mig lite frågande till varför c++ väljs här?
För "vanliga" klientapplikationer är java/c#.net eller python väldigt mycket mer lättjobbat.
Qt och c++ skulle jag endast välja idag i klientapplikation om det finns hyfsat extrema prestandaflaskhalsar.
Gör du detta i syfte att lära dig eller skapa en kommersiell produkt?
Att Python är mer lättjobbat än både C++, Java och C# håller jag helt med om. Håller även med om att C# var betydligt mer lättjobbat än C++ under C# första tio år. Tycker även TypeScript (ihop med NodeJS) är betydligt mer lättjobbat än C#, Java och C++.
Ställer man C# version 9 mot C++20 har jag dock lite svårt att se några direkta fördelar åt något håll rent språkmässigt (båda språket har (miss)lyckats med att bli löjligt komplexa). Det samtidigt som C++ behåller sin fördel i prestandakritiska och realtidskritiska applikationer.