Vergleich C# und Java

Mart

Bekanntes Mitglied
Also im Internet gibt es viele Vergleiche wie und wo C# und Java vergleichbar sind usw...

was ich zb. gefunden habe
C#Java
kann mit Objekte und Constructs umgehen ( ka was constructs sind)Ist komplett mit Objekte und klassen
C# ist näher an java dran als wie an C ( ka ob das stimmt ) weil C sehr hardware nahe ist und C# eher wie java damit umgehtJava hat natürlich die JVM
C# funktioniert nicht auf allen Geräten... ja gut aber C# funktioniert auf linux windows und mac da versteh ich das nichtfunktioniert überall gleich
was hängt an den Sachen dran es würde mich schon interessieren da ich gerade viel mit Unity rum spiele und C# sich doch ähnlich zu java anfühlt aber ich bin da noch nicht so in der Materie drin dass ich an die großen unterschiede ran gekommen wäre


oder gibt es andere begründungen für unterschiede die "wirklich" wichtig sind... zb dass C# const hat und java final ... meine jüte da kann man hinweg sehen :D
 

Barista

Top Contributor
C# hat auch eine Art VM.

C# funktioniert nicht auf allen Geräten... ja gut aber C# funktioniert auf linux windows und mac da versteh ich das nicht
Hängt von der .net-Version ab.

Früher lief C# nur auf Windows, inzwischen auch auf Linux und Mac sowie Android und iOS (Xamarin).

Mit Blazor läuft es sogar im Browser (WebAssembly).

Prinzipiell ist C# umfangreicher als Java.

Da gab es Lambdas schon viel früher.

Es gibt Structs und vorzeichenlose numerische Typen.

Sealed classes gab es in C# auch schon lange vor Java.
 

Mart

Bekanntes Mitglied
C# hat auch eine Art VM.
noch nie davon gehört was ist das und wie heist das

Es gibt Structs und vorzeichenlose numerische Typen.
ka was structs sind


das mit dem "umfangreicher" kann ich nur nahc unity beurteilen ... da gibts halt doch schon sehr viel krimskrams den man nicht selber machen muss wie zb euler Winkel und die ganzen Tools die es für C# gibt wie unity hub
 

Barista

Top Contributor
C# hat auch eine Art VM.
noch nie davon gehört was ist das und wie heist das
Virtuelle Maschine.

ka was structs sind
Zusammenfassung mehrerer Werte, stammt aus C.

das mit dem "umfangreicher" kann ich nur nahc unity beurteilen ... da gibts halt doch schon sehr viel krimskrams den man nicht selber machen muss wie zb euler Winkel
Das sind wahrscheinlich Bibliotheken. Hat erst mal nichts unmittelbar mit der Sprache zu tun, Bibliotheken gibt es für viele Sprachen.

und die ganzen Tools die es für C# gibt wie unity hub
Hat erst mal nichts unmittelbar mit der Sprache zu tun, Tools gibt es für viele Sprachen.
 

kneitzel

Top Contributor
Also .Net hat keine VM. Da hat man lediglich ein zusätzlichen Layer - aber natürlich vollen Zugriff auf alles, wenn man es wünscht. Das ist ein riesen Unterschied zu Java. (Da kann man mit JNI und so auch was basteln, aber das ist kein Vergleich zu .Net!)

Structs sind ähnlich wie bei C++ - https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/builtin-types/struct

Ansonsten ist C# deutlich aufgeräumter von den Konstrukten her. Java ist extrem von Boilerplate Code geprägt. Diese ganzen Getter / Setter. Standard Properties wären das in C# was in Java dann Variable mit Getter und Setter wäre.

Ansonsten sind die Sprachen aber prinzipiell ebenbürtig. Von der Geschichte her hat Microsoft eigentlich immer mehr den Microservice Ansatz verfolgt. Das mit "großem App-Server" gab es da so in der Form eigentlich nie. (Teilweise gab es Ansätze aber die wurden nie wirklich genutzt) Web Service war also immer extrem Trivial mit WCF ...
 

Mart

Bekanntes Mitglied
es gibt ja auch von der Syntax her kleinere unterschiede wo "c# simpler sein sollte als java" ... angeblich gibts da sooooo viel nur ich kenn nur einen

wenn man eine einzeilige Methode hat kann man es so schreiben
Java:
public void method() => return wert;
weis jemand wo es noch so unterschiede gibt die C# "einfacher" machen als java
 

White_Fox

Top Contributor
C# ist näher an java dran als wie an C ( ka ob das stimmt ) weil C sehr hardware nahe ist und C# eher wie java damit umgeht
Weder Java noch C# sind irgendwie nahe an C dran. C ist eine rein prozedurale Sprache. Es gibt zwar Leute die behaupten daß man auch in C objektorientiert arbeiten kann, aber das ist ziemlicher Unfug.

Ansonsten geben sich beide Sprachen nicht allzuviel, meiner Meinung nach. Java wird, soweit ich das sehe, von einer größeren Gruppe Freiwilliger mitentwickelt was teilweise in langwierige Abstimmungeprozesse mündet, bei C# machen die Microsoftis einfach was sie wollen.
 

kneitzel

Top Contributor
es gibt ja auch von der Syntax her kleinere unterschiede wo "c# simpler sein sollte als java" ... angeblich gibts da sooooo viel nur ich kenn nur einen

wenn man eine einzeilige Methode hat kann man es so schreiben
Java:
public void method() => return wert;
weis jemand wo es noch so unterschiede gibt die C# "einfacher" machen als java
Das siehst Du doch schon bei den Properties:
Java:
public string Name { get; set; }

Das ist eine Property, die sonst aus einem Feld besteht und dann eine get und eine set Implementation bekommen würde. Und das ist dann nur eine Zeile.

Man müsste sich das alles im Detail betrachten. Aber die Entwicklung von Java hat sich ja auch bewegt. Java ist ein Kolloss, der sich lange kaum bewegt hat. Das ändert sich aber, weil Oracle seine Unfähigkeit einsieht und alles abgibt. Aber selbst da schaffen sie es, die tollsten Dinge anzustellen!

wie konnte dann c# so "aufsteigen" bei der spiele programmierung und java nicht
Weil Java diesbezüglich wenig zu bieten hat. Da alles voll einzubauen ist einfach zu komplex. Microsoft hat halt mit DirectX frühzeitig eine Grundlage bereit gestellt für Spiele. OpenGL konnte da aus meiner Sicht nicht mithalten.

Und Microsoft macht eins genial: Die Unterstützung von Entwicklern. Du bist Entwickler? Dann kriegst Du ja fast alles für lau!

Aber sie verscherzen es sich mit einigen. Tolle Produkte bauen sie nur um sie dann einzustampfen. Das macht man paar Mal aber wenn man oft genug abgewatscht wurde, dann wacht man irgendwann auf. So bin ich dann auch wieder bei Java gelandet ....
 

Mart

Bekanntes Mitglied
es wurde für 1en user gemacht und war nicht wie linux darauf ausgelegt dass man 1 datei system hat auf dem server und übern x11 server dann mit vielen usern an 1em dateisystem was machen kann das fällt bei windows eher bescheiden aus ...

um es so auszudrücken... ich kriege es gebacken die dateien von überall zu erreichen in linux und die Rechte so einzustellen dass es passt


bei windows mit der "dateiumgebungsfreigabe aktivieren" fühlt man sich wie ..." hier nimm den lolli ... oder auch nicht " man kann gefühlt nichts damit machen
 

kneitzel

Top Contributor
Also da mixt Du Dinge durcheinander.

Dateisystem hat mit Freigaben erst einmal nichts zu tun. Und NTFS ist nicht für einen User gemacht. Windows NT ist nicht von DOS her entstanden und setzt nicht auf DOS auf (im Gegensatz zu den ganzen Windows 1, 2, 3, 95, 98 und ME Varianten).

Und Windows hat - beim Server - seit jeher entsprechende Remote Desktop Lösungen. Die werden dann durch Software von Dritten noch aufgemöbelt, aber da ist das Problem aus der Vergangenheit, dass Microsoft da wegen Kartellrecht immer Knüppel zwischen die Beine geworfen bekommen hat.

Und wie machst Du unter Linux Dateifreigaben? Das ist doch der letzte Dreck! Sorry, wenn ich das so deutlich sage. Bau ein Windows Server auf und mit wenig Mausklicks kriegst Du sofort einiges. Bau sowas erst einmal mit Linux auf. LDAP konfigurieren ... dann Samba mit LDAP Einbindung und und und ... Systeme in einer Domain die sich vertrauen? Mal Kerberos eingerichtet oder so? (Zumal da die Unterstützung bei Linux und Mac mangelhaft ist. Da hat man dann die Autorisierung an der Domain aber das Ticket dann bei Anwendungen einbinden? Welche Linux oder Mac Software unterstützt das denn?)

Aber zurück - Dateisystem ist ja nur Datenablage auf dem Datenträgern. Wir wollen aber Daten über das Netz schicken.
Und dann greift man auch was zurück? SMB mit Samba? Also willkommen bei der Windows Welt.
Oder ist NFS eine Alternative? Wenn man damit schon gearbeitet hat, dann wird man das nicht wirklich wollen. AFP von Apple? Das hat Apple doch schon fallen gelassen und funktioniert mit dem neuen Dateisystem APFS doch auch nicht mehr ...

Aber wir sind von dem eigentlichen Thema weg gekommen. Aber bei Betriebssystemen muss man mir nicht wirklich viel erzählen, denn das war viele Jahre genau mein Umfeld :)
 

Barista

Top Contributor
So etwas wie die Elvis-Operatoren für die null-Behandlung wurden für Java auch mal diskutiert, sind aber nicht in Java reingekommen.
 

kneitzel

Top Contributor
Kotlin was auch java ByteCode erstellt macht das ist Null sicher. Und kann viel tipparbeit ersparen.
ZB getter setter bei einer DatenKlasse ist sogar die toString Methode schon dabei.
Also sowas wie records in Java ... da ist sogar auch equals und hashcode mit dabei :)
 

kneitzel

Top Contributor
Aber ein ganz wichtiger Unterschied ist noch nicht genannt worden:

Operator Overloading!

Das ist wichtig, dann das führt dann dazu, dass man eben string Instanzen per == vergleichen kann. Oder wenn man da BigDecimal als Klasse hat, dann muss man da nicht irgendwelche .add(..) Konstrukte bauen oder so ...
 

Jw456

Top Contributor
Aber ein ganz wichtiger Unterschied ist noch nicht genannt worden:

Operator Overloading!

Das ist wichtig, dann das führt dann dazu, dass man eben string Instanzen per == vergleichen kann. Oder wenn man da BigDecimal als Klasse hat, dann muss man da nicht irgendwelche .add(..) Konstrukte bauen oder so ...
geht auch in kotlin
 

Neumi5694

Top Contributor
Die getter und setter sind in C# angenehmer zu handhaben.
In anderen Syntax-Bereichen holt Java auf.
Enums sind in Java viel mächtiger als in C#, allerdings muss man in Java für Mehrfachnennungen als Methodenparameter auf eine Collection zurückgreifen und die Methode muss dies explizit erlauben/erwarten.

C# ist nicht "einfacher" als Java. Die beiden sind sich im Grunde durchaus ebenbürtig, in Java sieht man im Text halt deutlich mehr Klammern, da hier immer noch alles mit Methoden geschrieben steht, während C# wie bei den Gettern und Settern Alternativen bietet.
Problematisch wird's, wenn man mit anderer Windows-Software interagieren will. Klar geht das auch mit Java, aber die .net Ansteuerung wirkt hier dann doch eher wie eine rektale Augenoperation. Wenn man nur wenige verschiedene Zugriffe hat, lohnt sich ein Wrapper von C# nach C++.
Nach Visual J++ hat Microsoft mit J# versucht, Java-Programmierer auf "ihre Seite" zu ziehen - mit mäßigem Erfolg.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JNA - JNI - pures Java - Vergleich Allgemeine Java-Themen 6
U Java Performance im Vergleich zu C++ in speziellem Anwendungsfall Allgemeine Java-Themen 6
P Vergleich: Java - .net Allgemeine Java-Themen 5
C Performance Vergleich, Java vs. Tcl/Tk Allgemeine Java-Themen 3
D Vergleich OracleJDK/OpenJDK Allgemeine Java-Themen 7
T Komplexitätsoptimierung String vergleich Allgemeine Java-Themen 4
T If Vergleich ergibt nicht das richtige Ergebnis Allgemeine Java-Themen 2
K Vergleich von Strings von Objekten Allgemeine Java-Themen 4
E Problem mit Array vergleich Allgemeine Java-Themen 4
M Vergleich (unscharf) von Screenshots Allgemeine Java-Themen 0
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
S BufferedImage vergleich mit Subimage Allgemeine Java-Themen 1
Z Vergleich zwischen int und Object Allgemeine Java-Themen 1
M Datums vergleich klappt überhaupt nicht.. Allgemeine Java-Themen 4
S Calendar vergleich Allgemeine Java-Themen 2
G Zeilenweiser Vergleich Allgemeine Java-Themen 10
E Vorschläge, effizientes Hashing von Dateien für vergleich Allgemeine Java-Themen 7
W Vergleich eines Datenträgers auf neue Dateien Allgemeine Java-Themen 14
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
N Input/Output Vergleich von identischen Strings schlägt fehl Allgemeine Java-Themen 5
N Vergleich eigener Klassen Allgemeine Java-Themen 5
P J-Unit vergleich von 2 Objekten merkwürdig Allgemeine Java-Themen 7
K GUI-Button Inhalte vergleich - TicTacToe Grundriss Allgemeine Java-Themen 11
N Vergleich von generischen Typen Allgemeine Java-Themen 2
S String-Vergleich in if Allgemeine Java-Themen 7
I Vergleich zweier Felder Allgemeine Java-Themen 3
M Vergleich von TreeSet<HashSet>^2 Allgemeine Java-Themen 8
F Vergleich zweier Listen Allgemeine Java-Themen 4
D Was ist schneller? Zuweisung oder Vergleich? Allgemeine Java-Themen 18
O String NICHT vergleich Allgemeine Java-Themen 7
G Vergleich von .jpg Dateien Allgemeine Java-Themen 2
I vergleich und zählen von Strings Allgemeine Java-Themen 7
K Vergleich von Icons . Allgemeine Java-Themen 8
N vergleich mit while und for schleife Allgemeine Java-Themen 7
M Vergleich im geordeten Vector und Methodenaufruf Allgemeine Java-Themen 2
minzel String in String (Vergleich) Allgemeine Java-Themen 2
J vergleich zweier datenstrukturen Allgemeine Java-Themen 6
T Vergleich von Tastatureingabe mit dem was in der Datei steht Allgemeine Java-Themen 21
N Split -> IF-String vergleich Allgemeine Java-Themen 5
N Vergleich zweier Hashtable / mehrere Enumerations Allgemeine Java-Themen 7
B bit vergleich oder regex Allgemeine Java-Themen 1
Master3000 JAVA Filereader Allgemeine Java-Themen 18
N A java Exception has occured Allgemeine Java-Themen 7
F Java Script für das Vorhaben das richtige? Allgemeine Java-Themen 9
M wiviel Java muss ich für die Berufswelt können ? Allgemeine Java-Themen 5
R Datumsformat für GB ab Java 16 Allgemeine Java-Themen 1
1Raini Java Warteschlange Allgemeine Java-Themen 21
Tobero .jar Dateine aus einem Ordner laden (Java 16) Allgemeine Java-Themen 5
Z WebApp mit Java verbinden. Allgemeine Java-Themen 8
S Bildrechte Java, HTML5 und PDF Symbole Allgemeine Java-Themen 5
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
S Java öffnet immer im editor Allgemeine Java-Themen 1
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
F Java JDK ohne Oracle Konto Allgemeine Java-Themen 5
B Mit Java Click bei (x,y) machen? Allgemeine Java-Themen 6
S Java-Clicker Allgemeine Java-Themen 6
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
J Gmail Postfach und Java Allgemeine Java-Themen 6
E Java Website Login Allgemeine Java-Themen 2
D SHA-3 für Java-version 1.8 Allgemeine Java-Themen 1
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
X Java gewerblich nutzen mit externe Bibliothek. Was zu beachten? Allgemeine Java-Themen 18
B In Java Methode mit generic input und output basteln? Allgemeine Java-Themen 4
A Java ListNode Element einfügen ohne Bibliothek Allgemeine Java-Themen 6
S Flächenermittlung von 3D-Modellen per Java? Allgemeine Java-Themen 8
sascha-sphw Erste Schritte Unit und Integration-Tests im Java Modul System Allgemeine Java-Themen 10
Q Java-Programmieren Allgemeine Java-Themen 1
mrBrown Java 16 ist seit heute verfügbar Allgemeine Java-Themen 12
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
B BOT mit Java [Eclipse] programmieren Allgemeine Java-Themen 7
NicoDeluxe Java Email Templates Allgemeine Java-Themen 2
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
G Übermittlung zusätzlicher ASCII-Zeichen bei Übertragung von Dateiinhalt mit Xmodem - JAVA Allgemeine Java-Themen 9
D Java als anfänger Allgemeine Java-Themen 6
H was ist den dieses zur Kompilierzeit und zur Laufzeit in Java? Allgemeine Java-Themen 3
rtm007 Per Java Im Terminal Befehle eingeben. Allgemeine Java-Themen 4
J4n5chmiddi Methoden Website-URL im Browser öffnen nach erfolgreicher Basisauthentifizierung in Java Allgemeine Java-Themen 12
R Java Stream: Ist es möglich, einen stream zusammenzufassen Allgemeine Java-Themen 6
T Best Practice Java und unmodifiable Allgemeine Java-Themen 10
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
Vanessa001 Hausaufgabe in Java Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
T C++ Methode Übersetzung in Java Allgemeine Java-Themen 3
s_1895 Hilfe bei Java Tic Tac Toe Allgemeine Java-Themen 8
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
F Java Console Allgemeine Java-Themen 2
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
AGW Java zu Kotlin Allgemeine Java-Themen 5
bax7891 Java Damals - Java Heute Allgemeine Java-Themen 6
tm.grp Teilsummenproblem in Java Allgemeine Java-Themen 2
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
O Input/Output java.io.File beenden Allgemeine Java-Themen 5
S Java class direved from inner class Allgemeine Java-Themen 6
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
H Java SDK unter 32 Bit Allgemeine Java-Themen 5
P Unterschied Java SE und Java EE Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben