JavaScript war die erste Programmiersprache, die ich gelernt habe. Nun, ich habe tatsächlich mit HTML und CSS angefangen. Wie bei vielen anderen Webentwicklern war die Verwendung von JavaScript ein Kinderspiel. Dies liegt einfach daran, dass es sich so gut in HTML und CSS einfügt und Ihre HTML / CSS-Kenntnisse verbessert. Ich habe Anwendungen und Spiele in verschiedenen anderen Programmiersprachen entwickelt, darunter Java, Swift, C ++, Dart. Die Flexibilität, die JavaScript bietet, ist jedoch unübertroffen – auch wenn sie für Anfänger als schlecht angesehen werden kann, da sie mehr Optionen bietet, als für eine einfache Aufgabe erforderlich sind.
Heute ist JavaScript aufgrund seiner Leistung und Allgegenwart eine der mächtigsten Sprachen der Welt.
Persönlich habe ich das Gefühl, dass JavaScript das Potenzial hat, so viele beliebte Branchen wie maschinelles Lernen und Datenanalyse zu erschließen, in denen Python immer noch das Spiel regiert. Es passiert sogar jetzt mit Tools wie Tensorflow.js!
Dies war jedoch bei JavaScript definitiv nicht der Fall. Früher war es eine schwache, nicht performante Sprache und wurde verpönt. JavaScript war für „Verlierer“.
Aber nicht mehr. Mal sehen, wie JavaScript in den letzten 10 Jahren den Spieß umgedreht hat, warum es stärker als je zuvor geworden ist und warum es hier bleiben wird.
V8: Das Biest, das JavaScript antreibt
V8 ist eigentlich eine JavaScript-Engine. Was ist eine JavaScript-Engine? Eine JavaScript-Engine ist ein Interpreter, der JavaScript-Code ausführt. Eine JavaScript-Engine kann als Standardinterpreter oder Just-in-Time-Compiler (JIT) implementiert werden, der JavaScript in irgendeiner Form zu Bytecode kompiliert.
V8 ist Googles Open-Source-Hochleistungs-JavaScript- und WebAssembly-JIT-Engine, die in C ++ geschrieben wurde. Es wird unter anderem in Chrome und in Node.js verwendet. V8 kann eigenständig ausgeführt oder in jede C ++ – Anwendung eingebettet werden.
Dies ist die Software, die Ihren JS-Code stark optimiert und in Maschinencode konvertiert, damit die CPU ihn ausführen kann. Einige der Aufgaben, die V8 erledigt, sind:
- Müllabfuhr
- Kompilierung nach Maschinencode
- Inline-Caching
- Zeigerkomprimierung
- und viel, viel mehr Optimierung
Tatsächlich ist die Zeigerkomprimierung in V8 eine sehr neue Technik, um die Speicheroptimierung zu verbessern, ohne die Leistung zu beeinträchtigen. Wenn Sie ein Geek sind, können Sie im offiziellen V8-Blog mehr darüber lesen, wie es implementiert wird.
Dies hat zur Folge, dass Sie JavaScript schreiben und nachts gut schlafen können, da Ihr JS-Code in sehr guten Händen ist.
Reifes Ökosystem und Gemeinschaft
JavaScript hat eines der ausgereiftesten – wenn nicht sogar das ausgereifteste – Ökosystem, das eine Programmiersprache jemals haben könnte. Die Community für JavaScript ist riesig und die Eintrittsbarriere extrem niedrig.
Sie können einen Browser starten (auf 100% der PCs vorhanden), die Konsole öffnen und eine JS-Engine finden, die darauf wartet, dass Sie Code ausführen! Dies war bei anderen Programmiersprachen dieser Komplexität nie der Fall.
Als ob die große Community nicht genug wäre, haben wir die npmund yarnPaketsysteme. Sie nennen es und es gibt ein Paket dafür in der npmRegistrierung – alles von der Erstellung zufälliger Zeichenfolgen bis zur Verarbeitung von Streams und Puffern in JavaScript. Unter JavaScript-Entwicklern gibt es ein sehr berühmtes Sprichwort:
Was in JavaScript gemacht werden kann, würde schließlich in JavaScript gemacht werden
Es ist lustig, aber zurückhaltend, ich glaube das.
Wenn Sie als Anfänger eintreten, besteht nur eine sehr geringe Wahrscheinlichkeit, dass Sie auf ein Problem stoßen, auf das noch niemand zuvor gestoßen ist. Dies liegt daran, dass alle möglichen Fehler bei einfachen JavaScript-Problemen wahrscheinlich bereits auf Websites wie Stack Overflow abgefragt und archiviert wurden.
Frameworks und Bibliotheken wie React, Angular und Vue ebnen den Weg für die Erstellung zukünftiger Anwendungen. Sie verschieben die Perspektive in Richtung deklarative statt imperative Programmierung, das Was statt das Wie. Auf diese Weise können Entwickler hochwertige Anwendungen entwickeln, ohne sich Gedanken über den zugrunde liegenden leistungsstarken Code machen zu müssen.
Allgegenwart
JavaScript ist vorhanden auf:
- Frontend (Browser)
- Backend (Node, Deno)
- Android / iOS (React Native, NativeScript usw.)
- Desktop (Elektron)
- Hybrid (ionisch)
Was macht das möglich? JS-Engines wie V8 sind in C / C ++ geschrieben und können sogar auf eingebetteten Systemen kompiliert werden! Für andere Plattformen werden Browser, da sie immer vorhanden sind (wie unter Andorid / iOS), mit einer JS-Engine geliefert, mit der dann beliebiger JS-Code ausgeführt werden kann, auch für native Apps im Fall von React Native.
Bleeding Edge Features und Fortschritt
JavaScript-Standards werden von der ECMA-262 TC39-Community geleitet, und wow, diese Leute sind schnell! ECMAScript veröffentlicht jedes Jahr einen neuen JavaScript-Standard (siehe die neuen Funktionen von ECMAScript2020!). Sie als Entwickler können sogar verlangen, dass der Sprache neue Funktionen hinzugefügt werden.
Hier sind zum Beispiel einige ausstehende Funktionen, die es in naher Zukunft in JavaScript schaffen könnten:
JavaScript ist SCHNELL und SKALIERBAR
Natürlich ist nichts besser als C / C ++ / Rust, aber JavaScript ist schnell – in dem Sinne, dass V8 hochoptimierten Code generieren kann, indem es überwacht, wie Ihr Code ausgeführt wird, die nicht verwendeten Ausführungsbits verzögert und die Codesegmente optimiert die immer und immer wieder verwendet werden. Besonders im Vergleich zu seinen nächsten Konkurrenten wie Python. Mit den Fortschritten in V8 wird es noch leistungsfähiger und speichereffizienter.
JavaScript (Node) ist hoch skalierbar (mit Supersets wie TypeScript). Bei einer Architektur mit einem einzigen Thread wird Node häufig wegen fehlender Threading-Umgebung kritisiert, aber in Wirklichkeit spielt es keine große Rolle.
Die Art und Weise, wie Sie Knotenanwendungen skalieren, ähnelt nicht der Skalierung einer Multithread-Anwendung. Knoten bedeutet wörtlich „Knoten“ – ein einzelner Knoten in einem Baum von Prozessen. Der Knoten wird skaliert, indem mehrere Instanzen ausgeführt und der Cluster verwaltet werden.
JavaScript ist führend im asynchronen ereignisgesteuerten Programmiermodell der Branche und benötigt keine Threads zur Skalierung. Stattdessen könnten einzelne Knotenprozesse erzeugt werden, um den gesamten CPU-Kern zu handhaben und zu nutzen. Mehr zum Skalieren von Node später!
Fazit
Ich liebe JavaScript und habe damit eine Entwicklerplattform für Entwickler wie Sie erstellt. Dort können Sie nicht nur JavaScript lernen, sondern auch verschiedene andere Sprachen wie C, C ++, Java, Node, Python und mehr! Treten Sie hier kostenlos bei und lernen Sie mit anderen Entwicklern direkt aus Ihrem Browser heraus!