C# vs. Java

J

justdidit

Forum Freak
Ich hoffe einfach mal, dass sich unter den Notebookbegeisterten auch einige Programmierer befinden und poste mein Anliegen einfach mal.

Da ich mich für das nächste Semester zwischen den Sprachen Java oder C# entscheiden muss und mir diese Entscheidung ziemlich schwer fällt, würde es mich interessieren was die anderen User hier so von den Sprachen halten.

Für Java würde sprechen, dass ich mit dieser Sprache bereits ein Schuljahr gearbeitet habe und die Plattformunabhängigkeit.

Andererseits würde ich C# auch als sehr interessant empfinden. Das .Net Framework ist schon wirklich klasse und auch der Offline Server ist ein wirklich gutes Feature.

Bitte um eure Meinung
 
wenn du Java kannst, ist C# relativ leicht zu erlernen.
Über den Tellerrand raus zu sehen ist nie schlecht, allerdings kommts drauf an wie weit dein Wissen bei Java geht.
Auf der Uni in Linz lernst du java ca. 3 Jahre, bis du mal wirklich an eine andere Programmiersprache denken kannst.
Dann ist es relativ interessant, wie MS manche sachen umgesetzt hast.
.NET ist auch Plattform Unabhängig. Es gibt diverse Portierungsprojekte für verschiedenste Plattformen. Kommt halt von MS und hat deshalb einen etwas komischen Beigeschmack.
 
Naja, so tiefgründig ist mein Java-Wissen nun auch wieder nicht. Was mir die Entscheidung so schwer macht ist, dass ich, wenn ich mit der Schule fertig bin schließlich 5 Sprachen (Delphi, C, C++, Java und C#) können würde und davon keine richtig beherrsche. Allerdings wäre C# eine Sprache, die mich wirklich extrem interessieren würde.

Der MS-Beigeschmack ist mir persönlich eigentlich egal, da ich mich nicht zu den "erbitterten MS-Feinden" zähle.

Die Frage ist eben, in wie weit diese Portierungsprojekte funktionsfähig sind, oder ob es noch Probleme damit gibt. Ich habe mir bis jetzt nur ganz kurz mal den .Net Klon für Linux angesehen. Von daher kann ich zu diesem Thema nicht viel sagen.
 
Ich lerne im studium momentan auch C, im nächsten semester java. bei c hatte ich vorher keine vorkenntnisse und ich komme damit eigentlich auch recht gut zurecht, java hatte ich mal als ein schulprojekt, da hatte ich damals mehr probleme. sicherlich fält mir c auch leichter, da ich diese vorkenntnisse von java schon habe
 
C und C++ habe ich auch gerade. Aber ich weiß nicht so recht. Irgendwie finde ich die Basics der Sprache nicht optimal gelöst. Der Aufbau mit Pointern gefällt mir nicht wirklich und auch das permanente allokieren und wieder freigeben des Speichers ist komisch gelöst. Mag sein, dass ich etwas verwöhnt bin, da ich vorher mit Java gearbeitet habe, aber der Garbage Collector ist schon eine wirklich feine Sache.

Eine Frage noch: Wie lange hast du C dann insgesamt gehabt. Und programmiert ihr unter Linux oder Windows?
 
Zuletzt bearbeitet:
C und C++ sind nicht wirklich komfortabel beim Thema Speicherverwaltung. Jedoch spricht doch vor allem die Performance der erzeugten Programme für diese Sprachen.
Java ist durch den Internet Hype groß geworden. Laufzeitmäßig ist aber jeder Sprache die Interpretiert wird ein Horror.
.NET ist da schon intelligenter durch den doch teilweise vorkompilierten Code, bzw. die Möglichkeit derartigen Code zu erzeugen.
An C oder C++ kommen sie aber immer noch nicht ran.
Also, mein Tip: konzentriert euch auf C++ denn das ist nach wie vor wichtig. andere Programmiersprachen lernt ihr euch dann im Handumdrehen selbst.
Vor allem weil Java und C# (greif ich jetzt mal aus .NET heraus) auf C++ aufbauen.
Ich konnte von der HTL her einiges an C bzw. C++. Im Studium hat ich dann mit Java kein Problem.
 
Was die Laufzeit betrifft hast du selbstverständlich Recht.

Aber mich würde Java oder C# vor allem deshalbe interessieren, weil ich später eher in Richtung Webdesgin oder Webapplikationen gehen möchte.

Besten Dank auf alle Fälle für deine bisherigen Antworten.

PS: Bist du, wenn man fragen darf, jetzt beruflich auch wirklich in Richtung Software-Engineering gegangen.
 
wenn du mich meinst, ich studiere noch ca. bis Sommer 2007
 
ThomasN schrieb:
Java ist durch den Internet Hype groß geworden. Laufzeitmäßig ist aber jeder Sprache die Interpretiert wird ein Horror.
.NET ist da schon intelligenter durch den doch teilweise vorkompilierten Code, bzw. die Möglichkeit derartigen Code zu erzeugen.

Ok ok, mal ganz langsam! Java ist auch nur "teilinterpretiert" dahinter stecken der Bytecode (auch für C#) und der Just In Time Compiler (JIT). Das heißt in der hinsicht sind sich C# und Java sehr ähnlich. Das einzige was lahm ist an Java ist vielleicht die Swing-GUI aber das hat andere Gründe. Java läuft ausserdem auf fast allem (z.B. Handys, x86, x86-64, SPARC, PowerPC (wahrscheinlich auch auf einem Taschenrechner wenn mans drauf anlegt ;-))

Guck mal hier ganz unten auf der Seite: http://en.wikipedia.org/wiki/Java_platform

Muss man wissen, was man haben will. Am besten nicht noch eine imperative Sprache (C, C++, C#, Java, Fortran, Basic...) sondern eine funktionale oder logische. Erweitert nen bisschen den Horizont. Muss man aber auch offen rangehen. Mit "wozu denn das jetzt" bringt das nix.

EDIT by ThomasN: Link gefixt
 
Zuletzt bearbeitet von einem Moderator:
kusnezow schrieb:
Ok ok, mal ganz langsam! Java ist auch nur "teilinterpretiert" dahinter stecken der Bytecode (auch für C#) und der Just In Time Compiler (JIT). Das heißt in der hinsicht sind sich C# und Java sehr ähnlich. Das einzige was lahm ist an Java ist vielleicht die Swing-GUI aber das hat andere Gründe. Java läuft ausserdem auf fast allem (z.B. Handys, x86, x86-64, SPARC, PowerPC (wahrscheinlich auch auf einem Taschenrechner wenn mans drauf anlegt ;-))
Java ist allgemein lahm eben wegen dem JIT.
C# ist, sobald es einmal gestartet ist, immer schneller.

Hintergrund: Java wird beim Compilieren (also übersetzen des geschriebenen Programmes) in den Bytecode umgewandelt. Dieser Bytecode wird dann von der Java Virtual Machine interpretiert. Also ähnlich einer Skiptsprache, und das permanent im Hintergrund.
C# wird beim compilieren in die CIL übersetzt (CommonIntermediateLanguage) die alle .NET Sprachen gleich haben. Beim starten eines .NET Programmes wird dann diese CIL in Maschinensprache übersetzt und dann erst ausgeführt. dieser Vorgang erfolgt also nur beim start des Programmes und nicht permanent (wie bei Java)
Man sieht also, durchaus intelligent umgesetzt von Microsoft.
 
Ich studiere Informatik und finde Java ist die beste Sprache.

Sie ist plattformunabhängig und man kann sehr viel damit machen. Hab zuerst C, dann c++ und Java gelernt. In Java habe ich mich aber verliebt. Allein was mit Java und dem Internet alles möglich ist. Hammer.

Das Java etwas langsamer ist zwar korrekt, aber ich persöhnlich finde, dass man es kaum merkt.
Es kommt auch auf den Programmierstill an. Umso komplizierter man programmiert, umso länger dauert auch das Programm.

Ich kann Dir nur zu Java raten. Bei uns gab es sogar die Diskussion zuerst Java zu lernen und dann mit C und C++ weiterzumachen. Wer Java kann, hat mit den anderen Sprachen kein großes Problem.

Tobi
 
knobi schrieb:
Ich kann Dir nur zu Java raten. Bei uns gab es sogar die Diskussion zuerst Java zu lernen und dann mit C und C++ weiterzumachen. Wer Java kann, hat mit den anderen Sprachen kein großes Problem.
dem kann ich nicht zustimmen.
Gerade das Speichermanagement eines Computers ist ein wichtiger Teil um den sich ein Programmierer zu kümmern hat.
Bei Java und auch z.B. c# brauchst du dich darum einfach nicht zu kümmern.
Wenn du dann von einer Sprache wie Java auf C umsteigst, ist es relativ schwierig dich in Pointer, Heap, Stack, Templates, ... hineinzudenken.

Wenn du dich nicht mit den Hintergründen beschäftigen willst, wozu studierst du dann? Im Studium lernst du zu verstehen was im Background abläuft, und warum etwas wie funktioniert.
Dieses Wissen unterscheidet genau uns Informatiker von einfachen Klicksern und Programmzusammenstopplern, wies mit den einfachen GUI Designern inzwischen schon möglich ist.
Gerade Sprachen wie Java haben es dem Otto Normalverbraucher möglich gemacht, eine eigene Karriere als Web Designer zu starten. Ist ja grundsätzlich nicht schlecht, aber wozu sollte ich studieren wenn ich nicht den Hintergrund ergründen will?
 
ich muss mich für nächstes semester entscheiden zwischen c++ und java.

eigentlich ist mir c++ lieber, da ich auch später gerne in diesem bereich etwas machen würde, allerdings habe ich bedenken, da jetzt einsteigen zu können...

kann zwar sehr gut mit pascal und basic umgehen(pointer, listen, bäume, rekursion, die grundlegenden sachen halt, sind kein problem), allerdings kann man das mit c++ ja nicht so vergleichen.

was würdet ihr mir da empfehlen ?
 
Intelligent ist was anderes

Also, Java ist immernoch eine teilinterpretierte Sprache und das macht auch durchaus Sinn, weil sachen, die nur einmal gebraucht werden interpretiert werden und sachen die häufiger gebraucht werden werden dann on-the-fly compiliert. Aber einmal kompiliert, muss es dann nie wieder kompiliert werden bis zum nächsten Programmstart (d.h. das JRE merkt sich den Code bis zum ende des Programms). Und das ist durchaus effizienter als gleich alles zu kompilieren. Was du ansprichst war vielleicht bei 1.0 so, und bis 1.2 konnte mal den JIT ausschalten. Aber jetzt geht das nicht mehr. Hat Sun wohl intelligent gemacht was? Man sollte sich informieren bevor man unfug verbreitet.

C hat keine Templates...
Wieso hat gerade Java es Webdesignern ermöglicht eine Karriere als Webdesigner zu starten? da gibt es ein paar sachen, die da doch besser sind und auch eher benutzt werden, z.B. php oder Flash. Nach dem anfänglichen Internet-Hype gibts doch jetzt kaum noch Appletts die webdesignelemente sind. Applets werden jetzt eher dort eingesetzt wo man Programme auf einer Website haben muss.

Ausserdem hat niemand gesagt, dass man im Studium nicht auch mit Java die Speicherverwaltung kennenlernen kann, nur das die dort für einen übernommen wird. Es gibt da auch noch Leute die ein Studium in der richtung anfangen ohne jemals ein Programm geschrieben zu haben. Wenn man sich wirklich für die innereien interessiert, dann muss man sich später dahin spezialisieren (Programmiersprachen oder OS entwicklung etc.) Es gibt aber auch viele Bereiche wo man das nicht wirklich braucht (zum Beispiel theoretische Informatik).
 

Ähnliche Themen

Asus X55 F55A-SX048D

Testbericht HP Elitebook 8540w

SONY VAIO VPC-Z12C7E/B Testbericht

Thinkpad T400, Latitude E6400, HP Elitebook 6930p, MacBook Pro etc.

[Testbericht] X200 Tablet

Zurück
Oben