Permalänk

QT Creator VS Visual Studio

Jag tänker göra en C++ applikation och den aka kunna ansluta databas och plotta grafer.

Vilken teknologi skulle ni ha valt då av:
1. QT Creator
2. Visual Studio

Jag menar inte VS Code. Alla dessa utvecklingsverktyg är gratis att använda om man lincensierar sin källkod fri och öppen. Det går även att sälja med GNU GPL.

Fokus är industrellt och robusthet.
Plattform: Alla, även unika plattformar så som inbyggda system.

Permalänk
Hedersmedlem

Gäller det alltså bara vilken IDE man skall välja, eller menar du mer än så? Qt creator fungerar ju väldigt väl tillsammans med Qt (men man kan ju köra VS också om man vill) medan VS troligen är lämpligare om man kör MFC.
Annars är det ju till stor del en smakfråga. En fördel med Qt creator är att den fungerar lika bra (och likadant) på Mac och Linux som i Windows.

Permalänk
Skrivet av Elgot:

Gäller det alltså bara vilken IDE man skall välja, eller menar du mer än så? Qt creator fungerar ju väldigt väl tillsammans med Qt (men man kan ju köra VS också om man vill) medan VS troligen är lämpligare om man kör MFC.
Annars är det ju till stor del en smakfråga. En fördel med Qt creator är att den fungerar lika bra (och likadant) på Mac och Linux som i Windows.

Jag tänkte mer jobbmässigt.

Om syftet är att programmera C++ och skapa grafiska applikationer som har kontakt med hårdvaran, vilket C++ är bra på, då är QT eller .NET avgörande när det kommer till arbetsmarknad.

Nu ska ju .NET lanseras för Linux också, så där har QT en miss.

Permalänk
Hedersmedlem

@heretic16 Är det snarare Qt mot .NET som är frågan alltså? Det senare är ju inte helt aktuellt om du vill köra c++ (c++/cli finns ju förvisso, men det känns alltid lite eftersatt och finns endast för Windows).
Jag vet inte om det är någon miss för Qt heller (som ju har funnits till alla möjliga plattformar sedan Hedenhös). Observera också att .NET inte har något grafiskt ramverk för Linux (ens på gång vad jag vet).

Permalänk
Skrivet av Elgot:

@heretic16 Är det snarare Qt mot .NET som är frågan alltså? Det senare är ju inte helt aktuellt om du vill köra c++ (c++/cli finns ju förvisso, men det känns alltid lite eftersatt och finns endast för Windows).
Jag vet inte om det är någon miss för Qt heller (som ju har funnits till alla möjliga plattformar sedan Hedenhös). Observera också att .NET inte har något grafiskt ramverk för Linux (ens på gång vad jag vet).

Ja. Exakt. QT vs .NET. Vad har bäst arbetsmarknad?

Men är inte nya .NET 6 för Linux nu?

Permalänk
Medlem
Skrivet av heretic16:

Ja. Exakt. QT vs .NET. Vad har bäst arbetsmarknad?

Men är inte nya .NET 6 för Linux nu?

.NET Core 3.1 och .NET 5 är cross platform och fungerar både på Windows, Linux och iOS

Visa signatur

| EVGA Z170 FTW | i7 6700k | ASUS RTX 3070 | 16GB DDR4 3200MHz | Cooler Master V850 | Samsung 840 Evo 250GB + 2x WD Black 500GB + Seagate 2TB SSHD + Samsung 970 Evo M.2 500GB |

Permalänk
Hedersmedlem
Skrivet av heretic16:

Ja. Exakt. QT vs .NET. Vad har bäst arbetsmarknad?

Det beror på vad man menar med bäst. Antalet utvecklare för .NET är säkert betydligt fler, men de jobbar nog främst i c# och sällan särskilt hårdvarunära (nu har jag förvisso bara egen erfarenhet och uppfattning att basera detta på). Är det viktigast att hitta ett jobb fort eller att det är kul?

Skrivet av heretic16:

Men är inte nya .NET 6 för Linux nu?

Jodå (liksom .NET 5 och .NET core före det), men förmågorna är lite olika under olika plattformar. I Windows har man Windows forms, wpf och snart Maui att välja på för grafiska applikationer, och den senare kommer även fungera på Mac. För Linux är det terminalen som gäller än så länge (och jag tror inte de har sagt något om framtiden) om man inte hittar någon tredjepartslösning (Avalonia kanske).
Under Windows har .NET även en c++-skepnad (c++/cli), men den finns inte för andra plattformar.

Permalänk
Medlem

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?

Permalänk
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?

För att industrin väljer C++ för att C++ är gammalt, tråkigt, det plågar folk, och företag tror att dom presterar så mycket bättre om man väljer ett svårt språk istället för ett enkelt språk.

Jag gör det i syfte för att lära mig.
Jag har kollat på JavaFX och jag gillar det. Men tyvärr är det inga företag som investerar sin tid i JavaFX, trots att JavaFX kan lösa massvis med problem och göra snygga fina applikationer får både Windows, Linux, Android, iOS.

Permalänk
Medlem
Skrivet av heretic16:

För att industrin väljer C++ för att C++ är gammalt, tråkigt, det plågar folk, och företag tror att dom presterar så mycket bättre om man väljer ett svårt språk istället för ett enkelt språk.

Jag gör det i syfte för att lära mig.
Jag har kollat på JavaFX och jag gillar det. Men tyvärr är det inga företag som investerar sin tid i JavaFX, trots att JavaFX kan lösa massvis med problem och göra snygga fina applikationer får både Windows, Linux, Android, iOS.

Spännande, vore intressant om du kan/vill precisera vilken industri?
Jag själv har jobbat med allt från embedded till webb i Sverige och på många platser stämmer inte din bild tycker jag.
Ska man interfacea mot något exotiskt kan det såklart vara nödvändigt och till och med enklare ibland med c++.

Vill man jobba med klientapplikationer är i varje fall i Sverige .net/java de två glödheta plattformarna enligt mig.

För .Net hade jag valt VS och för java hade jag valt IntelliJ.

Sorry för lite halvt offtopic från mig men jag ville utmana valet litegrann.

För c++ hade jag valt VS eller CLion (JetBrains) om du kan få tag på en education license. Sen kanske Qt Creator för de Qt specifika bitarna.

Permalänk
Skrivet av datoriserad:

Spännande, vore intressant om du kan/vill precisera vilken industri?
Jag själv har jobbat med allt från embedded till webb i Sverige och på många platser stämmer inte din bild tycker jag.
Ska man interfacea mot något exotiskt kan det såklart vara nödvändigt och till och med enklare ibland med c++.

Vill man jobba med klientapplikationer är i varje fall i Sverige .net/java de två glödheta plattformarna enligt mig.

För .Net hade jag valt VS och för java hade jag valt IntelliJ.

Sorry för lite halvt offtopic från mig men jag ville utmana valet litegrann.

För c++ hade jag valt VS eller CLion (JetBrains) om du kan få tag på en education license. Sen kanske Qt Creator för de Qt specifika bitarna.

Hårdvara, inbyggda system. Inte webbapplikationer. Möjligtvis databas om det skulle vara "webb" det också. Orsaken varför jag väljer bort webbapplikationer är för att företag vill inte ha webbapplikationer i deras hus. De vill ha allt på molnet för slippa "trojaner och virus" som webbutvecklare kan skapa.

Så låt oss säga att du ska göra ett program som ska ha god kontakt med hårdvara. Det ska vara grafiskt.
Snabbhet är viktigt här.

Sammanfattning:
* Hårdvara t.ex. USB eller LCD eller annat jox
* Prestanda
* Grafiskt

Det ska också vara långtidsstöttat, vilket betyder att teknologin ska sällan uppdateras. Ungefär som Java 8 som fortfarande finns på grund utav att det är så industriellt och robust samt säkert.

Jag kör alltid Eclipse, för det är en tråkig industristandard. Där kör jag både C och Java. Men det har med att jag kör Spring Boot i Java.

Permalänk
Medlem

Eftersom du verkar glömma det ungefär en gång i månaden och startar en ny tråd istället för att våga testa på saker kan jag erbjuda en påminnelse: du kommer aldrig bli en bra mjukis om du inte vågar testa och lära dig nya saker. Du måste lära dig om och testa på flera alternativ för att klara av att göra bedömning om vilket verktyg som är lämpligast för att lösa ett givet problem. Ingen mängd forumtrådar med vaga frågeställningar om vilket språk/ramverk/paradigm är bäst kommer ta dig framåt. Det största hindret för dina framsteg är dig själv och din ovilja att lära dig något som du inte tror att du får omedelbar nytta av i vad det nu är för "industriella tillämpningar" du sysslar med.

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Skrivet av LemonIllusion:

Eftersom du verkar glömma det ungefär en gång i månaden och startar en ny tråd istället för att våga testa på saker kan jag erbjuda en påminnelse: du kommer aldrig bli en bra mjukis om du inte vågar testa och lära dig nya saker. Du måste lära dig om och testa på flera alternativ för att klara av att göra bedömning om vilket verktyg som är lämpligast för att lösa ett givet problem. Ingen mängd forumtrådar med vaga frågeställningar om vilket språk/ramverk/paradigm är bäst kommer ta dig framåt. Det största hindret för dina framsteg är dig själv och din ovilja att lära dig något som du inte tror att du får omedelbar nytta av i vad det nu är för "industriella tillämpningar" du sysslar med.

Jag har kört många olika språk. Jag kör dagligen C för inbyggda system där jag själv gör kretskorten för hand.

Annars så har jag kört:
Visual Basic.NET
JavaFX
Arduino
STM32
Spring Boot
C++
C
Python

osv

Jag efterfrågar bara efter vad marknaden efterfrågar.

Permalänk
Inaktiv

För att svara på vad jag tror att du egentligen frågar efter: Marknaden efterfrågar definitivt C#/.NET.

Håller med @LemonIllusion 's inlägg dock, du måste gräva ner dig i ett projekt och faktiskt göra saker, inte bara tänka på hur du kan göra saker.

Om ditt syfte är att lära dig något som är användbart för dig själv rent karriärsmässigt, använd Visual Studio som IDE, använd C# som språk, och använd .NET/WPF som ramverk.

Permalänk
Skrivet av anon334363:

För att svara på vad jag tror att du egentligen frågar efter: Marknaden efterfrågar definitivt C#/.NET.

Håller med @LemonIllusion 's inlägg dock, du måste gräva ner dig i ett projekt och faktiskt göra saker, inte bara tänka på hur du kan göra saker.

Om ditt syfte är att lära dig något som är användbart för dig själv rent karriärsmässigt, använd Visual Studio som IDE, använd C# som språk, och använd .NET/WPF som ramverk.

Men är inte största delen av C# används till backend för webbapplikationer?

Jag håller konstant på med projekt. Ni skulle bara ana.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Men är inte största delen av C# används till backend för webbapplikationer?

Jo, och enklare* windowsapplikationer. Det har väl nästan helt ersatt visual basic till exempel. Det går säkert att använda det för att för att kommunicera med hårdvara på låg nivå om man verkligen vill (fast det slutar troligen med att man får hitta c-bibliotek (eller skriva dem själv) och anropa dem), men det får nog räknas som ett ganska ovanligt användningsfall.
Prestandamässigt kan man nog förvänta sig ungefär samma nivå som java.

*Även avancerade förstås, men för enklare det nog ännu vanligare.

Permalänk
Medlem

DanielM?

Permalänk
Inaktiv
Skrivet av heretic16:

Men är inte största delen av C# används till backend för webbapplikationer?

Jag håller konstant på med projekt. Ni skulle bara ana.

C# används för alla sorters grafiska applikationer också. Det är ett perfekt språk (och .NET ett perfekt ramverk) att lära sig för nybörjare som aspirerar att arbeta som programmerare.

Dela gärna med dig av några av dina projekt, blir nog enklare att kunna ge rimlig feedback på så vis.

Permalänk
Avstängd
Skrivet av heretic16:

För att industrin väljer C++ för att C++ är gammalt, tråkigt, det plågar folk, och företag tror att dom presterar så mycket bättre om man väljer ett svårt språk istället för ett enkelt språk.

Jag vet inte varifrån du har fått den uppfattningen riktigt. Kundföretag skiter fullständigt i vad man använder för språk så länge man når upp till kraven och det går så fort som möjligt att få en fungerande applikation. Därför är det c# .Net som dominerar inom industrin, och förstås för att extrem prestanda inte är så viktigt där. Industriella processer kräver sällan superprestanda eftersom hårdvaran ändå sätter begränsningarna, det spelar ingen roll om din applikation kan hantera hundratals eller tusentals beräkningar per sekund om hårdvaran ändå bara kan bygga en produkt i sekunden liksom.

Citat:

Jag gör det i syfte för att lära mig.
Jag har kollat på JavaFX och jag gillar det. Men tyvärr är det inga företag som investerar sin tid i JavaFX, trots att JavaFX kan lösa massvis med problem och göra snygga fina applikationer får både Windows, Linux, Android, iOS.

Grafiska applikationer på det sättet är på väg bort, webbgränssnitt är i allmänhet vad som gäller i princip överallt. Du pratar om att molnet tränger ut webbappar men molnet innebär ju nästan alltid ett webbgränssnitt så det är precis tvärtom. Att köra en applikation lokalt (på klientmaskinen?) efterfrågas inte alls längre utan industrin vill precis som alla andra ha saker som fungerar på allt från telefoner till chefens laptop på hans hemmakontor liksom. Så responsiva webbapplikationer som gränssnitt mot services i backenden.

Permalänk
Skrivet av snajk:

Jag vet inte varifrån du har fått den uppfattningen riktigt. Kundföretag skiter fullständigt i vad man använder för språk så länge man når upp till kraven och det går så fort som möjligt att få en fungerande applikation. Därför är det c# .Net som dominerar inom industrin, och förstås för att extrem prestanda inte är så viktigt där. Industriella processer kräver sällan superprestanda eftersom hårdvaran ändå sätter begränsningarna, det spelar ingen roll om din applikation kan hantera hundratals eller tusentals beräkningar per sekund om hårdvaran ändå bara kan bygga en produkt i sekunden liksom.

Varför skriver många annonser inom systemutveckling att de efterfrågar C++ då?

Citat:

Grafiska applikationer på det sättet är på väg bort, webbgränssnitt är i allmänhet vad som gäller i princip överallt. Du pratar om att molnet tränger ut webbappar men molnet innebär ju nästan alltid ett webbgränssnitt så det är precis tvärtom. Att köra en applikation lokalt (på klientmaskinen?) efterfrågas inte alls längre utan industrin vill precis som alla andra ha saker som fungerar på allt från telefoner till chefens laptop på hans hemmakontor liksom. Så responsiva webbapplikationer som gränssnitt mot services i backenden.

Det förstår jag.
Men att ge en webbapplikation till ett företag är inte lika säkert som idag som det var förr.
Idag så nekar många företag webbapplikationer inom sitt eget hus. De vill ha allt på molnet.

Då är det bättre att skapa en klientapplikation, om klienten ändå ska köras lokalt och dessutom ofta ibland utan internetuppkoppling.

I mitt fall är jag inte beroende utav webbapplikationer då jag jobbar med hårdvara.

Permalänk
Medlem
Skrivet av heretic16:

Varför skriver många annonser inom systemutveckling att de efterfrågar C++ då?

Har nog faktiskt inte sett en enda annons där specifikt C++ efterfrågas Men om det nu är så, så är det förmodligen för någon nisse valde att utveckla i C++ för ett antal år sedan och det nu handlar om vidareutveckling inom samma miljö istället för att blanda in nytt. C# är helt klart det ledande alternativet idag

Skrivet av heretic16:

Men att ge en webbapplikation till ett företag är inte lika säkert som idag som det var förr.
Idag så nekar många företag webbapplikationer inom sitt eget hus. De vill ha allt på molnet.

Då är det bättre att skapa en klientapplikation, om klienten ändå ska köras lokalt och dessutom ofta ibland utan internetuppkoppling.

I mitt fall är jag inte beroende utav webbapplikationer då jag jobbar med hårdvara.

En "webbapplikation" kan lika gärna köra lokalt inom intranätet genom JavaScript. Bara för att det är en webbapplikation så betyder inte det att det är öppet mot WWW

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Skrivet av Pamudas:

Har nog faktiskt inte sett en enda annons där specifikt C++ efterfrågas Men om det nu är så, så är det förmodligen för någon nisse valde att utveckla i C++ för ett antal år sedan och det nu handlar om vidareutveckling inom samma miljö istället för att blanda in nytt. C# är helt klart det ledande alternativet idag

En "webbapplikation" kan lika gärna köra lokalt inom intranätet genom JavaScript. Bara för att det är en webbapplikation så betyder inte det att det är öppet mot WWW

Finns fullt med annonser där C++ efterfrågas.
Du menar att C++ är så kallat "legacy code"?
Som jag ser på TIOBE så växer C++ sedan 2019
https://www.tiobe.com/tiobe-index/

Det vet jag. Men det är rätt krångligt att starta upp en webbapplikation för att köra den lokalt och använda den lokalt.

Permalänk
Datavetare

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.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av snajk:

Jag vet inte varifrån du har fått den uppfattningen riktigt. Kundföretag skiter fullständigt i vad man använder för språk så länge man når upp till kraven och det går så fort som möjligt att få en fungerande applikation. Därför är det c# .Net som dominerar inom industrin, och förstås för att extrem prestanda inte är så viktigt där. Industriella processer kräver sällan superprestanda eftersom hårdvaran ändå sätter begränsningarna, det spelar ingen roll om din applikation kan hantera hundratals eller tusentals beräkningar per sekund om hårdvaran ändå bara kan bygga en produkt i sekunden liksom.

Antar att du med "industrin" menar IT-industrin?

För mig har ordet "industri" en smalare betydelse, tänker på "industritillämpningar" och där är C#/.NET allt annat än dominant.

Inom bilindustrin är C++ väldigt vanligt, bl.a. p.g.a. AUTOSAR.
Inom flygindustrin är C, följt av Ada följt av C++ vanligt p.g.a. kraven från DO178 (lycka till att få igenom ens något form icke-trivialt C# eller Java program genom den standarden...).
Inom robotics är C++ väldigt vanligt, men här har jag i alla fall sett Java eller C#/.NET användas.

Givet vem TS är här misstänker jag att kontext för "industri" är just "industritillämpningar / inbyggda-system". Där är fortfarande C och C++ klart dominerade.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

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++.

Jag tänker köra på "embedded". Nu tycker jag att många missbrukar ordet "embedded" ofta. Embedded betyder att man kör UTAN operativsystem. Embedded är INTE att man kör på en Raspberry Pi. Det är en vanlig dator.

Så om .NET är BARA till för dator-applikationer, så är nog C# eller C++.NET inget för mig. Då får jag välja QT.

Citat:

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).

Jag håller med om det vore Swing. Otroligt komplext om man vill göra GUI applikationer. Men Java Swing är så snyggt. Fina färger.
Men JavaFX var riktigt effektivt och smidigt att göra applikationer. Men Oracle gav bort JavaFX till GluonHQ. Troligtvis så har med med att Oracle satsar bara på webbapplikationer idag.

Citat:

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".

Hört att Electron ska vara snyggt och modernt. Men jag har aldrig sett företag investera sin tid i det.

Citat:

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.

Jag programmerar inte JavaScript. Jag förstår inte språket. Verkar skilja sig rejält mot vanlig programmering där man börjar på ett ställe t.ex. main() eller static void Main(String args[])

Citat:

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.

Jag kör Eclipse dagligen. Det har med att jag programmerar C och Java.
Jag har testat VS Code, men fick inte Git att fungera med det. Troligtvis så valde jag fel branch när jag gjorde en pull.
Men jag finner ändå att stora och tunga Eclipse är mycket mera....program...än VS Code, som verkar vara bara vara en snygg texteditor.

Emacs för mig känns verkligen Turbo Borland C++ DOS.

Jag har även installerat QT Creator och jag gillar det. Känns verkligen som riktig C++98.
Men jag tror jag väljer inte Visual Studio IDE för att Visual C++ är ju alltså .NET och .NET är .NET och då spelar det inte vilken skit man skriver på fönstret. Det blir lika mycket skräp oavsett om jag använder VB.NET eller C++.NET. För alla dom går ju under .NET? Eller hur?

Permalänk
Skrivet av Yoshman:

Antar att du med "industrin" menar IT-industrin?

För mig har ordet "industri" en smalare betydelse, tänker på "industritillämpningar" och där är C#/.NET allt annat än dominant.

Inom bilindustrin är C++ väldigt vanligt, bl.a. p.g.a. AUTOSAR.
Inom flygindustrin är C, följt av Ada följt av C++ vanligt p.g.a. kraven från DO178 (lycka till att få igenom ens något form icke-trivialt C# eller Java program genom den standarden...).
Inom robotics är C++ väldigt vanligt, men här har jag i alla fall sett Java eller C#/.NET användas.

Givet vem TS är här misstänker jag att kontext för "industri" är just "industritillämpningar / inbyggda-system". Där är fortfarande C och C++ klart dominerade.

Exakt. Så C++ blir det för mig. Jag har redan börjat koda lite i QT.
Men du får gärna nämna vilka områden Java används inom inbyggda system? Väldigt intressant?

Är det MicroEj du tänker på? Eller tänker du på döda Java ME? Aldrig sett vart Java ME tillämpas. Jag har dock hört talas som Java Card, men även den lyser från sin frånvaro.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Men jag tror jag väljer inte Visual Studio IDE för att Visual C++ är ju alltså .NET och .NET är .NET och då spelar det inte vilken skit man skriver på fönstret. Det blir lika mycket skräp oavsett om jag använder VB.NET eller C++.NET. För alla dom går ju under .NET? Eller hur?

Det är korrekt att alla de där (med flera) blir .Net till slut, men visual studio står på egna ben. Man kan använda den till annat också (till exempel Qt som ett alternativ till Qt creator). Qt creator är ett ganska nytt verktyg (medan Qt har flera decennier på nacken) som först på senare år har blivit riktigt kompetent. Dessförinnan fick man använda andra utvecklingsverktyg, och det fungerar naturligtvis fortfarade.

Permalänk
Skrivet av Elgot:

Det är korrekt att alla de där (med flera) blir .Net till slut, men visual studio står på egna ben. Man kan använda den till annat också (till exempel Qt som ett alternativ till Qt creator). Qt creator är ett ganska nytt verktyg (medan Qt har flera decennier på nacken) som först på senare år har blivit riktigt kompetent. Dessförinnan fick man använda andra utvecklingsverktyg, och det fungerar naturligtvis fortfarade.

Då känns det som jag har gjort ett bra val av IDE och ramverk när det kommer till C++

Jag är för visso en van C programmerare som känner att jag beflver komplettera med lite komplexibilitet.

Permalänk
Datavetare
Skrivet av heretic16:

Jag tänker köra på "embedded". Nu tycker jag att många missbrukar ordet "embedded" ofta. Embedded betyder att man kör UTAN operativsystem. Embedded är INTE att man kör på en Raspberry Pi. Det är en vanlig dator.

Den vettigaste definitionen jag sett på vad som är kännetecknet för ett "inbyggt system" är "ser du enheten primärt som en traditionell dator eller ej"?

Det gör en modern bil till "inbyggt system", trots att det idag sitter rätt bra med CPU-kraft och GPU-kraft där. Mobiltelefon är en gråson, den finns definitivt delar som är "inbyggda system" och skulle själv kalla även Iphone/Android för "inbyggda system" då deras primära uppgift inte är att agera dator (men är definitivt allt mer en gråzon här).

Ett tillägg man kan göra för att göra gråzonen lite mer svart/vit är: när man utvecklar programvara, kör man då utvecklingsmiljön "native" eller är "host" och "device" separerade? I den förra fallet är det ett uppenbart fall av "dator" medan det senare fallet helt klart även gör en moder mobil till ett "inbyggt system".

Skrivet av heretic16:

Så om .NET är BARA till för dator-applikationer, så är nog C# eller C++.NET inget för mig. Då får jag välja QT.

.NET är väl vad man använder det till, precis som allt annat?

Inte så att QT är något som man i någon större utsträckning kör på inbyggda system, även om det förkommer (och finns fall där man kör Windows/.NET på inbyggda system).

Skrivet av heretic16:

Hört att Electron ska vara snyggt och modernt. Men jag har aldrig sett företag investera sin tid i det.

???????

Microsoft använder det till VS Code och Skype (eller vad nu Skype heter i nuläget). Det används av Slack, Discord, Wordpress desktop m.fl. Så företag investerad definitivt sin tid i detta!

Däremot är, som redan påpekats i tråden ett par gånger, trenden att man lägger allt "på webben" (i praktiken, man kör en back-end i "molnet" med en JS-baserad front-end som fungerar oavsett klient). D.v.s. det som kanske är på väg ut är den traditionella desktop-applikationen. Electron har ju de stora fördelen att det är en webbsida, så trivialt att köra resultatet både som desktop-app och via webbläsaren (går att köra VS Code i webbläsaren om man vill).

Skrivet av heretic16:

Jag programmerar inte JavaScript. Jag förstår inte språket. Verkar skilja sig rejält mot vanlig programmering där man börjar på ett ställe t.ex. main() eller static void Main(String args[])

Så komplicerat är det knappast. Du har ju uppenbarligen lurat ut att det ibland är en funktion som heter main(), i andra fall en statisk metod som heter Main(String[] args), hur svårt kan det då vara att anpassa sig till JS, Python m.fl. att startpunkten är en specifik fil (är ju en specifik fil där main() ligger i) där programmet börjar köra uppifrån filen?

Skrivet av heretic16:

Jag kör Eclipse dagligen. Det har med att jag programmerar C och Java.
Jag har testat VS Code, men fick inte Git att fungera med det. Troligtvis så valde jag fel branch när jag gjorde en pull.
Men jag finner ändå att stora och tunga Eclipse är mycket mera....program...än VS Code, som verkar vara bara vara en snygg texteditor.

Så du gjorde ett misstag första gången du använde VS Code och då blir slutsatsen: det fungerar inte?
VS Code är för närvarande den mest populära textredigeraren i githubs senaste omröstningar. Det är för övrigt också nya "standardmiljön" för världens största RTOS, VxWorks. Där det tack och lov ersätter vraket Eclipse+CDT (Eclipse är en bra Java IDE, det har alltid varit en rätt kass IDE för C och C++ i min mening men vet att det finns folk som lyckas utföra arbete med den miljön...).

Skrivet av heretic16:

Jag har även installerat QT Creator och jag gillar det. Känns verkligen som riktig C++98.

Om det känns C++ 98 kan det inte finns något bra med den miljön! Tror ingen som fortfarande jobbar med C++ ser något positivt med att klänga sig fast vid C++98. C++ var nära att dö sotdöden under perioden 2000-2010, det räddades mycket av det fantastiska jobb som Herb Sutter (Microsoft anställd som också är ordförande för C++ ISO-kommittén) lett.

Finns noll anledningen att köra mindre än C++14 idag. Finns också en poäng att stanna just vid C++14, det är idag en "mogen" standard och C++14 är i praktiken rätt mycket bara en bug-fix av C++11. C++17 har en del bra saker och GCC, LLVM/Clang och MSVC++ har alla lysande C++17 stöd. C++20 ska man nog bara ge sig på om man startar ett projekt från scratch idag, och man bör nog hålla sig till LLVM/Clang närmaste tiden (möjligen fungerar också senaste GCC).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Den vettigaste definitionen jag sett på vad som är kännetecknet för ett "inbyggt system" är "ser du enheten primärt som en traditionell dator eller ej"?

Det gör en modern bil till "inbyggt system", trots att det idag sitter rätt bra med CPU-kraft och GPU-kraft där. Mobiltelefon är en gråson, den finns definitivt delar som är "inbyggda system" och skulle själv kalla även Iphone/Android för "inbyggda system" då deras primära uppgift inte är att agera dator (men är definitivt allt mer en gråzon här).

Ett tillägg man kan göra för att göra gråzonen lite mer svart/vit är: när man utvecklar programvara, kör man då utvecklingsmiljön "native" eller är "host" och "device" separerade? I den förra fallet är det ett uppenbart fall av "dator" medan det senare fallet helt klart även gör en moder mobil till ett "inbyggt system".

Jag vet inte. Jag tycker att inbyggda system handlar om system utan operativsystem, dvs system som även kallas realtidssystem.
Också en luddig definition
Om en Volvo V70 skulle haft Windows 98 som styrbox för insprutningen så hade det säkerligen varit ett långsammare system.

Citat:

.NET är väl vad man använder det till, precis som allt annat?

Inte så att QT är något som man i någon större utsträckning kör på inbyggda system, även om det förkommer (och finns fall där man kör Windows/.NET på inbyggda system).

Känner endast till att C# har används på Beijer Eletronics IX-paneler. Där används nämligen Windows CE 6.0 än idag samt ett eget hittepå .NET ramverk som de vägrar släppa dokumentation till. Panelerna är superenkla att programmera, men det är absolut ingen höjdare att skriva C# till dom. Vilket förklarar varför de vägrar släppa sin dokumentation om egen .NET hittepå ramverk. Orsaken varför det inte är någon höjdare är för att .NET ramverket är nedsnålat och magert.

Citat:

???????

Microsoft använder det till VS Code och Skype (eller vad nu Skype heter i nuläget). Det används av Slack, Discord, Wordpress desktop m.fl. Så företag investerad definitivt sin tid i detta!

Däremot är, som redan påpekats i tråden ett par gånger, trenden att man lägger allt "på webben" (i praktiken, man kör en back-end i "molnet" med en JS-baserad front-end som fungerar oavsett klient). D.v.s. det som kanske är på väg ut är den traditionella desktop-applikationen. Electron har ju de stora fördelen att det är en webbsida, så trivialt att köra resultatet både som desktop-app och via webbläsaren (går att köra VS Code i webbläsaren om man vill).

Aldrig sett jobbefterfrågan om Eletcron. Tyvärr. Det är säkert en jättebra tekonologi. Jag har bara hört att EletctronJS ska vara segt.

Citat:

Så komplicerat är det knappast. Du har ju uppenbarligen lurat ut att det ibland är en funktion som heter main(), i andra fall en statisk metod som heter Main(String[] args), hur svårt kan det då vara att anpassa sig till JS, Python m.fl. att startpunkten är en specifik fil (är ju en specifik fil där main() ligger i) där programmet börjar köra uppifrån filen?

Jag gillar när det finns bara en väg att koda. Det blir liksom en standard då och alla gör exakt likadant. Då är det enkelt att läsa andras koder.

Citat:

Så du gjorde ett misstag första gången du använde VS Code och då blir slutsatsen: det fungerar inte?
VS Code är för närvarande den mest populära textredigeraren i githubs senaste omröstningar. Det är för övrigt också nya "standardmiljön" för världens största RTOS, VxWorks. Där det tack och lov ersätter vraket Eclipse+CDT (Eclipse är en bra Java IDE, det har alltid varit en rätt kass IDE för C och C++ i min mening men vet att det finns folk som lyckas utföra arbete med den miljön...).

Ja, misstag. Men jag är så van med Eclipse så jag ser ingen anledning att byta. Visst är VS Code riktigt bra, men det är Geany, Emacs, VIM osv också.

Jag vet att Eclipse kommer finnas längre än VS Code. Vi vet aldrig när Facebook eller Amazon släpper en ny teknologi som konkurrerar mot Microsoft.

Jag gillar också NetBeans.

Citat:

Om det känns C++ 98 kan det inte finns något bra med den miljön! Tror ingen som fortfarande jobbar med C++ ser något positivt med att klänga sig fast vid C++98. C++ var nära att dö sotdöden under perioden 2000-2010, det räddades mycket av det fantastiska jobb som Herb Sutter (Microsoft anställd som också är ordförande för C++ ISO-kommittén) lett.

Finns noll anledningen att köra mindre än C++14 idag. Finns också en poäng att stanna just vid C++14, det är idag en "mogen" standard och C++14 är i praktiken rätt mycket bara en bug-fix av C++11. C++17 har en del bra saker och GCC, LLVM/Clang och MSVC++ har alla lysande C++17 stöd. C++20 ska man nog bara ge sig på om man startar ett projekt från scratch idag, och man bör nog hålla sig till LLVM/Clang närmaste tiden (möjligen fungerar också senaste GCC).

Bra att du säger det. Jag har 0% koll på C++.
Allt jag minns är gamla Sams C++ 21 Days och C++ Direkt av Jan Skansholm.
Där användes C++98 och jag tyckte det var mest bara en fortsättning på C. Språket såg rent ut.