C ++ und Java sind einige der sehr beliebten Programmiersprachen. Sie können sehr detailliert verglichen werden, indem Geschwindigkeit, Typisierung, Compiler usw. verglichen werden, aber für einen durchschnittlichen Laien ist es zu viel, und es wird viel einfacher sein, ihre Unterschiede auf einer allgemeinen, grundlegenden Ebene zu berücksichtigen, so dass selbst eine Person, die weit vom Programmieren entfernt ist und Schlussfolgerungen für sich ziehen kann Ich schaue nur auf diesen Bereich. Bereits jetzt können wir feststellen, welche Sprache zu welchem Paradigma passt. Und ja, die Situation einer solchen Wahl ist durchaus real - zum Beispiel für Studenten zu Bildungszwecken.
Um dies zu tun, werde ich versuchen, kurz die Hauptkonstruktionen von Programmiersprachen zu betrachten, nämlich:
Ausdrücke: mathematisch, logisch, Zeichenfolge;
Operatoren: zusammengesetzte Anweisung, Zuweisungsanweisung, bedingte IF-Anweisung, FOR- und WHILE-Schleifen, GOTO-Anweisung und andere;
Unterprogramme: Prozeduren und Funktionen;
Datentypen: Grundtypen, Strukturen, Klassen, Schnittstellen und Vorlagen.
(Dieser Artikel ist keine Übersetzung, sondern meine persönliche Analyse der gesammelten Informationen)
Ausdrücke
Java
Mathematische Ausdrücke
Ein mathematischer Ausdruck ist ein Ausdruck, der eine Zahl ergibt. Sie enthalten Variablen, Funktionen und Konstanten.
Mit arithmetischen Operatoren in Java können Sie mathematische Standardoperationen wie Addition, Subtraktion, Multiplikation usw. ausführen. Auch in der Sprache gibt es Dekrementierungs- und Inkrementierungsoperatoren (erhöhen oder verringern Sie den Wert um eins).
Logische Ausdrücke
Ein logischer Ausdruck ist eine Beschreibung eines Ausdrucks, der zu wahr (wahr) oder falsch (falsch) führt. Logische Operatoren arbeiten nur mit Operanden vom Typ Boolean.
Alle logischen Operatoren mit zwei Operanden kombinieren zwei logische Werte, um den resultierenden logischen Wert zu bilden.
Java unterstützt mehr als zehn Anweisungen: AND (logisch und abgekürzt), OR (logisch und abgekürzt), XOR, NOT und so weiter.
String-Ausdrücke
Zeichenfolgenausdruck - Zeichenfolgenmanipulation. Es sieht aus wie ein mathematischer Ausdruck, aber das Ergebnis ist eine neue Zeile.
Mit der Java-Sprache können Sie Zeichenfolgen hinzufügen, subtrahieren, teilen und verketten. Eine Besonderheit von Java ist das Vorhandensein der String-Klasse, die speziell für die Arbeit mit Strings bereitgestellt wird.
C ++ / Visual Basic
Mathematische Ausdrücke
C ++ und Visual Basic enthalten auch arithmetische Operatoren, Dekrementierungs- und Inkrementierungsoperatoren, und die Syntax des mathematischen Ausdrucks unterstützt auch Klammern und unäres Minus.
Wie in der Java-Sprache stehen komplexere Operationen als integrierte Funktionen zur Verfügung, z. B. die Quadratwurzel sqrt (x) und der Exponent exp (x).
Logische Ausdrücke
Visual Basic verwendet sechs Operatoren: Neben AND, OR, NOT, XOR werden auch Äquivalenz- und Implikationsoperatoren verwendet.
In C ++ verwenden sie drei logische Operatoren: AND, NOT und OR. In allen betrachteten Sprachen können einige Operatoren für mehrere Operanden gleichzeitig verwendet werden.
String-Ausdrücke
Im Gegensatz zu Java gibt es in C ++ keine integrierte Unterstützung für ein solches Objekt wie eine Zeichenfolge. Arbeiten Sie bei Bedarf mit Zeichenfolgen (Addition, Subtraktion usw.), und schließen Sie die Zeichenfolge der Header-Datei ein.
In Visual Basic wird aufgrund der Bedeutung der Arbeit mit Zeichenfolgen der Datentyp "Zeichenfolge" unterstützt, der eine Folge von Zeichen darstellt. Eine Variable dieses Typs kann einen beliebigen Ausdruck annehmen, der zu einer Zeichenfolge führt.
Betreiber
Java
Alle fraglichen Sprachen sind insofern ähnlich, als sie Schleifenoperatoren (FOR, WHILE), den IF-Bedingungsoperator, unterstützen. Der wesentliche Unterschied besteht jedoch darin, dass es in Java keinen goto-Übergangsoperator als solchen gibt: Die Schlüsselwörter const und goto werden gespeichert. Sie werden jedoch nicht verwendet.
C ++ / Visual Basic
C ++ und Visual Basic, die viel früher als Java entwickelt wurden, haben einen goto-Übergangsoperator, die Verwendung dieses Operators ist jedoch im Allgemeinen unerwünscht.
Prozeduren und Funktionen
Java
Ein Unterprogramm ist eine benannte, logisch vollständige Gruppe von Sprachoperatoren, die von verschiedenen Stellen im Programm aus beliebig oft ausgeführt werden können. Funktionen geben einen Wert an das Hauptprogramm zurück, Prozeduren kehren nicht zurück.
In Java gibt es keine Prozeduren oder Funktionen. Beide Entitäten werden als Methoden bezeichnet. Sie können jedoch auch Werte zurückgeben oder nicht zurückgeben. Sie können mit oder ohne Parameter aufgerufen werden.
C ++ / Visual Basic
In C ++ werden Routinen als Funktionen implementiert. Ein C ++ - Programm besteht aus einer oder mehreren Funktionen, die vor der Verwendung beschrieben werden müssen.
Visual Basic-Programme bestehen außerdem aus mehreren Routinen, die in Prozeduren und Funktionen unterteilt sind.
Datentypen
Java
In Java werden für alle grundlegenden numerischen Typen bestimmte Konventionen unabhängig von der jeweiligen Implementierung der Umgebung verwendet, wodurch reproduzierbare Ergebnisse auf einer Vielzahl von Plattformen garantiert werden. Außerdem verfügt Java nicht über Struktur- und Vereinigungskonstrukte. All dies ist im Konzept von Klassen zusammengefasst.
Außerdem unterstützt Java keine Zeiger (sogenannte "Links" spielen in Java ihre Rolle), Vorlagen, Überladungen von Operatoren, Strukturen usw.
C ++ / Visual Basic
C ++ erbte von C alle gängigen Datentypen der letzteren. Diese Typen werden verwendet, um ganze Zahlen und reelle Zahlen verschiedener Größen und Genauigkeiten darzustellen. Leider hängt die tatsächliche Reichweite und Genauigkeit dieser Typen von der jeweiligen Implementierung des Übersetzers ab.
Aufgrund der Abhängigkeit vom Übersetzer auf verschiedenen Plattformen kann sich das Verhalten von C ++ - und Visual Basic-Code ändern. C ++ versucht, dem Programmierer die Möglichkeit zu geben, Daten zu kapseln, indem Strukturen (struct) und Polymorphismus mit Hilfe von Gewerkschaften (union) deklariert werden. Diese beiden Konstruktionen decken kritische und katastrophale maschinenspezifische Einschränkungen in Bezug auf Größe und Ausrichtung ab.
C ++ und Visual Basic unterstützen Zeiger und Zeigerarithmetik, Operatorüberladung usw.
Zusammenfassung
Die Java-Sprache wurde unter dem Einfluss der zuvor existierenden Sprachen entwickelt, einschließlich Visual Basic und insbesondere C ++. Dies bedeutet, dass eine bestimmte Anzahl von Konstruktionen dieser Sprachen zusammenfällt. In Java wurden jedoch viele C ++ - Fehler behoben, die sich auf die Leistung und die Ergebnisse des Programms auswirkten Außerdem wurden Maßnahmen ergriffen, um die Sprache im Vergleich zu C ++ zu "vereinfachen", was einen signifikanten Unterschied zwischen Java und C ++ impliziert. Trotz ähnlicher Konstrukte unterscheidet sich Java stark von C ++ und Visual Basic.
PS Nur für den Fall, ich möchte erwähnen, dass ich nicht beabsichtige, Ratschläge zur Auswahl einer Sprache für das Studium oder der besten Sprache unter den Betroffenen zu geben, sondern nur Denkanstöße zu geben. Und übrigens, wie haben Sie Ihre erste Programmiersprache gewählt, was war Ihnen an erster Stelle wichtig? Oder waren Sie "verpflichtet", an einer Universität über etwas Bestimmtes zu schreiben?