Was ist der Unterschied zwischen Java und JavaScript?

Für diejenigen, die gerade erst mit der Programmierung beginnen, sei es serverseitig oder clientseitig, ist es unvermeidlich, dass Sie auf die Programmiersprachen Java und JavaScript stoßen.

Wenn Sie Erfahrung in der Programmierung des einen oder anderen haben, wissen Sie, dass sie nicht gleich sind, und Sie kennen wahrscheinlich den Unterschied zwischen den beiden. Wenn Sie jedoch gerade erst anfangen, kann dies aus einigen Gründen verwirrend sein. Zunächst werden die Sprachen benannt.

Obwohl sie den Namen "Java" in ihrem Namen teilen, haben sie sehr wenige Attribute und Eigenschaften. In diesem Artikel werden wir einige der wichtigsten Unterschiede in den Sprachen betrachten, indem wir einige der übergeordneten Attribute jeder Sprache untersuchen.

Letztendlich möchten wir denjenigen von Ihnen helfen, die brandneue Programmierer sind und nicht sicher sind, welche Sprache Sie lernen möchten (oder zuerst lernen!). In diesem Artikel werden wir uns einige der wichtigsten Unterschiede ansehen, die in den Sprachen bestehen. In jedem Fall wird versucht, Sie mit den erforderlichen Informationen zu bewaffnen, die Sie für den nächsten Schritt in Ihrer Karriere benötigen.

Java und JavaScript

Wenn Sie bei der Unterscheidung zwischen diesen beiden Sprachen beginnen, ist es vielleicht am besten, den Vergleich so zu zeichnen:

Java ist JavaScript, wie Schinken Hamster ist.

Leider kann ich diese Analogie nicht als meine eigene behaupten. Es ist stattdessen von Jeremy Keith geprägt, aber es ist ein ausgezeichneter Punkt: Über das einzige, was die Sprachen gemeinsam haben, ist, dass sie den Namen "Java" in ihrem Namen teilen. 

Eine Ähnlichkeit besteht darin, dass die Sprachen "C-Stil" -Sprachen sind, da ihre Syntax der von C entspricht. Das heißt, beide haben Funktionen, Klammern, Klammern und Semikolons.

Abgesehen davon gibt es sehr wenig Ähnlichkeit. Im weiteren Verlauf dieses Artikels werden wir uns jede Sprache auf sehr hohem Niveau ansehen, um Ihnen eine Vorstellung davon zu geben, was jede Sprache bietet und welche Funktionen sie bieten. 

Sobald Sie fertig sind, sollten Sie in der Lage sein, einen Unterschied in den beiden Sprachen zu sehen, obwohl sie ähnlich benannt sind und haben etwas eine ähnliche Syntax, das ist das einzige, was sie gemeinsam haben.

Also lasst uns anfangen.

Was ist java?

Wir haben Java in anderen Tutorials auf dieser Site behandelt und werden dies auch tun, da die Sprache mit der Zeit immer weiter wächst. 

Java wurde unter der Idee "Einmal schreiben, irgendwo ausführen" konzipiert, was bedeutet, dass Sie ein Programm auf einem Computer schreiben und dann auf jedem Gerät bereitstellen können, auf dem sich die Java-Laufzeitumgebung befindet.

Aber warten Sie: Was ist die Java-Laufzeit?? 

Zunächst ist es wichtig zu verstehen, dass Java eine kompilierte Sprache ist, die jedoch nicht zu binärem, ausführbarem Code kompiliert ist. Stattdessen wird es zu Bytecode kompiliert.

Java-Bytecode ist der Befehlssatz der virtuellen Java-Maschine. Jeder Bytecode besteht aus einem oder in einigen Fällen zwei Bytes, die den Befehl (Opcode) darstellen, zusammen mit null oder mehr Bytes zum Übergeben von Parametern.

Klingt weniger als aufregend, nicht wahr? Das ist okay! Als Entwickler sind wir nicht für das Schreiben des Bytecodes verantwortlich. Stattdessen kompiliert der Java-Compiler unseren Code in Bytecode.

Dieser Bytecode wird oberhalb der Laufzeit ausgeführt, die im Kontext eines anderen Betriebssystems ausgeführt wird. Dieses Betriebssystem kann auf einem Mobiltelefon, auf einem anderen Computer oder unter Windows, OS X, Linux oder einem anderen System, auf dem es kompatibel ist, ausgeführt werden. Sie können alles darüber auf dieser Seite lesen.

Es hört sich ordentlich an, richtig? Die Sache ist, es ist nicht ohne Herausforderungen. Es scheint weitaus einfacher als es ist, und dies ist etwas, das fortgeschrittenere Java-Entwickler angehen. Es liegt außerhalb des Rahmens dieses Artikels. Stattdessen konzentrieren wir uns auf Attribute der Sprache, damit wir sie mit JavaScript vergleichen und vergleichen können.

Schauen wir uns zunächst einige der Fakultäten an, die wir in Java bearbeiten müssen. Es ist wichtig zu wissen, dass wir auf einer viel höheren Ebene arbeiten. Zum Beispiel können wir mit den folgenden Konstruktoren arbeiten:

  • Klassen sind die Grundlage jeder objektorientierten Sprache. Sie erlauben uns zu definieren, welche Eigenschaften und Verhaltensweisen ein Objekt aufweisen wird, sobald es instanziiert wurde.
  • Funktionen sind die Teile von Klassen, für die Objekte zulässig sind etwas tun. Eine Klasse, die a darstellt Datei kann uns erlauben, den Inhalt dessen zu lesen, was darin enthalten ist.
  • Eigenschaften oder Attribute beschreiben eine Klasse. EIN Datei, B. über Berechtigungen wie das Lesen oder Schreiben in ein Dateisystem verfügen. Es kann auch einen Pfad enthalten, der darstellt, wo es sich im Dateisystem befindet.
  • Vererbung ist, wenn eine Klasse bestimmte Eigenschaften von einer anderen Klasse erben kann. Dies bedeutet, dass es alle Funktionen und Eigenschaften von einer übergeordneten Klasse erhält, und Es kann seine einzigartige Funktionalität hinzufügen.

Wenn Sie noch nie zuvor Code geschrieben haben, klingt dies möglicherweise nach Jargon. Verständlicherweise so! Wir verfügen über einige Ressourcen, die Ihnen das Wissen vermitteln, was Sie wissen müssen:

  • Einführung in die Computerprogrammierung mit Java: 101
  • Einführung in die Computerprogrammierung mit Java: 201
  • Einführung in die Computerprogrammierung mit Java: 301

Bevor Sie sich jedoch zu weit entschließen, zu entscheiden, was Sie lernen möchten, werfen wir einen Blick auf JavaScript.

Was ist JavaScript??

In einem vorherigen Artikel, den Sie hier lesen können, habe ich JavaScript ausführlicher behandelt. In diesem Artikel werde ich jedoch auf die wichtigsten Punkte eingehen. Sehen Sie sich für einen tieferen Tauchgang an, was oben beschrieben wurde.

Im Kern ist JavaScript eine dynamische Sprache, die nicht typisiert ist und interpretiert wird. Das heisst:

  • Wir als Entwickler können bestimmte Aspekte der Sprache problemlos erweitern, indem wir unseren Code bereits vorhandenen Objekten wie dem Objekt hinzufügen String.
  • Die nicht typisierte Natur der Sprache bedeutet, dass wir Strings, Booleans und Zahlen (im Vergleich zu ganzen Zahlen, Gleitkommazahlen und Dezimalzahlen) deklarieren können, ohne ihren Typ wie in Java (und anderen Sprachen) explizit anzugeben..
  • Die Sprache wird interpretiert, dh sie wird nicht in eine ausführbare Datei übersetzt. Stattdessen wird sie von einem Webbrowser oder einer anderen Software auf Ihrem Computer interpretiert, die Ihre Anweisungen in Maschinencode übersetzt.

Wenn Sie verwirrt sind, machen Sie sich keine Sorgen! Das haben wir alle schon durchgemacht:

  • Variablen definieren?
  • Funktionen implementieren?
  • Objekte erstellen?
  • Bedingungsanweisungen einrichten?
  • Und vieles mehr.

Das ist viel. Ich kenne. Aber das Schöne ist, dass wir haben reichlich Ressourcen, um Sie mit JavaScript vertraut zu machen. Und wenn Sie erst einmal die Nuancen der Sprache gelernt haben, wird es einfacher, innerhalb ihrer Grenzen zu arbeiten.

Denken Sie daran, dass alle "Ich bin nicht sicher, was ich tue" natürlich ist und Teil der Lernkurve ist. Wenn du hast noch nie Wenn Sie eine beliebige Programmierung in Bezug auf JavaScript gesehen haben, empfehle ich dringend, einige der folgenden Kurse durchzusehen:

  • JavaScript-Grundlagen
  • Wichtige Tools für JavaScript-Entwickler
  • Objektorientiertes JavaScript mit ES6
  • Was kommt zu JavaScript?

Wenn Sie sich mit der Sprache vertraut gemacht haben, müssen Sie auch die richtigen Werkzeuge zum Entwickeln Ihrer Anwendungen verwenden. Dies beinhaltet die Verwendung von Tools wie einem Debugger (zu dem die meisten modernen Browser gehören). Dies ist jedoch für diesen Artikel nicht in den Geltungsbereich.

Ein Hinweis zur Objektorientierung

Ein weiterer wichtiger Unterschied ist, dass JavaScript und Java beide als objektorientierte Sprachen betrachtet werden, jedoch aus unterschiedlichen Gründen.

Java ermöglicht es uns, Instanzen von Objekten aus Klassen zu erstellen, die wir erstellen. Umgekehrt ist alles in JavaScript ein Objekt. Das heißt, es gibt keine Klassen. Und weil alles ein Objekt ist, hat alles Methoden und Eigenschaften, die wir verwenden können. 

Wenn Sie in Java eine Instanz einer Klasse erstellen, haben Sie Zugriff auf die Methoden und Eigenschaften, die Sie über die Klassendefinition verfügbar machen. Wenn Sie über öffentliche Eigenschaften, öffentliche Funktionen usw. verfügen, können diese vom Entwickler verwendet werden.

Wenn Sie in JavaScript eine Variable, ein Objekt oder sogar eine Funktion erstellen, haben Sie die Möglichkeit, Funktionen aufzurufen, die nicht nur für dieses Objekt, sondern auch für Objekte vorhanden sind, von denen das angegebene Objekt seine Eigenschaften ableitet. Dies hat mit der prototypischen Vererbung von JavaScript zu tun, über die Sie in diesem Artikel mehr lesen können.

Welches soll ich nehmen?

Wie Sie anhand des Inhalts oben sehen können, unterscheiden sich die beiden Sprachen, obwohl beide in ihrer Syntax von C inspiriert sind, sehr unterschiedlich. Jeder dient auch einem anderen Zweck.

Obwohl Sie mit Technologien wie Node.js JavaScript auf dem Server schreiben können, handelt es sich nicht um dieselben Anwendungen, die mit Java erstellt wurden. Obwohl Sie serverseitige Anwendungen mit Java schreiben können, handelt es sich nicht um dieselben Anwendungen, die Sie normalerweise mit JavaScript schreiben.

Stattdessen ist es oft hilfreich, darüber nachzudenken, dass JavaScript eine Sprache ist, die sich am besten für die clientseitige Entwicklung eignet, für Anwendungen, die in einem Webbrowser ausgeführt werden, oder für Einzelseitenanwendungen. Es ist am besten, sich Java als Programmiersprache vorzustellen, die am besten zum Schreiben von serverseitigen oder Desktop-Anwendungen verwendet wird, die auf einer Vielzahl verschiedener Betriebssysteme und Geräte ausgeführt werden können.

Fazit

Anscheinend bietet jede dieser Sprachen ihre eigenen Vor- und Nachteile. Ehrlich gesagt denke ich, dass vieles, was uns dazu bewegt, eine Sprache gegenüber der anderen zu wählen, mit dem zusammenhängt, was wir im Hinblick auf die Erstellung von Lösungen für uns und andere tun wollen.

Wenn Sie im Web arbeiten möchten, ist dies JavaScript wahrscheinlich deine beste Wahl. Wenn Sie andererseits Desktop-Anwendungen schreiben möchten, ist Java keine schlechte Wahl.

Für diejenigen, die daran interessiert sind, ist es erwähnenswert, dass JavaScript zu einer der De-facto-Sprachen der Web-Arbeit geworden ist. Es ist nicht ohne Lernkurven, und es gibt viele Frameworks und Bibliotheken, um Sie zu beschäftigen. Wenn Sie nach zusätzlichen Ressourcen suchen, um zu studieren oder in Ihrer Arbeit zu verwenden, schauen Sie nach, was wir auf dem Envato-Marktplatz zur Verfügung haben.

Ich verbringe den Großteil meiner Zeit damit, mit WordPress zu arbeiten und darüber hinaus Lösungen zu entwickeln. Ich bin jedoch auch ein Fan von JavaScript und blogge gelegentlich darüber. Wenn Sie an anderen Kursen und Tutorials interessiert sind, die ich für Envato geschrieben habe, besuchen Sie bitte meine Profilseite. Darüber hinaus können Sie in meinem Blog weitere Artikel über WordPress und JavaScript-Entwicklung lesen. Folgen Sie mir auch auf Twitter bei @tommcfarlin.

Hinterlassen Sie alle Kommentare im Kommentar-Feed unten.

Lernen Sie JavaScript: Das komplette Handbuch

Wir haben ein umfassendes Handbuch zusammengestellt, mit dessen Hilfe Sie JavaScript erlernen können, egal ob Sie gerade erst als Webentwickler anfangen oder sich mit fortgeschrittenen Themen befassen möchten.