Välja språk mellan Java och C#?

Permalänk
Medlem

Välja språk mellan Java och C#?

Jag har blivit erbjuden att gå en kurs i grundläggande programmering (några dagar lång, så antagligen ingen jättedjup kurs). Jag kan välja mellan språken Java och C#. Vilket bör jag välja? Skiljer de sig mycket åt? Är det några större skillnader i tillämpning?

Permalänk
Medlem

Om du inte har programmerat tidigare så spelar det ingen roll, då handlar det mer om att lära sig programmera än om något specifikt språk. Java och C# är även rätt lika, det är ungefär samma syntax och liknande sätt att koda på.

Men om du måste välja så skulle jag säga C# om du lever i Windows-världen och annars Java. C# är framtaget av Microsoft och gör det t.ex. enkelt att skapa grafiska Windows-program med Visual Studio, men har inte lika bra stöd på andra plattformar.

Permalänk
Medlem
Skrivet av perost:

Om du inte har programmerat tidigare så spelar det ingen roll, då handlar det mer om att lära sig programmera än om något specifikt språk. Java och C# är även rätt lika, det är ungefär samma syntax och liknande sätt att koda på.

Men om du måste välja så skulle jag säga C# om du lever i Windows-världen och annars Java. C# är framtaget av Microsoft och gör det t.ex. enkelt att skapa grafiska Windows-program med Visual Studio, men har inte lika bra stöd på andra plattformar.

.NET Core funkar riktigt bra på Mac och Linux också 😊

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem

Java är bara en jäkla soppa (tacka Oracle för det) så ju färre som använder det desto bättre.
Så välj C#

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Permalänk
Medlem

Java och C# är så otroligt lika att det är som att fråga om man borde ta körkort för en röd eller vit Volvo c40. Nästan exakt samma syntax, ide om att köra i virtuell maskin och användningsområde.

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem

Typ identiska som folk innan sagt. Men C# och visual studio kan man enkelt göra grafiska grejer, vilket kan vara kul för en nybörjare, så kör du windows hade jag valt c#.

Permalänk
Medlem

Som nybörjare kommer de verka som samma språk nästan. När man börjar komma igång med mer avancerade grejer skulle jag säga att C# definitivt har lite roligare funktioner som object initializersyntaxen, LINQ slår Java streams lätt, anonyma objekt i LINQ, string interpolation och async/await syntaxen.

Men mina Javakunskaper är några år nu så det kanske har kommit ikapp/förbi på de områdena eller andra.

Permalänk
Avstängd

Jag sällar mig till kören som rekommenderar C#. Mycket för att verktygen generellt är trevligare, VS är en väldigt bra IDE även i gratisvarianten exempelvis. Speciellt om man sitter på Windows förstås, men det funkar ju utmärkt att köra det man utvecklar på andra miljöer och typ VS Code funkar ju bra på Linux och MacOS också. För mer avancerade lösningar så är "stora" VS väldigt bra dock och då är ju Windows att föredra. Sen finns det ju väldigt mycket resurser och hjälp online, det finns för Java också visserligen, men det känns mer omfattande för dotnet och MS tar ju lite mer ansvar än Oracle när det gäller att tillhandahålla forum för stöd och hjälp liksom.

Permalänk
Datavetare
Skrivet av KeVVa:

.NET Core funkar riktigt bra på Mac och Linux också 😊

Håller med, i alla fall om man tittar till funktion.

Prestandamässigt är det inte fullt lika roligt (vet inte om det ser annorlunda ut på Windows, har inte kör Windows på "backend" den här sidan millenskiftet).

Är inte direkt 1:1, men PLINQ presterar inte i närheten av motsvarande i Java skrivet med parallell-streams. Går man direkt på TPL blir det väsentligt bättre, men Java presterar i alla de tester jag gjort fortfarande klart bättre (typ dubbelt så snabbt). Även ren "number-crunching" är lite snabbare på JVM.

Men prestanda är inte alltid kritiskt, finns trots allt de som med fördel jobbar i Python, Ruby etc i sina backend-system

Sen är inte Java kanske världens roligaste språk. Fast man kan ju köra Kotlin, "Java done right", då det har dubbelriktad kompatibilitet med existerade Java kod

Till TS: det lär kvitta. Java är betydligt större i världen i stort, men .NET är av någon anledning betydligt populärare i Sverige jämfört med världen i stort!

Visa signatur

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

Permalänk
Medlem

Tack så mycket för era svar! Då blir det C#.

Permalänk
Medlem
Skrivet av talonmas:

Java är bara en jäkla soppa (tacka Oracle för det) så ju färre som använder det desto bättre.
Så välj C#

Vi använder Java i stor utsträckning på min avdelning (stort företag) och har inga problem alls. Tänker du på licensfrågan? Vi och många andra har gått över till OpenJDK och det fungerar hur bra som helst.

Vill inte att folk i framtiden läser denna tråd och väljer bort Java i onödan. Det är ett otroligt populärt språk världen över och det finns mycket jobb för den som kan det.

Visa signatur

Klicka på citera när du ska svara någon!

Permalänk

Jag skulle säga:

Titta på vilket ramverk du vill jobba i?

Vill du göra applikationer för Windows: C#
Vill du göra applikationer för alla system: Java

En bra tumregel brukar vara. Så fort du ska använda något med backend på en server. Databaser eller liknande system. Då är det Java som gäller.

Men ska du göra skrivbordsapplikationer eller spel. Då är det C# som gäller.

Detta har med vilket ramverk som är anpassat till vad.

Permalänk
Medlem
Skrivet av heretic16:

Jag skulle säga:

Titta på vilket ramverk du vill jobba i?

Vill du göra applikationer för Windows: C#
Vill du göra applikationer för alla system: Java

En bra tumregel brukar vara. Så fort du ska använda något med backend på en server. Databaser eller liknande system. Då är det Java som gäller.

Men ska du göra skrivbordsapplikationer eller spel. Då är det C# som gäller.

Detta har med vilket ramverk som är anpassat till vad.

Fast väldigt många använder ju C# / .NET till att bygga backend/API'er och webb allmänt, och det går fint även på andra operativsystem än Windows dessutom (nu har jag inte testat det eftersom jag bara använder Windows men det var väl en del av tanken med .NET Core åtminstone).

Permalänk
Avstängd
Skrivet av heretic16:

Jag skulle säga:

Titta på vilket ramverk du vill jobba i?

Vill du göra applikationer för Windows: C#
Vill du göra applikationer för alla system: Java

En bra tumregel brukar vara. Så fort du ska använda något med backend på en server. Databaser eller liknande system. Då är det Java som gäller.

Men ska du göra skrivbordsapplikationer eller spel. Då är det C# som gäller.

Detta har med vilket ramverk som är anpassat till vad.

Nej det stämmer inte. Jag jobbar med backendservices i dotnet/C# varje dag och de körs på linux.

Skrivet av ChrisDev:

Fast väldigt många använder ju C# / .NET till att bygga backend/API'er och webb allmänt, och det går fint även på andra operativsystem än Windows dessutom (nu har jag inte testat det eftersom jag bara använder Windows men det var väl en del av tanken med .NET Core åtminstone).

Jo. Dotnet Core finns inte längre utan det är vad som är dotnet nu, sedan version 5. WSL med docker är en trevlig kombination för att utveckla micro-service-applikationer på Windows, så körs de i linux även på utvecklarmaskinen och kan deployas dit utan problem.