[JAVA oder C#] Welche Sprache ist Zukunftsicherer?

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.

sataan1337  26.09.2011, 17:21

arbeitest du in java nicht normalerweise mit Zeigern solange du nicht explizit was anderes vorschreibst? public class Test{

    private String mTest;
    public Test(final String mTest){
        super();
        this.mTest = mTest;
    }

    public void setMTest(final String mTest){
        this.mTest = mTest;
    }
    public String getMTest(){
        return mTest;
    }       
    public static void main(final String args[]){
        final Test test1 = new Test("vorher");
        final Test test2 = test1;
        System.out.println("vorher test1: " + test1.getMTest());
        System.out.println("vorher test2: " + test2.getMTest());
        test1.setMTest("nachher");
        System.out.println("nachher test1: " + test1.getMTest());
        System.out.println("nachher test2: " + test2.getMTest());
    }
}

Ausgabe:

vorher test1: vorher
vorher test2: vorher
nachher test1: nachher
nachher test2: nachher

oder versteh ich da grad etwas falsch? ^^

0
cgimda  03.10.2011, 21:50
@sataan1337

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.

0

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

cgimda  22.09.2011, 13:24

Es ist richtig, dass im Normalfall auf Pointer verzichtet werden sollte, aber es gibt Ausnahmesituationen, wo das Arbeiten mit Pointern einen immensen Geschwindigkeitsvorteil bringt.

0
slowfly  22.09.2011, 14:25
@cgimda

Mann kann in Java auch C, C++ und sogar Assembler einbinden, wenn man witzig ist,...

Und eine Überlegung: Lieber das ganze in Assembler entwickeln, oder doch lieber einen zweiten Server hinstellen? ;)

0
cgimda  22.09.2011, 14:46
@slowfly

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.

0

Also Java wird momentan noch oft verwendet aber besser ist C oder C+ zu lernen weil mehrer programme damit arbeiten (z.B: Python) ;)

bel1987  21.09.2011, 09:15

und ich dachte python programmiert man in python oO ^^

0
thedafelix  21.09.2011, 20:06

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

0