Unterschied zwischen Java, C und C++ | Vor- Nachteile | Schwierigkeit | Alg. Unterschiede

6 Antworten

ja, die unterschiede gibt es.
c und c++ für system nahe Sachen
java (und c++) dann für system ferne Sachen.
und du kannst auch nicht in java ein programm schreiben und das dann gleichzeitig als c programm bezeichnen. gerade im webbereich ist java auch sehr beliebt, c würde da glaube ich niemand verwenden.
um jetzt mal auf die geschwindigkeit einzugehen : c und c++ = schnell
java = nicht ganz so schnell

Um es einfach auszudrücken: Java ist im Gegensatz zu C++ "managed Code". Das bedeutet, dass du mit Java produktiver bist und schneller zu Ergebnissen kommst, da Schwachstellen und Fehler im Code häufig von der Laufzeitumgebung aufgedeckt oder abgefangen werden. Dafür fallen aber Java-Programme z.B. mit langen Ladezeiten auf, prominente Beispiele hierfür sind JDownloader und Minecraft. Ein wirklich flottes Java-Programm hab ich bisher noch nicht gesehen. :D

Ich persönlich bevorzuge systemnahe Sprachen wie C++, aber wenn ich auf die Schnelle einen Prototypen eines Programms benötige, verwende ich z.B. Visual Basic - Java wäre hier ebenso nützlich.

C ist anders als Java und C++ nicht Objektorientiert, sondern eine Prozedurale Programmiersprache. Deine erste Entscheidung sollte also sein, ob du Objektorientiert programmieren willst oder lieber nicht. Ich persönliche finde es schöner Objektorientiert zu arbeiten, aber das solltest du für dich selbst herausfinden.

Von der Syntax her sind sich Java und C++ eigentlich sehr ähnlich, die Kontrollstrukturen (if, while, for, etc...) werden nahezu identisch definiert.

Ein weiterer Unterschied besteht darin wie Java und C++ Code audgeführt werden. C++ Code wird meistens über den Compiler gcc compiliert und gelinkt, dabei entsteht direkt auf der Maschiene ausführbarer Code. Bei Java wird über das vom Java Development Kit (JDK) mitgebrachte javac Programm compiliert und es entsteht Bytecode, der dann auf der Java Virtual Machine (JVM) ausgeführt werden kann.

Schwieriger ist für einen Anfänger, der noch nichts mit Programmieren zu tun hatte mit Sicherheit C++, was aber eher daran liegt, dass der Compiler (gcc) nicht immer hilfreiche Fehlermeldungen ausspuckt, wenn mal was nicht richtig ist, als an der Sprache an sich. Generell finde ich, dass es einfach ist mit Java das Programmieren anzufangen. Du musst dir nur das JDK installieren, als IDE (Entwicklungsumgebung) ist Eclipse geeignet, dann hat man schon alles was man so braucht.

Obwohl bei C++, anders als bei Java nicht die JVM zwischen Programm und Prozessor steht sind Performanceunterschiede gerade für kleine Projekte nicht bemerkbar, höchstens messbar

Außerdem findest du für Java viele Beispiele, Hilfestellungen und Lösungen, die einfach durch kopieren und Einfügen funktionieren. Als gute Einstiegslektüre kann ich für Java folgendes Empfehlen: Head First Java (gibt auch eine deutsche Ausgabe, sind beide leider noch auf Stand von Java 5, aber die Grundlagen sind nahezu identisch), wenn es etwas technischer aber dafür auch vollständig sein soll ist "Java ist auch eine Insel" ein empfehlenswertes Buch (wird unter Java Programmierern als das "alte Testament" bezeichnet), davon gibts dann auch noch einen zweiten Teil.

Als Einstiegslektüre zu C++ gibt es das Buch "Der C++ Programmierer".

Als Abschluss noch ein anderer Anreiz. Lern doch eine Skriptsprache wie Python oder Ruby. Diese beiden Sprachen sind zwar von der Syntax her komplett verschieden von C++ und Java, aber dafür lassen sich kleinere Tools wie z.B. Webseiten parsen oder durchsuchen wesentlich leichter umsetzen. Außerdem kann man in diesen Sprachen sowohl prozedural als auch objektorientiert programmieren. Außerdem müssen Skriptsprachen nicht compiliert werden, sie werden von dem der Sprache entsprechenden Interpreter interpretiert und müssen nicht jedes mal Compiliert werden. Eine gute IDE für Python ist PyCharm, oder Eclipse mit dem PyDev Plugin. Gute Tutorials für beide Sprachen gibt es als Interaktive Übungen auf www.codeacademy.com.

Ich hoffe ich habe dir etwas geholfen und dich nicht nur noch mehr damit verwirrt. Es würde mich auch interessieren für was du dich jetzt letztendlich entschieden hast.

Also Java und C muss man differenzieren. Fangen wir an mit C. C ist der Grundaufbau von Windows unter Anderem. C Dateien werden später eben als .exe Datei ausgeführt werden :D C ++ ist wie man sich vom Name her schon denken kann die Erweiterte Version von C bzw die neuere. C++ hat im Vergleich zu C einfach mehr Klassen und Möglichkeiten ist somit aber auch UNENDLICH und man kann C++ nie zu Ende lernen. C ist so ähnlich aber die Möglichkeiten sind eben auch unbegrenzt allerdings kannst du keine grafischen Oberflächen erstellen da es nicht Objektorientiert ist. Mit C++ kann man wirklich alles Coden was wenn möglich nicht allzu grafisch aufwendig ist, da das bei C++ wiederum etwas umständlicher ist.

So nun zu Java. Java läuft auf der Engine Java und muss somit erstmal installiert werden und verbraucht auch zusätzliche Ressourcen. Nunja es ist grundsätzlich ähnlich wie C allerdings hat es viele Unterschiede in der Syntax. Die selben Dinge werden anderst genannt was zu ersteinmal verwirrend ist wenn man beides lernt. Mit Java sind einfache Grafische Oberflächen recht einfach zu coden allerdings werden komplexere Programme schnell sehr sehr aufwendig und man hat auch nicht zugriff auf so viele Klassen wie bei C bzw C++ auch wenn die Auswahl schon echt riesig ist.

Chemirox 
Fragesteller
 24.08.2013, 21:50

Wenn ich mich für eine Sprache entscheide, was würdest du mir empfehlen? Ich würde natürlich anfangs nicht all zu komplexe Dinge Coden aber wenn ich es wirklich irgentwann einmal einigermaßen kann würde ich mach dann ja auch an größerem versuchen. Mir wurde gesagt das C++ das schwierigste ist, du sagtest dass Java bei komplexeren Dingen kompliziert wird. Was ist denn nach deiner meinung das schwierigere, wobei du sagstest das C das komplexere von den beiden ist. (C++) Und wenn ich C nehmen würde dann ++ oder bei C bleiben. Denn wenn ich mit einem Programm anfange dann will ich auch bei dem bleiben.

0
ceevee  24.08.2013, 22:00

C Dateien werden später eben als .exe Datei ausgeführt werden

das trifft auf C++ und Java aber auch zu.

C++ hat im Vergleich zu C einfach mehr Klassen und Möglichkeiten ist somit aber auch UNENDLICH

C hat überhaupt gar keine Klassen, da geht's schon los. Die Möglichkeiten sind bei allen drei Sprachen gleich, nur der Weg dahin ist manchmal umständlicher.

allerdings kannst du keine grafischen Oberflächen erstellen da es nicht Objektorientiert ist.

Grafische Oberflächen haben nix mit Objektorientierung zu tun und GUI-Bibliotheken gibt's auch für C und C++

Mit C++ kann man wirklich alles Coden was wenn möglich nicht allzu grafisch aufwendig ist, da das bei C++ wiederum etwas umständlicher ist.

Nicht wirklich, die Integration von Qt in C++ etwa ist eigentlich total einfach, und dann hat man auch grafische Oberflächen.

allerdings werden komplexere Programme schnell sehr sehr aufwendig

Das ist Quatsch. Schlecht Programmieren kann man in anderen Sprachen genauso

man hat auch nicht zugriff auf so viele Klassen

Man hat Zugriff auf genau so viele Klassen wie man sich selbst programmiert. Für einen Anfänger ist der Unterschied zwischen STL und den Java Libraries völlig irrelevant.

5

Bei der Auswahl... nimm Java, C braucht man nur für systemnahe Sachen oder Mikrocontroller und C++ ist ähnlich zu Java, aber etwas anspruchsvoller und es hat so ein paar Fallstricke, die man beachten muss.

Chemirox 
Fragesteller
 24.08.2013, 22:19

Ich habe keine riesigen Sachen vor zu Programmieren, ich will keine hochauflösenden Spiele PRogrammieren, geschweige denn Minecraft etc. Ich möchte mich auf Software spezialisieren. Apps, Browser, Schreibprogramme oder ähnliches, das hört sich jetzt nicht professionell an, dass ist es aber auch nicht, ich bin noch anfänger, ich habe mich zwar mit beiden (Java und C++) schon auseinander gesetzt aber ich will mich auf eins konzentrieren mit welchem kann ich denn so welche Software Coden, ich will keine Spiele etc. Programmieren... o_O

0
procoder42  25.08.2013, 11:15
@Chemirox

:o setz dir mal kleinere ziele, nen browser ist keine leichte Sache , ne app kann auch sehr kompliziert sein und nen schreibprogramm das gut funktioniert genauso

0
ceevee  25.08.2013, 12:26
@Chemirox

Wie schon gesagt - nimm Java. Es ist zwar bei größeren Programmen etwas träge, aber die Lernkurve ist steiler, du kommst also als Anfänger schneller zum Ergebnis. Spiele sind übrigens auch Programme, da gibt's aus Entwicklersicht keinen Unterschied.

0
Chemirox 
Fragesteller
 25.08.2013, 20:22
@ceevee

Okey, denke ich entscheide mich für den Anfang für Java. Thx. ^^

0
martin7812  25.08.2013, 22:56
@Chemirox

Wenn du auf dem PC bleiben willst, ist das die richtige Entscheidung. Auch für Android-Apps ist die Entscheidung richtig (diese können nämlich NUR in Java programmiert werden.)

Wenn du aber in Richtung Microcontroller gehen willst, so wäre C sinnvoller; Für iOS (iPhone, iPad) wäre ObjectiveC notwendig.

0