Heim > Artikel > Backend-Entwicklung > 4 Tools zur Codekonvertierung zwischen Python und JavaScript
Python oder JavaScript? Obwohl viele Freunde immer noch darüber diskutieren, wer von beiden derzeit stärker ist und wer bessere Entwicklungsaussichten hat, besteht kein Zweifel daran, dass der Wettbewerb zwischen den beiden im Bereich Web-Frontend eine klare Antwort hat. Wenn wir auf JavaScript verzichten, haben wir basierend auf der Browserplattform nur wenige Projekte zur Auswahl.
Nun, vielleicht ist die Antwort nicht so eindeutig. JavaScript ist zum Konvertierungsziel der Wahl für viele andere Programmiersprachen geworden (Beispiele sind TypeScript, Emscripten, Cor und Cheerp). Python hingegen verfügt über eine große Fangemeinde und eine starke Bibliothek bestehender Bibliotheken, was es zu einer idealen Konvertierungs- oder Übersetzungsoption für JavaScript macht.
Hier sind vier Projekte, die Python erfolgreich in die JavaScript-Welt bringen können:
Transcrypt
Dies ist ein neu entwickelter Python-zu-JS-Übersetzer. Transcrypt legt großen Wert auf die Qualität des generierten Codes. Erstens bleibt so viel wie möglich von der ursprünglichen Python-Codestruktur erhalten, einschließlich Mehrfachvererbung und Lambda-Ausdrücken. Python-Quellcode kann in JavaScript auch Objekte im Namespace direkt aufrufen. Wenn Sie versuchen, in Python auf document.getElementById zuzugreifen, wechselt der konvertierte Code auch zur Verwendung von document.getElementById in JavaScript.
Der Dokumentation zufolge verwendet Transcrypt das abstrakte Syntaxbaummodul von CPython, um diese Übersetzungsaufgaben abzuschließen, auf die programmgesteuert zugegriffen werden kann, basierend darauf, wie Python seinen eigenen Code analysiert. Obwohl sich das Projekt noch im Alpha-Teststadium befindet, zeigt es bereits erstaunliche Erfolge.
Jiphy
Das sogenannte Jiphy steht für „JavaScript rein, Python raus“ – das heißt, es kann beides in beide Richtungen umwandeln. Darüber hinaus kann Code aus beiden Sprachen gemischt werden, bevor er in die andere Sprache konvertiert wird.
Das derzeit größte Manko von Jiphy besteht darin, dass es nur einen Teil des Funktionsumfangs von Python unterstützt. Klassen und Standardparameter werden noch nicht unterstützt, Dekoratoren und Ausnahmen sind jedoch verfügbar. Dies liegt vor allem daran, dass Jiphy auf einer direkten Zeile-zu-Zeile-Übersetzung zwischen Quellcode und Zielcode besteht, aber seine Entwickler beginnen auch, nach neuen Funktionen in ES6 zu suchen, um erweiterte Python-Funktionen zu unterstützen.
Brython
Vielleicht werden wir eines Tages, wenn die Vision von WebAssembly Wirklichkeit wird, in der Lage sein, jede Sprache unserer Wahl für die Webentwicklung auszuwählen. Und Brython hat sein eigenes Verständnis davon – oder zumindest trifft es auf Python 3 zu: Warum warten?
Brython erreicht das Ziel, die Python 3-Version als clientseitige Webprogrammierlösung zu verwenden, indem es alle Schlüsselwörter in Python 3 und die meisten integrierten Plug-Ins über eine Reihe von JavaScript-Bibliotheken emuliert. In Python geschriebene Skripte können direkt zu Webseiten hinzugefügt werden, und Brython unterstützt außerdem eine Reihe erweiterter Python-Modulschnittstellen (Browser) für die Zusammenarbeit bei der Ausführung mit dem DOM, was häufig direkt in JavaScript erfolgen kann.
Brython behält jedoch auch die Einschränkungen bei, die Browser dem JavaScript-Code auferlegen – wie etwa die Nichtunterstützung der lokalen Dateisystemverarbeitung.
RapydScript
RapydScript verspricht, „Python-JavaScript-Code nicht mehr zum Kotzen zu bringen.“ Das Projekt ist konzeptionell ähnlich wie CoffeeScript: Code in Python, Generierung von JavaScript-Code und Wiedergabe von zwei Sprachen gleichzeitig besten Eigenschaften der Person. Auf der Python-Seite verfügt es über klare Syntaxregeln; auf der JavaScript-Seite verfügt es über anonyme Funktionen, DOM-Manipulation und die Möglichkeit, vorhandene JavaScript-Bibliotheken wie jQuery oder den Node.js-Kern zu verwenden.