[JAVA oder C#] Welche Sprache ist Zukunftsicherer?
Welche der beiden Sprache ist Zukunftsicherer und lohnt sich mehr zu lernen? welche der beiden sprachen ist komplexer?
ich meine, mit beide kann man das selbe machen, mit fast gleicher Syntax
8 Antworten
das ist keine frage der zukunftsichheit, sondern des einsatzgebiets. sie ähneln sich, sind aber trotzdem sehr unterschiedlich einsetzbar.
Hier steht einiges was korrekt ist und einiger Unsinn.
Ich selbst bin Softwareentwickler und arbeitete mehr als 10 Jahre im Java Bereich in den letzten Jahren verstärkt C#
Beide Sprachen sind ähnlich komplex, daher ist der Einstieg bei beiden ähnlich. Im Wirtschaftsbereich wird etwas mehr Java gesucht als C#
Dennoch bevorzuge ich inzwischen C#. Anfangs hat Microsoft von Java abgekupfert. Inzwischen gibt es die meisten Neuerungen im C# Bereich und Java zieht dann nach.
So oder so sind die Sprachen sich aber ähnlich.
Du kannst mit beiden Sprachen anfangen. Bei einem Studium ist die Wahrscheinlichkeit höher mit Java konfrontiert zu werden als mit C#. Wenn Du sowas vorhast, dann fange mit Java an. Es spricht langfristig nichts dagegen beides zu können. Ein Informatiker muss sowieso ständig neue Technologien lernen wieso dann nicht auch mehrere der gängigen Sprachen.
C# ist für den Einstieg die einfachere Programmiersprache. Gerade wenn man diese in Verbindung mit Visual Studio nutzt, ist es ein wahres Vergnügen damit zu programmieren.
Trotzdem bietet C# auch Möglichkeiten, die es in Java nicht gibt. Beispielsweise das Verwenden von Zeigern.
Im Normalfall wird aus einen C#-Quelltext eine .Net-Anwendung kompiliert, die dann auch plattformunabhängig ist. Projekte wie Mono erlauben es sogar solche .Net-Anwendungen unter MacOS oder Linux laufen zu lassen, ohne dass die Anwendung neu kompiliert werden muss. (Java ist natürlich auch plattformunabhängig). Programme für Xbox oder Windows Phone werden auch mit C# geschrieben.
Egal für welche Plattform man programmiert, man hat immer wieder (fast) die gleichen Bibliotheken und muss sich nicht jedesmal wieder neu in irgendetwas einarbeiten. Das macht das Arbeiten mit C# auf die Dauer sehr angenehm.
Wenn du C# also erst mal erlernt hast, dann hast sehr viele Einsatzmöglichkeiten dafür, wo du die Sprache verwenden kannst.
Übrigens kannte ich Java schon lange bevor ich C# kennengelernt habe. C# hat mich mit der Zeit aber wesentlich mehr überzeugt.
Man arbeitet in Java und auch in C# grundsätzlich immer mit Zeigern, aber es gibt Einschränkungen gegenüber C++
Deswegen wird in C# zwischen Werttypen und Verweistypen unterschieden. Arbeitet man in C# mit Strukturen, dann folgen die der Wertsemantik, weil Strukturen Werttypen sind. Dadurch kann man Zeiger wie in klassischen C++ benutzen.
Ich komme aus dem Java-Bereich.
Die Sprachen ähneln sich eigentilch sehr, unter C# gibt es halt Dinge, die ich "nicht besonders" mag, ist aber eine Religionsfrage. Jemand schrieb, unter C# can man mit Pointern arbeiten, das ist ja etwas, das man in Java konsequent vermeiden sollte - also unterschiedliche Strategien.
Ich würde behaupten, Java ist zukunftssicherer - jedenfalls gibt es mehr Stellen für Java-Entwickler als .NET-Entwickler. Aber dann muss man natürlich auch solche politschen Dinge anschauen wie dass Oracle Sun übernommen hat und Ähnliches. Auch muss man sehen, dass Java eine wirklich sehr grosse Open Source Community "bereitstellt". Unsere Entwicklungsumgeung ist Open Source, die Applikationsserver (für welchen wir bezahlten Support haben), unsere Libraries, etc. Aber ich wage zu behaupten, in 10 Jahren wird's noch beides geben.
Schlussendlich wird's egal sein, welche Sprache du lernst, wichtig ist, dass du die korrekten Ansätze der Entwicklung, wie zum Beispiel Objektorientierte Entwicklung, richtig lernst und korrent anzuwenden weisst. Irgendwann bist du an einem Punkt, an welchem du die Sprache beherrscht und sozusagen "alles kannst" - aber da gibt es noch sehr viele andere, sehr wichtige Aspekte... hohe Kohäsion, lose Koppling, Wiederverwendbarkeit, Lesbarkeit, Performance,... und so weiter. Solche Dinge sind meines Erachtens ab einem Punkt wichtiger...
Es ist richtig, dass im Normalfall auf Pointer verzichtet werden sollte, aber es gibt Ausnahmesituationen, wo das Arbeiten mit Pointern einen immensen Geschwindigkeitsvorteil bringt.
C, C++ und Assembler kann auch in C# eingebunden werden. In einigen Situationen ist es aber einfacher die Pointer direkt in C# zu verwenden.
In meinen Anwendungsfall ging es übrigens um eine normale Desktop-Anwendung, wo die Lösung mit Pointern wesentlich schneller war.
Also Java wird momentan noch oft verwendet aber besser ist C oder C+ zu lernen weil mehrer programme damit arbeiten (z.B: Python) ;)
Da halt mal wieder jemand keine Ahnung, C+ kennt doch kein Mensch und C ist gut wenn du Spieleengines oder Treiber schreiben willst. Mit C entstehen viel leichter Programme mit Sicherheitslücken. C hat für einen Anfägner praktisch keine Vorteile
arbeitest du in java nicht normalerweise mit Zeigern solange du nicht explizit was anderes vorschreibst? public class Test{
Ausgabe:
oder versteh ich da grad etwas falsch? ^^