Skrivet av heretic16:
Här är en liten lista vad jag är beroende utav:
* Databas - Jag ska kunna enkelt ansluta databaser och läsa/skriva till dom. Normalt kör jag Spring JPA för jag är för lat för SQL.
* UI - Jag behöver ett grafiskt gränssnitt. Helst "Drag N Drop" precis som förr. Jag älskar det.
* Industrianpassat - Jag räds inte av tråkiga bibliotek som har körts sedan urminnes tider. Det viktigaste är att det är pålitligt och kommer alltid finnas tillgängligt.
* Snabbutvecklat - Det ska ta lite tid att utveckla en applikation.
* Grafer och CRUD - Detta är viktigt för mig.
* Passa alla plattformer - Normalt är det Windows till 90% som jag kommer jobba mot. Men oftast när det handlar om "gratis" OS på en obetydlig dator, så kommer Linux in.
Jag har tittat lite på .NET och Spring Boot. Nu är dessa två helt skilda saker, men båda är ramverk.
Spring Boot JPA är riktigt bra för databas. Enkelt och snabbt. .NET är bra för att det är enklare med UI.
Men jag tror det lutar mer mot .NET.
Men det styper lite där för Spring Boot är fantastiskt enkelt när det kommer till databas.
Dessutom älskar jag Maven Central.
Från din lista:
I/O
Är det någon som är Node.JS riktigt starka sida så är det hantering av I/O, så på denna punkt vinner Electron/Node.JS över både .NET och Java/springboot
UI
Här beror det primärt på vad man är van men, har egentligen inte gjort speciellt mycket UI och när det hänt har jag alltid föredragit webfront-ends just för att kunna köra det på vilket OS som helst. Electron är i praktiken en Chrome-fönster i en lokal applikation, d.v.s. man använder samma verktyg där som man designar webbapplikationer med och finns "drag-n-drop" (men personligen vill jag göra UI i "kod", men kanske säger hur simpla saker jag gör UI-mässigt). Givet vilka applikation som är gjorda i Electron så visar det ändå hur bra tekniken fungerar.[/li]
Industrianpassat
.NET är betydligt vanligare i Sverige än vad det är i stort. Node.JS har lite samma status i Nordamerika som .NET har här. Java/Spring Boot/Node.JS är alla så välanvända i "industrin" att ingen kommer försvinna under övrskådlig tid. NPM (pakethanterare för JS) måste rimligen ha klart mest paket ställd mot NuGet och whatever kan tänkas finnas i Java-världen (har varit i den, men är väldigt länge sedan nu, då var fortfarande J2EE och serverlets "hippt")
Snabbutvecklat
Är det något JS, Python m.fl. har en fördel mot statiskt typade kompilerade språk är det snabbare turn-around-tid vid utveckling. Personligen tycket jag värdet från statisk typning + allt det medför i form av möjlighet att hitta fel tidigt väger upp extra-tiden, föredrar därför TypeScript över både JS och Python (men Python + frivillig typanotering + VS Code tar en en hyfsad bit på vägen och då slipper man fortfarande helt kompilering-steg)[/li]
Grafer och CRUD
Ser inte riktigt varför dessa ska grupperas, men finns väldigt bra stöd för visualisering av data i webbläsaren och dessa fungerar även i Electron. CRUD vilar ju på I/O, I/O är Node.JS verklig starka punkt ställd mot .NET och Java.
Passa alla plattformer
Detta är .NET riktigt svaga sida, även om det blivit rejält mycket bättre med .NET-core. Och även med .NET-core har ARM64 stödet varit ett sorgebarn, men även det jobbas det på rejält på numera från Microsoft sidan och senaste versionen av .NET core har enorma prestandavinster på ARM64 (men säger mer om hur kasst det var innan, både Java och NodeJS har redan lysande ARM64 stöd).
WPF verkar lite på väg ut och vad jag kan se fungerar det bara under Linux+.NET-core via Wine, vilket i praktiken säger att det inte fungerar på Linux. Det borde helt utesluta MacOS.
Det jag hittade om MAUI är att det initialt kommer stödja Windows, MacOS, iOS och Android, ser inget om stöd för "vanliga" Linux.
Så även om dotnet-core gjort .net tillgängligt för Windows, MacOS och Linux i "back-end" är det fortfarande ett rätt uselt val för Linux UI. Java är ett helt OK val, webb-teknik (t.ex. Electron) är det klart "säkraste" valet då det har lysande stöd på alla relevanta OS.
Ovanpå det nämnde du C++ för högprestanda saker. C++ är tyvärr inte speciellt enkelt att integrera med något annan programspråk, utom möjligen C, då man aldrig standardiserat dess ABI. Men då NodeJS är byggt på bibliotek som själva är utvecklade i C++ är det av alternativen det som är enklast och har minst overhead mot C++ extensioner. Beroende på vad man gör är det i.o.f.s. ibland möjligt att köra beräkningar i en separat process, i det läget kan man ju kombinera det med vilken annan teknik/annat språk som helst utan större problem.