Heim  >  Artikel  >  Backend-Entwicklung  >  Wird es eine einheitliche Sprachspezifikation für PHP, Java und Javascript geben?

Wird es eine einheitliche Sprachspezifikation für PHP, Java und Javascript geben?

WBOY
WBOYOriginal
2016-12-01 00:01:20879Durchsuche

Diese Frage wird verwendet, um sich die Zukunft vorzustellen. Sie können nicht zu viele praktische Faktoren wie Geschäftsrichtlinien, Regierungsrichtlinien usw. berücksichtigen.

Zuallererst haben die Grammatikstandards von ES6, Java8 und PHP7 einige überlappen einander. Auch die grundlegende Syntax der drei ist sehr ähnlich.

Aus Anwendungssicht sind die drei Sprachen recht ingenieurwissenschaftlich und werden zum Aufbau sehr komplexer Projekte verwendet.

Obwohl js auch für die Ausführung auf der Browserseite verwendet werden kann, haben die jüngsten Komponentenisierungs-Frameworks die Front-End-Entwicklung ähnlich wie Desktop-Anwendungen gestaltet. Man kann sagen, dass der Browser Java oder PHP ausführen kann und die Ausführung von DOM ermöglicht , React kann in diesen beiden Sprachen implementiert werden.

In Bezug auf das Backend funktionieren die drei Sprachen nicht in ein oder zwei Tagen. Jede Funktion ist abgeschlossen, die Entwicklung ist agil und das Ökosystem ist erfolgreich.

Daher halte ich es für möglich, Sprachstandards zu vereinheitlichen. Wenn die Standards vereinheitlicht werden, ist es vorstellbar, dass die Lernkosten der Programmierer erheblich sinken und sie den Front-End- und Back-End-Entwicklungstechnologien, Programmiersprachenideen und allgemeinen grammatikalischen Merkmalen mehr Aufmerksamkeit schenken können, anstatt auf verschiedene grammatikalische Aspekte zu achten Details, Umgebungsabhängigkeiten und Drittanbieter-Bibliotheken, schließlich werden auch Drittanbieter-Bibliotheken universell.

Wenn ein Standard jedoch wirklich eingeführt wird, bleiben immer noch einige problematische Fragen:
Zusammenstellung oder Interpretation?
Starker Typ oder schwacher Typ?
Ereignisgesteuert oder Multithreaded?
Wie vereinheitlicht man die Verwaltung verschiedener Pakete?
Wie führe ich es auf der Browserseite aus?
Wie wiegt man die Müllabfuhr?

Ich bin gespannt, was alle denken!

Antwortinhalt:

Tatsächlich ähneln sich die Grammatiken vieler moderner Sprachen zunehmend. Durch die Verbesserung der PHP-Syntax ähnelt es beispielsweise immer mehr JavaScript (die Abkürzung für array(...)-Konstrukt lautet beispielsweise [...]) und async/await wurde in verschiedenen Sprachen eingeführt Fast genau das Gleiche, und Facebook hat kürzlich Der Grund dafür ist, die Syntax von OCaml so umzuwandeln, dass sie der von JS sehr ähnlich ist. Es scheint also, dass eine grammatikalische Vereinheitlichung theoretisch nicht unmöglich ist.

Allerdings gibt es bei der Syntax, wie bei allen anderen Teilen auch, Probleme bei der Aufrechterhaltung der Kompatibilität. Gegenbeispiele, die die Kompatibilität beeinträchtigen, wie z. B. Python3. Dies gilt nicht für die Aktualisierung einer Sprache selbst, geschweige denn für verschiedene Sprachen. Um ein weiteres kleines Beispiel zu nennen: In JS als Sprache gab es Debatten darüber, ob optionale Semikolons verwendet werden sollten, ganz zu schweigen von anderen Sprachen.

Auch wenn es auf der grammatikalischen Ebene so umgewandelt werden kann, dass es sehr nahe beieinander liegt, liegt das Problem auf der semantischen Ebene. Die „lästige Frage“, die das Thema aufwirft:
Zusammenstellung oder Interpretation?
Starker Typ oder schwacher Typ?
Ereignisgesteuert oder Multithreaded?
Wie vereinheitlicht man die Verwaltung verschiedener Pakete?
Wie führe ich es auf der Browserseite aus?
Wie wiegt man die Müllabfuhr?
Eigentlich ist es überhaupt kein grammatikalisches Problem.

Sprechen Sie nicht über diese großen Probleme, lassen Sie mich Ihnen noch ein kleines Beispiel geben, immer noch PHP und JS. Beide Arrays können mit [1, 2, 3] erstellt und dann mit einer tiefgestellten Syntax wie a[0] aufgerufen werden. Und Arrays in PHP und JS können auch Zeichenfolgen als Schlüssel verwenden. Auch wenn die Zeichenfolge eine Zahl ist, ist sie mit dem numerischen Index identisch. Sie sehen genau gleich aus. Aber Arrays in PHP und JS sind tatsächlich sehr unterschiedlich.

1. Sowohl JS als auch PHP führen eine implizite Typkonvertierung für Indizes durch. Die Indizes von JS sind alle in Zeichenfolgen eingebürgert, daher sind a[10] und a[10.1] unterschiedlich. Der Index von PHP wird jedoch zunächst auf eine Ganzzahl normalisiert, sodass a[10] und a[10.1] gleich sind.

2. In PHP:
<code class="language-text">$a1 = [1, 2];
$a2 = [0 => 1, 1 => 2];
$a3 = [1 => 2, 0 => 1];
</code>
Junge, denken Sie nicht zu viel nach, auch wenn mehrere andere Sprachen zur Vereinheitlichung bereit sind, glauben Sie, dass J8-Chef Larry Ellison dazu bereit ist? Es wird keine einheitliche Spezifikation geben

Sowohl das chinesische Pinyin als auch das Englische werden durch 26 Buchstaben dargestellt, der Inhalt ist jedoch völlig unterschiedlich. Kein Problem. PHP hat JPHP, JS hat Narshor, Python hat Jython und Java läuft natürlich auf der JVM selbst.
Die vom Fragesteller erwähnte „große Vereinigung“ muss also nicht auf sprachlicher Ebene realisiert werden. Es reicht aus, ihnen zu erlauben, sich gegenseitig anzurufen. Die einzigen Dinge, die unverändert bleiben, sind C und Go.
Es hängt davon ab, ob der Erfinder der Sprache auf seinem eigenen Geschmack besteht. Selbst wenn es eine solche Möglichkeit gibt, wird es nur eine neue Sprache sein, die die Sprachspezifikationen von PHP, JS und Java vereinheitlicht. . . Nur weil es viele Menschen gibt, die so denken, wollen viele Menschen die Welt beherrschen, was zur Folge hat, dass es immer mehr Sprachen gibt. Ob sie einheitlich sind oder nicht, hängt von der Stärke der Unterstützung ab, nicht von den Sprachmerkmalen. Es ist besser, sich die Zukunft vorzustellen, als sie selbst zu gestalten. Ja, die Maschinencodes sollten vereinheitlicht werden! Schlag mich nicht. . . Dann kann mein großes PHP nicht in Armstrongs Spin Armstrong Hammer umgewandelt werden。◕‿◕。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn