Key Takeaways
- Die Zukunft der Programmierung wird wahrscheinlich einen Abzug von JavaScript entfernt, wobei die Einführung der WebAssembly das Web zu einem attraktiveren Kompilierziel für andere Sprachen macht.
- Der Autor hofft, dass alles, was JavaScript ersetzt, integrierte unveränderliche Datenstrukturen, wörtliche Formen für Objekte, Sammlungen und primitive Typen, Lambdas mit Verschlüssen und eine minimale Syntax, unter anderem.
- visuelle IDEs, die eine einfache Modellierung und Visualisierung von reaktiven Beziehungen im System ermöglichen, werden wahrscheinlich zur Norm bei der Programmierung. Dies wird durch ein radikales Überdenken der modellierten Programme visuell erleichtert, wodurch visuelle Unordnung und Verkabelung überzogen wird.
- Die Zukunft der Programmierung wird wahrscheinlich auch genetische Programmierungen beinhalten, bei denen Populationen von Kandidatenprogrammen erstellt und filtriert werden, basierend auf ihrer Fähigkeit, Tests zu bestehen, und AI-unterstützte Programmierung, bei denen KI-Systeme Code analysieren, nach potenziellen Fehlern und Schwachstellen suchen, nach potenziellen Fehlern und Schwachstellen, und schlagen Sie Tests vor, die geschrieben werden müssen.
Kürzlich haben wir gehört, dass die Webplattform ein neues Browser-natives Kompilierungsziel namens WebAssembly erhält (siehe WebAssembly: The Dawn of a New Ära für Details). WASM macht die Webplattform zu einem attraktiveren Kompilierziel für andere Sprachen. Das lässt uns fragen, was nach JavaScript kommen könnte.
JavaScript hat einige großartige Merkmale, aber ich hoffe aufrichtig, dass wir so schnell wie möglich weitermachen. JavaScript ist großartig und hat uns viel beigebracht, aber die Programmierung wird sich entwickeln. Es wird ein Leben nach JavaScript geben.
Ich bin kein Fan von C (ich bin ein wiederhergestellter Benutzer und Missbraucher von C), aber ich bin ein Fan vieler Dinge, die damit gebaut wurden, einschließlich der Unreal Engine, die beim Kompilieren von JavaScript großartig läuft. Es gibt keinen guten Grund, alles für immer in JavaScript zu schreiben. Es ist Zeit, in die Zukunft zu schauen.
Ich habe von Zeit zu Zeit Coffeescript verwendet und sehr genossen, was dazu beigetragen hat, viele der neuen ES6 -Funktionen zu inspirieren. Coffeescript fühlt sich viel einfacher an als JavaScript. Es hat eine prägnantere Syntax, fügt jedoch eine Menge ausdrucksstarker Fähigkeiten hinzu, die in ES5 nicht existierte. Natürlich würde ich CoffeeScript noch mehr vereinfachen, indem ich das giftige Klassenschlüsselwort befreit habe. Ich mag es auch, mit Haskell zu fassen. Aber diese Sprachen repräsentieren die Gegenwart.
Also, was können wir als nächstes tun?
Was auch immer Feuer nach JS fängt, ich hoffe, es hat folgende Funktionen:
- integrierte unveränderliche Datenstrukturen und Unveränderlichkeit standardmäßig.
- wörtliche Formen für Objekte, Sammlungen und primitive Typen.
- Ein besserer Standardnummerntyp für die meisten Anwendungsfälle.
- benutzerdefinierte Strukturarten, einschließlich guter Unterstützung für Binärtypen auf niedriger Ebene (Bonus, wenn wir definierbare Literal-Syntax erhalten).
- lambdas mit Schließungen.
- Funktionaler Versorgungsgürtel eingebaut. Ähnlich wie die RXJS beobachtbare API.
- native Unterstützung für Objekte und Fabrikzusammensetzung. So etwas wie eingebaute Briefmarken.
- Echtzeitgarantien für die Verarbeitung und Präzisionsplanung mit geringer Latenz für Apps wie Gaming, Musik- und Videoproduktion, DSP, wissenschaftliche Anwendungen, Synchronisation verteilter Systeme usw.
- minimale Syntax, ähnlich wie Ruby, Python oder Coffeescript. Jetzt, da ich die Chance hatte, sich überall ohne lockige Zahnspangen und Semikolons wohl zu fühlen, fühle ich mich viel weniger durch Syntax eingesperrt.
Erstklasseunterstützung für die reaktive Programmierung
in die Sprache gebacken, eine einfache, konsequente API um all diese:
- Streams.
- kontinuierliche Datenquellen (UI -Eingaben, Zeit, Vektorbilder usw.).
- Sammlungen einschließlich Arrays und Objekten.
Diese API sollte auf die gleiche Weise verwendet werden, unabhängig davon, ob Daten durch die Funktionen von einem Wert gleichzeitig (d. H. Iterierende / Generatoren ergeben), als Reaktion auf emittierte Ereignisse (z. B. Streams im Knotenstil) oder kontinuierliche Datenquellen wie als Audio, elektrische Signale, UI-Eingänge, Sensoren, sogar zeitunabhängige Dinge wie Vektorgrafiken usw.
Eine integrierte API wie diese könnte alle Typen einwickeln, die das Potenzial hat, auch die Syntax zu vereinfachen.
Für eine wirklich aufschlussreiche Perspektive darüber, wie all dieses reaktive Zeug funktioniert, schauen Sie sich eine allgemeine Theorie der Reaktivität an.
besseres Werkzeug
unwirkliches Motor 4 Blaupause
- Eine fantastische visuelle IDE zur einfachen Modellierung und Visualisierung von reaktiven Beziehungen im System. Denken Sie mit einem viel besseren Ux.
- Zeitreise-Debugging (Beispiel mit JavaScript), das durch unveränderliche Datenstrukturen aktiviert ist. Mit dem Debuggen von Zeitreisen können Sie in der Geschichte Ihres lebenden, laufenden Programms leicht hin und her streichen.
- Kompilieren Sie mit JS & WASM große Unterstützung für Browser und Knoten.
- Bessere Analyse -Tools sowohl statische als auch Laufzeit / Dynamik. Speziell entwickelt, um Programme vorhersehbarer zu gestalten, indem reaktive Abhängigkeitsdiagramme analysiert werden. Diese könnten auch großartige visuelle Berichte erstellen, einschließlich Komplexitätsberichte, und Marmordiagramme , um das Verhalten Ihres Programms weiter zu verstehen und vorherzusagen.
Marmordiagramm für .merge ()
visuelle IDes sind die Norm
Diejenigen, die mit Flow-basiertem/Datenflow-Programmieren vertraut sind, werden Ihnen zu Recht sagen, dass es nichts Neues ist. Visuelle Programmierwerkzeuge gibt es seit Jahrzehnten und konnten bisher keine textbasierte Programmierung ersetzen.
Was diese über die Kante drückt, ist ein radikales Überdenken darüber, wie Programme visuell modelliert werden können, um die visuelle Unordnung und Verkabelung zu reduzieren, die die meisten fließbasierten Programmierlösungen plagen.
Die meisten Innovationen in diesem Bereich finden in Programmierumgebungen überhaupt nicht statt. Stattdessen erfolgt es in Produktionsanwendungen, bei denen die Datenflussmodellierung die Hauptaufgabe ist. Nirgendwo ist dies besser illustriert als in Audioproduktions -Apps.
Audioproduktions -Apps leiten in der Regel RAW -Audio über ein Netzwerk von Effektprozessoren. In Programmierbegriffen können Sie sich einen Effektprozessor als eine funktionale Karte vorstellen: Eine reine Funktion für jedes Element in einer Liste, bei der diese Elemente einem Audio -Beispiel -Slice entsprechen.
Die meisten Audio -Apps modellieren diesen Prozess visuell, indem die realen Maschinen und Kabel in skeuomorpher Weise simulieren. Eine skeuomorphe Benutzeroberfläche ist eine, die versucht, die Benutzeroberfläche des ursprünglichen Objekts zu emulieren, das in der Software modelliert wird.
Das Problem mit dem skeuomorphen Design besteht darin, dass es den größten Teil der Benutzeroberfläche und Ineffizienzen des Originals treu reproduziert. In datenintensiven Anwendungen wie der Audioproduktion sieht diese Unordnung den Programmierern bemerkenswert vertraut aus: Die Drähte sehen ein bisschen wie Spaghetti aus - etwas, das alle guten Entwickler wissen sollten, die wir vermeiden sollten.
bayareamodularmeet-George P. Macklin-(CC BY-SA 2.0)
Aber in letzter Zeit haben Software wie Ableton Live und Renoise clevere Wege gefunden, sich von Kanälen und Ketten vollständig von Draht -Unordnung zu befreien.
Ein Ableton -Live -Effektkanal. Die Daten fließt von links nach rechts.
Mit anderen Worten fließen die Daten über Kanäle, und jeder Kanal besteht aus einer Effektkette. Es werden keine Drähte benötigt, da die Effekte nacheinander angewendet werden.
Renoise -Kanäle mit jeweils eine Effektkette. Die Daten fließen von oben nach unten.
In Code könnte ein Kanal ungefähr so aussehen:
<span>const channel = input => { </span> <span>return input </span> <span>.filter() </span> <span>.gain() </span> <span>.limit(); </span><span>}; </span> <span>export default channel;</span>
Wenn Sie genau darüber nachdenken, wird klar, dass Sie mit diesem Modell viel mehr als Audio & Digital Signal Processing (DSP) machen können. Sie können es beispielsweise verwenden, um Routen und Middleware in Express visuell zu modellieren, wobei Routen durch Kanäle dargestellt werden und Middleware durch Effekte dargestellt wird:
Eine hypothetische renoise-inspirierte Benutzeroberfläche für Programmrouten.
Dies bedeutet natürlich, dass jeder Effekt in der Kette auf Eingaben mit einer gemeinsamen API wirken muss. Hier glänzen funktionelle und reaktive Programmierkonzepte. Es ist einfach, eine einheitliche API für jede Art von Sammlung bereitzustellen, einschließlich eines Stroms von Netzwerkanforderungen. Bei der funktionellen Programmierung werden diese Wickel -APIs als Funktoren bezeichnet. Im klaren Englisch kann ein Funkartor etwas abgebildet werden.
Wenn das ein bisschen wie Science -Fiction klingt, schauen Sie sich Treeline an. Es macht heute etwas sehr Ähnliches. Schauen Sie sich diese Post- /Anmelderoute an, die in Baumanweis modelliert ist. Es verschlüsselt das Kennwort des Benutzers und erstellt dann das Benutzermodell und antwortet dann mit Status 200 OK. Jeder dieser Schritte könnte als Kanaleffekt angesehen werden:
Treelin: Daten fließen von oben nach unten.
genetische Programmierung
genetische Programmierung ist der Prozess der Simulation des Evolutionssystems von Nature, indem Populationen von Kandidatenprogrammen erstellt und die Programme herausgefiltert werden, die die Tests nicht bestehen. Die Kandidaten, die die Tests bestehen, überleben und bilden die Grundlage der nächsten Generation.
genetische Programmierung bietet die Möglichkeit einer kontinuierlichen, automatisierten Verbesserung des Hotcode und kritischen Algorithmen. Es besteht ein echtes Potenzial, einen genetischen Programmieralgorithmus auf ein Git -Repository zu richten und automatisch neue Software -Generationen in die Produktion zu bringen, wenn sich die Bevölkerung bei früheren Einsatzversionen verbessert.
AI-unterstütztes Programmieren
Scott Ingram-Dual Neuron (CC BY-NC 2.0)
Starke KI ist heute hier. Viele AI -Systeme schlagen Menschen in unseren eigenen Spielen in verschiedenen Kategorien. Ein Hauptvorteil von AI besteht darin, dass es sehr schnell eine Vielzahl von Alternativen analysieren kann. AI könnte den Code untersuchen, den Sie schreiben, nach potenziellen Fehler und Schwachstellen suchen, Muster erkennen, die abstrahiert werden könnten, Tests vorschlagen, die geschrieben werden müssen, oder sogar Muster in genetischen Programmierpopulationen erkennen und automatisch Populations- und Umweltparameter anpassen müssen, um genetische Programme zu feinstimmen Algorithmen.
Mit anderen Worten, langfristig hat KI eine sehr reale Chance, ein unschätzbares Programmierwerkzeug zu werden. Tatsächlich ist es leicht vorstellbar, dass KI Programme ohne menschliche Hilfe produzieren kann.
Schlussfolgerung
Was auch immer als nächstes kommt, erwarten Sie, dass es ein Quantensprung in Technologie und Innovation ist. Die Zukunft wird früher hier sein als Sie denken.
häufig gestellte Fragen (FAQs) zu WebAssembly und der Zukunft
Was ist der Hauptunterschied zwischen JavaScript und WebAssembly?
JavaScript ist seit vielen Jahren das Rückgrat der Webentwicklung. Es hat jedoch seine Einschränkungen, insbesondere wenn es um leistungsintensive Anwendungen geht. Die WebAssembly hingegen ist ein Binäranweisungsformat, mit dem Code mit nahezu nativer Geschwindigkeit ausgeführt werden kann, indem gemeinsame Hardwarefunktionen nutzen. Es ist eine virtuelle Maschine mit niedriger Ebene, die Code mit nahezu nativem Geschwindigkeit ausführt, was ihn ideal für Aufgaben wie Spiele, computergestütztes Design, Videobearbeitung und wissenschaftliche Simulation macht. JavaScript ersetzen? Stattdessen soll es mit JavaScript zusammenarbeiten, sodass Entwickler das richtige Tool für den Job auswählen können. JavaScript eignet sich hervorragend zum Erstellen dynamischer Websites und Anwendungen mit komplexen Benutzeroberflächen, während WebAssembly besser für leistungsintensive Aufgaben geeignet ist. Ein effizienteres binäres Format für das Web. Mit diesem binären Format kann der Code schneller analysiert und ausgeführt werden als JavaScript. Darüber hinaus ist WebAssembly eine virtuelle Maschine mit niedriger Ebene, die Code mit nahezu nativer Geschwindigkeit ausführt. Dies ist ein erheblicher Leistungssteiger für leistungsintensive Aufgaben.
Kann ich WebAssembly in meinen aktuellen Webprojekten verwenden?
Ja, Sie können WebAssembly in Ihren aktuellen Webprojekten verwenden. Die meisten modernen Browser unterstützen die WebAssembly und es gibt mehrere Tools, mit denen Sie Ihren Code für WebAssembly kompilieren können. Nehmen Sie die beste Unterstützung für das Kompilieren von WebAssembly. Ziel ist es jedoch, in Zukunft so viele Sprachen wie möglich zu unterstützen. Es gibt auch kontinuierliche Anstrengungen, um andere Sprachen wie Python, Go und Java zu unterstützen. Es arbeitet in derselben Sandbox -Umgebung wie JavaScript, was bedeutet, dass es die gleichen Zugriffsbeschränkungen aufweist. Da es sich um ein Binärformat auf niedrigem Niveau handelt, ist es außerdem weniger anfällig für bestimmte Arten von Angriffen, die bei JavaScript gemeinsam sind. verschiedene Arten. Sie können beispielsweise JavaScript -Funktionen aus WebAssembly aufrufen und umgekehrt. Sie können auch Daten zwischen den beiden übergeben, obwohl dies derzeit einige manuelle Arbeiten erfordert.
Was ist die Zukunft der WebAssembly? Es wird bereits von allen großen Browsern unterstützt, und seine Leistungsvorteile machen es zu einer attraktiven Option für Webentwickler. Da mehr Sprachen Unterstützung für das Kompilieren von WebAssembly erhalten, können wir davon ausgehen, dass es in einem breiteren Bereich von Anwendungen verwendet wird.
Gibt es Einschränkungen bei der Verwendung von WebAssembly? Es hat einige Einschränkungen. Beispielsweise hat es derzeit keinen direkten Zugriff auf das DOM, was bedeutet, dass Sie JavaScript für jede DOM -Manipulation verwenden müssen. Es gibt jedoch kontinuierliche Anstrengungen, um diese und andere Einschränkungen anzugehen. Die offizielle WebAssembly -Website ist ein großartiger Ausgangspunkt, da sie einen umfassenden Überblick über die Technologie bietet. Es gibt auch zahlreiche Tutorials und Anleitungen online, mit denen Sie mit WebAssembly beginnen können.
Das obige ist der detaillierte Inhalt vonDie Zukunft der Programmierung: WebAssembly & Leben nach JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

Node.js zeichnet sich bei effizienten E/A aus, vor allem bei Streams. Streams verarbeiten Daten inkrementell und vermeiden Speicherüberladung-ideal für große Dateien, Netzwerkaufgaben und Echtzeitanwendungen. Die Kombination von Streams mit der TypeScript -Sicherheit erzeugt eine POWE

Die Unterschiede in der Leistung und der Effizienz zwischen Python und JavaScript spiegeln sich hauptsächlich in: 1 wider: 1) Als interpretierter Sprache läuft Python langsam, weist jedoch eine hohe Entwicklungseffizienz auf und ist für eine schnelle Prototypentwicklung geeignet. 2) JavaScript ist auf einen einzelnen Thread im Browser beschränkt, aber Multi-Threading- und Asynchronen-E/A können verwendet werden, um die Leistung in Node.js zu verbessern, und beide haben Vorteile in tatsächlichen Projekten.

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver CS6
Visuelle Webentwicklungstools

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung
