Was ist der Unterschied zwischen JavaScript und Java?

77

Was ist der Unterschied zwischen JavaScript und Java?

Kerl
quelle

Antworten:

573

Java und Javascript sind ähnlich wie Car und Carpet.

Greg Hewgill
quelle
11
Leider kann ich keine Originalität beanspruchen. Ich kann mich jedoch nicht erinnern, wo ich es zum ersten Mal gehört habe.
Greg Hewgill
13
Ich denke nicht, dass es ein Fehler ist. er hat seine Punkte verdient. Dies ist eine kurze Antwort und alles, was er wissen muss.
Johannes Schaub - litb
3
@ Ian Quigley: Ah, das muss dort gewesen sein, wo ich es gesehen habe! Vielen Dank.
Greg Hewgill
11
Ich bevorzuge die Version über Schinken und Hamster.
Kuba Suder
3
Das ist eine schlechte Antwort. Javascript und Java sind beide Sprachen zum Schreiben von Code, werden jedoch in unterschiedlichen Kontexten verwendet. Auto und Teppich sind überhaupt nichts wie einander. Javascript und Java sind für Anfänger leicht zu verwechseln
Pete
408

Eines ist im Wesentlichen ein Spielzeug, das zum Schreiben kleiner Codeteile entwickelt wurde und traditionell von unerfahrenen Programmierern verwendet und missbraucht wird.

Die andere ist eine Skriptsprache für Webbrowser.

Shog9
quelle
2
Wenn wir kategorische Stimmen abgeben könnten, würde ich +1 lustig stimmen, aber sonst meh.
Don Wakefield
19
Ich wollte Sie beschimpfen, weil Sie Javascript dissen, als es in den letzten Jahren so weit gekommen war. Dann befreie ich den zweiten Absatz und L'dOL. Aber
Moment mal
2
Für das Dissing von Javascript herabgestimmt, dann bemerkt, dass Sie über JAVA gesprochen haben, und hochgestimmt (und viel gelobt).
Pim Jager
12
Es ist traurig, dass ich nur einmal upvoten kann. Das geht irgendwo auf mein Facebook-Profil ...
Samantha Branham
3
@ Roman natürlich ist die richtige Java-Methode, mindestens 20 verschiedene Klassen mit komplizierter Vererbung und anderen coolen OOP-Funktionen zu schreiben, um einen FizzBuzz zu vervollständigen :)
Earlz
188

Hier sind einige Unterschiede zwischen den beiden Sprachen:

  • Java ist eine statisch typisierte Sprache. JavaScript ist dynamisch.
  • Java ist klassenbasiert; JavaScript basiert auf Prototypen.
  • Java-Konstruktoren sind spezielle Funktionen, die nur bei der Objekterstellung aufgerufen werden können. JavaScript "Konstruktoren" sind nur Standardfunktionen.
  • Java erfordert, dass alle Nicht-Block-Anweisungen mit einem Semikolon enden. JavaScript fügt am Ende bestimmter Zeilen Semikolons ein.
  • Java verwendet blockbasiertes Scoping. JavaScript verwendet funktionsbasiertes Scoping.
  • Java hat einen impliziten thisBereich für nicht statische Methoden und einen impliziten Klassenbereich. JavaScript hat einen impliziten globalen Geltungsbereich.

Hier sind einige Funktionen, die meiner Meinung nach besondere Stärken von JavaScript sind:

  • JavaScript unterstützt Schließungen. Java kann mithilfe anonymer Klassen eine Art "Abschluss" simulieren. (Echte Schließungen werden möglicherweise in einer zukünftigen Version von Java unterstützt.)
  • Alle JavaScript-Funktionen sind variabel. Java-Funktionen sind nur variabel, wenn sie explizit markiert sind.
  • JavaScript-Prototypen können zur Laufzeit neu definiert werden und wirken sich sofort auf alle verweisenden Objekte aus. Java-Klassen können nicht so neu definiert werden, dass sie vorhandene Objektinstanzen betreffen.
  • Mit JavaScript können Methoden in einem Objekt unabhängig von seinem Prototyp neu definiert werden (denken Sie an Eigenklassen in Ruby, aber an Steroide). Methoden in einem Java-Objekt sind an seine Klasse gebunden und können zur Laufzeit nicht neu definiert werden.
Chris Jester-Young
quelle
8
2 Jahre zu spät, aber vielen Dank für diese nachdenkliche Erklärung. Es ist viel nützlicher und informativer als die ausgewählte Antwort und verdient weit mehr Stimmen IMO
Eric Hu
2
Ich stimme beiden in solchen Fällen zu. Wir brauchen die richtige Antwort, aber heilige Shmoly, Geeks wie wir, wir brauchen wirklich mehr von diesem Humor
Michael Durrant
Sie können hier auch stark typisiert und lose typisiert anstatt statisch typisiert und dynamisch typisiert.
San
51

Schauen Sie sich den Wikipedia-Link an

JavaScript hat trotz des Namens im Wesentlichen nichts mit der Programmiersprache Java zu tun, obwohl beide die gemeinsame C-Syntax haben und JavaScript viele Java-Namen und Namenskonventionen kopiert. Die Sprache hieß ursprünglich "LiveScript", wurde jedoch im Rahmen eines Co-Marketing-Vertrags zwischen Netscape und Sun umbenannt, als Gegenleistung dafür, dass Netscape die Java-Laufzeit von Sun mit ihrem damals dominierenden Browser bündelte. Die wichtigsten Entwurfsprinzipien in JavaScript werden von den Programmiersprachen Self und Scheme übernommen.

Toolkit
quelle
38

Alles.

JavaScript wurde von Netscape so benannt, um die Unvorsichtigen zu verwirren, dass es etwas mit Java zu tun hat, dem Schlagwort des Tages, und es gelang.

Die beiden Sprachen sind völlig unterschiedlich.

ddaa
quelle
8
Javascript hieß ursprünglich Livescript, und die Welt wäre heute wahrscheinlich ein besserer Ort, wenn sie es nicht umbenannt hätte!
Greg Hewgill
2
Ich bezweifle, dass dies Verwirrung stiften sollte - was bringt das Unternehmen davon? Ich vermute, die Absicht war es, auf dem Erfolg von Java aufzubauen, obwohl der Effekt genau das war, was Sie angegeben haben.
Paxdiablo
"reite den Erfolg von Java", indem du etwas nennst, das nichts mit einem ähnlichen Namen zu tun hat? Das klingt für mich sehr nach "Verwirrung für Marketingzwecke".
Ddaa
2
Sun versuchte diesen Benennungstrick erneut mit dem "Sun Java Desktop", der im Wesentlichen eine Markenversion von Gnome war und nichts mit Java zu tun hatte.
Dan Dyer
1
Ja, und es hat funktioniert. @ Greg Hewgill, die Welt könnte ein besserer Ort sein, aber Javascript wäre wahrscheinlich nicht dort, wo es heute ist.
Dan Rosenstark
24

Geben Sie hier die Bildbeschreibung ein
Java ist zu JavaScript wie Schinken zu Hamster

alpin
quelle
1
Woher kommt wohl Schinken? ;)
Bill the Lizard
Es kommt von einem großen Hamster; Es ist so groß, dass man es mit einem Schwein verwechseln könnte. ;)
Kiamlaluno
23

JavaScript ist eine objektorientierte Skriptsprache , mit der Sie dynamische HTML-Seiten erstellen und Eingabedaten verarbeiten und Daten verwalten können, normalerweise im Browser.

Java ist eine Programmiersprache, ein Kernsatz von Bibliotheken und eine Plattform für virtuelle Maschinen, mit der Sie kompilierte Programme erstellen können, die auf nahezu jeder Plattform ausgeführt werden können, ohne den Quellcode in seiner Rohform zu verteilen oder neu zu kompilieren.

Während die beiden ähnliche Namen haben, handelt es sich tatsächlich um zwei völlig unterschiedliche Programmiersprachen / Modelle / Plattformen, mit denen völlig unterschiedliche Problemgruppen gelöst werden.

Auch dies ist direkt aus dem Wikipedia Javascript Artikel :

Ein häufiges Missverständnis ist, dass JavaScript Java ähnlich oder eng verwandt ist. das ist nicht so. Beide haben eine C-ähnliche Syntax, sind objektorientiert, haben normalerweise eine Sandbox und werden häufig in clientseitigen Webanwendungen verwendet, aber die Ähnlichkeiten enden dort. Java hat statische Typisierung; Die Typisierung von JavaScript ist dynamisch (dh eine Variable kann ein Objekt eines beliebigen Typs enthalten und kann nicht eingeschränkt werden). Java wird aus dem kompilierten Bytecode geladen. JavaScript wird als lesbarer Code geladen. C ist ihre letzte gemeinsame Ahnensprache.

Bill die Eidechse
quelle
2
Javascript ist nicht nur für HTML-Seiten gedacht, Java6 enthält es jetzt, BIRT verwendet es für Berichtsskripte - ich bin sicher, dass es andere Nicht-HTML-Verwendungen gibt, die über diese beiden hinausgehen.
Paxdiablo
Du hast recht. Mit der Entwicklung von Rhino und einigen anderen von Ihnen erwähnten Entwicklungen ist Javascript ziemlich weit aus der Browser-Sandbox herausgekommen.
Bill the Lizard
2
Scripting ist einfach eine bestimmte Art der Programmierung ... stattdessen sollten Sie vielleicht sagen, dass Java eine kompilierte Programmiersprache und Javascript eine Scripting- oder interpretierte Programmiersprache ist.
Blacktiger
17

Nach meiner Erfahrung zusätzlich zu den völlig anderen Sprachen:

  • Java sieht zuerst gut aus, später wird es nervig.
  • JavaScript sieht zuerst schrecklich und hoffnungslos aus, dann fängt man allmählich an, es wirklich zu mögen.

(Aber das hat vielleicht mehr mit meiner Vorliebe für funktionale Programmierung gegenüber OO-Programmierung zu tun ...;)

Stein G. Strindhaug
quelle
14

Alles. Sie sind nicht verwandte Sprachen.

Kirk Strauser
quelle
Schläge in den Arm . Laut Wikipedia muss ich dies tun, nachdem Sie mich verhext haben und bevor ich wieder sprechen kann. en.wikipedia.org/wiki/Jinx
ddaa
2
Du hast das falsch verstanden - ich darf dich jetzt schlagen. Und hol mir meine Cola.
Kirk Strauser
8

Sie sind unabhängige Sprachen mit nicht verwandten Abstammungslinien. Brendan Eich hat Javascript ursprünglich bei Netscape erstellt. Es wurde ursprünglich Mokka genannt. Die Wahl von Javascript als Name war, wenn Sie so wollen, eine Anspielung auf die damals aufsteigende Java-Programmiersprache, die bei Sun von Patrick Naughton, James Gosling et al. al.

Don Wakefield
quelle
5

Wie jeder sagt, sind sie ziemlich völlig anders.

Wenn Sie jedoch eine Skriptsprache für Ihre Java- Anwendung benötigen , ist Javascript eine wirklich gute Wahl. Es gibt Möglichkeiten, Javascript in der JVM zum Laufen zu bringen, und Sie können sofort nahtlos auf Java-Klassen zugreifen und diese bearbeiten.

Darcy Casselman
quelle
2

Sie haben nichts miteinander zu tun.

Java ist statisch typisiert, kompiliert und läuft auf einer eigenen VM.

Javascript wird dynamisch eingegeben, interpretiert und in einem Browser ausgeführt. Es hat auch erstklassige Funktionen und anonyme Funktionen, die Java nicht hat. Es hat direkten Zugriff auf Webseitenelemente, was es für die clientseitige Verarbeitung nützlich macht.

Sie sind auch in der Syntax etwas ähnlich, aber das war es auch schon.

Claudiu
quelle
2

Verwechseln Sie nicht den Namen.
Java wurde bei Sun Microsystems (jetzt Oracle) erstellt.
JavaScript wurde jedoch in den Anfängen des Web bei Netscape (jetzt Mozilla) erstellt. Technisch gesehen ist „Java-Script“ eine von Sun Microsystems lizenzierte Marke, die zur Beschreibung der Implementierung der Sprache durch Netscape verwendet wird. Netscape reichte die Sprache zur Standardisierung bei ECMA (European Computer Manufacturer's Association) ein. Aufgrund von Markenproblemen wurde die standardisierte Version der Sprache mit dem unangenehmen Namen „ECMAScript“ versehen. Aus den gleichen Markengründen wird die Microsoft-Version der Sprache offiziell als "JScript" bezeichnet. In der Praxis nennt fast jeder die Sprache JavaScript. Der wirkliche Name ist "ECMAScript".

Beide sind völlig verschiedene Sprachen !!!

user577898
quelle
1

Praktisch jeder PC auf der Welt verkauft mit mindestens einem darauf installierten JavaScript-Interpreter.

Auf den meisten (aber nicht "praktisch allen") PCs ist eine Java-VM installiert.

Will Peavy
quelle