C# oder Java?



  • Hallo,

    ich würde gerne eine zusätzliche Programmiersprache lernen, bin aber im Moment unentschlossen welche ich wählen soll (ich weiß, solche Themen gibt es zur Genüge, aber ich komme einfach auf keinen grünen Zweig, daher frage ich einfach mal):

    Wie der Titel schon verrät sind C# und Java in der engeren Auswahl, da sich die Sprachen aber teilweise ähnlich sind, kann ich mich eben nicht wirklich entscheiden:

    Was ich will:
    - Anwendungsentwicklung; Desktopapplikationen - also nichts sehr hardwarenahes (oder Betriebssystementwicklung), einfach nur Programme die ich (oder wer anders) benötigt. Nach Bedarf aber vielleicht doch die Möglichkeit, zumindest irgendwie an die Hardware zu kommen (zumindest welche Hardware verbaut ist würde ich ganz gern irgendwie auslesen können)
    - evtl. Spieleprogrammierung - keine Spiele à la Crysis und Co., eher in die Richtung Indie-Games wie Minecraft, Rollenspiele mit (Isometric-)Tile-Engine, kleinere Spielchen eben... keine hochkomplexe 3D-Programmierung. Ggf. auch die Möglichkeit die Sprache in einer Engine (wie z.B. Unity) zu verwenden (was dann wohl eher für C# bzw. Mono sprechen würde, da Unity meines Wissens nach kein Java unterstützt)
    - möglichst Plattformübergreifend. Ich programmiere zu Hause auf einem Windows-Rechner und unterwegs auf einem Mac (ohne Bootcamp). Das widerrum würde eher für Java sprechen, oder eben Mono (wobei hier auch eher Java in Frage käme, gefühlt haben weit mehr Leute Java-Unterstützung auf ihren Geräten als Mono...)
    - eine Sprache mit möglichst umfangreicher Anzahl an Bibliotheken.
    - eine Sprache die "wächst" (also eine Sprache, die in 3 Jahren kein Zumpft mehr kennt). (was wohl auf beide zutrifft)

    Da ich kein Milli- oder Nanosekunden-Reiter bin, ist die Geschwindigkeit der VM in erster Linie nur sekundär relevant.

    Was würde also eher passen? Java oder C#?



  • Nimm Java. 👍
    C# gehört zur Achse des Bösen und ist Teil eines größeren Plans Microsoft zur versklavung der Menschheit



  • Du wirst hier wahrscheinlich größtenteils Meinungen hören.
    Forsche einfach selbst. Mach kleine Experimente und gucke, was für dich am Besten geeignet ist.



  • Ich habe mir ja schon beide Sprachen angesehen, und auch schon in beiden (sehr kleine) Programme geschrieben. Deswegen bin ich ja so unentschlossen :p



  • Nimm C#. 👍 (Begründung siehe GNU-Fanatiker.)



  • Kommt drauf an wie dringend für dich die Plattformunabhängigkeit ist. Wenn du alle C#-Sachen, die du brauchst, irgendwie auf allen deinen Plattformen zum Laufen bekommst, dann nimm C#. Java wäre als Sprache imo komplett überflüssig, wenn C# eine wirklich platformunabhängige Sprache wäre.



  • Dann nimm Java. 😃
    Begründung: Plattformunabhängigkeit ist da besser umgesetzt. Mono hinkt C# immer hinterher und hat sicherlich hier und da Bugs.
    Außerdem soll die Abwärtskompatibilität bei Mono schlechter sein.
    Das alles kenne ich aber nur von Hörensagen.

    L. G.
    Steffo



  • nimm c#, weil über java nur gejammert wird.



  • Java ist nicht besonders gut. Daher ist es auch nicht sonderlich weit verbreitet.



  • Mir gefällt C# als Sprache besser als Java. Und für Desktop Anwendungen unter Windows find ichs eh besser, Java Anwendungen fühlen sich immer irgendwie komisch an. Wenn Plattformunabhängigkeit aber besonders wichtig für dich ist, dann natürlich doch Java.



  • wenn dir desktopanwendungen und plattform unabhägigkeit wichtig sind, dann nimm Java und C#. 😃



  • Nunja, wie gesagt, müsste ich bei C# wohl eher auf Mono zurückgreifen, da ich nur Wochenends am PC sein kann. (es sei denn, ich klatsch mir ein Bootcamp drauf... was ich aber irgendwie nicht so gern würde)

    Ich werde mir wohl mal eine Liste von Vor- und Nachteilen der Sprachen erstellen und dann lässt es sich evtl. besser abschätzen. Was mich aber noch interessieren würde:
    - ist C# für Spieleprogrammierung eigentlich geeignet (für diese doch relativ kleine Dimension, wie ich es halt will)? In dieser Hinsicht habe ich eigentlich noch nie was gelesen/gesehen.
    - wie stark würde sich der Griff zu Mono bemerkbar machen? Oder wäre es im Endeffekt wirklich klüger extra für C# ein Windows draufzuknallen?

    Kommt drauf an wie dringend für dich die Plattformunabhängigkeit ist. Wenn du alle C#-Sachen, die du brauchst, irgendwie auf allen deinen Plattformen zum Laufen bekommst, dann nimm C#. Java wäre als Sprache imo komplett überflüssig, wenn C# eine wirklich platformunabhängige Sprache wäre.

    Wenn ich das nur wüsste 😞



  • Ich würde nicht auf Mono setzen. Es ist zwar ganz nett und auch erstaunlich wie gut das funktioniert, hat auch paar interessante Sachen hervorgebracht, wie Cecil, aber es hinkt doch ein gutes Stück hinterher und das wird in der Linux Welt sicherlich nicht ankommen. Wenn ein Linuxer sieht, dass er für ein Programm Mono braucht, ignoriert er das Programm meist. Also, wenn du wirklich Plattformunabhängigkeit willst, dann Java.



  • Mechanics schrieb:

    Ich würde nicht auf Mono setzen. Es ist zwar ganz nett und auch erstaunlich wie gut das funktioniert, hat auch paar interessante Sachen hervorgebracht, wie Cecil, aber es hinkt doch ein gutes Stück hinterher und das wird in der Linux Welt sicherlich nicht ankommen. Wenn ein Linuxer sieht, dass er für ein Programm Mono braucht, ignoriert er das Programm meist. Also, wenn du wirklich Plattformunabhängigkeit willst, dann Java.

    Wie es gibst Cecil auf Mono? Ach ne, das ist ne ECMA CIL enginerring library. Gibst auch für .NET: http://ccimetadata.codeplex.com/ (ohne Gewähr - ich hab nie getestet)



  • Mechanics schrieb:

    Ich würde nicht auf Mono setzen. Es ist zwar ganz nett und auch erstaunlich wie gut das funktioniert, hat auch paar interessante Sachen hervorgebracht, wie Cecil, aber es hinkt doch ein gutes Stück hinterher und das wird in der Linux Welt sicherlich nicht ankommen. Wenn ein Linuxer sieht, dass er für ein Programm Mono braucht, ignoriert er das Programm meist. Also, wenn du wirklich Plattformunabhängigkeit willst, dann Java.

    Es geht mir bei Plattformunabhängig gar nicht so sehr um Linux, sondern eher mehr um OS X (da mein Bekanntenkreis zum Großteil Macs besitzt). Sie zum Testen meiner Programme zu zwingen wäre dann halt eher bescheiden ;)...

    Sprachtechnisch gefällt mir C# doch ein bisschen mehr als Java; keine Class-Namespace-Vergewaltigung, einige Sprachelemente selbst (structs, ...), Systemprogrammierung möglich... Im Gegenzug dazu ist Java halt wesentlich verbreiteter und portabler.

    Hach, ich verzweifle langsam... 😕



  • Inwiefern ist Systemprogrammierung mit C# möglich? 😕
    Und wozu brauchst du structs?



  • Es ging nicht explizit um structs, nur darum, dass die Sprache "mehr bietet".
    Zur Systemprogrammierung: laut dem, was ich rausgefunden habe, so weit wie ich es benötige - und dafür tut es, was ich ja schon bei Python gesehen habe, WMI ziemlich gut. Und WMI wird es unter Java wohl nicht geben. Nachteil ist zwar, dass WMI nicht portierbar ist, aber es geht ja ausnahmsweise mal nur ums Prinzip.



  • Unentschlossen schrieb:

    - ist C# für Spieleprogrammierung eigentlich geeignet (für diese doch relativ kleine Dimension, wie ich es halt will)? In dieser Hinsicht habe ich eigentlich noch nie was gelesen/gesehen.

    Sehr gut sogar, google mal nach XNA.



  • Gerade vorhin schon gefunden, danke aber trotzdem. Sieht sehr interessant aus!



  • Unentschlossen schrieb:

    Sprachtechnisch gefällt mir C# doch ein bisschen mehr als Java; keine Class-Namespace-Vergewaltigung, einige Sprachelemente selbst (structs, ...)

    Also, dass bei den ganzen C# Features jemand structs erwähnt find ich schon lustig ^^ Da gibts schon interessantere Sachen, wie Lambda Ausdrücke oder Linq.


Anmelden zum Antworten