Welche Sprache kann in eine andere Sprache überführt werden? Diese Frage haben sich vermutlich viele Entwickler schon einmal gestellt. Insbesondere JavaScript als Ausgangs- oder Zielsprache zu verwenden ist aktuell sehr gefragt.
Das hat sich anscheinend auch Tim Cameron gedacht und die Seite langlangmatrix.com mit einer sehr ausführlichen Übersicht verschiedener Source-to-Source Compiler, Interpreter und Bytecode Compiler ins Leben gerufen. Anscheinend gibt es die Seite nicht mehr. Zumindest erscheint die Webseite eines Domain-Resellers.
The Language to Language Matrix
Zu der Website ist auch nicht wirklich viel zu sagen :). Interessant ist die schon angesprochene große Präsenz von JavaScript, wie an der ersten Spalte zu sehen ist (Abbildung 1). Bei der Abbildung handelt es sich allerdings nur um einen kleinen Ausschnitt. Die ganze Tabelle ist schlicht zu groß, um sie als Screenshot sinnvoll abbilden zu können.
Nicht ganz so gut vertreten sind dagegen beispielsweise C# und Clojure. Die Matrix gibt nicht nur die möglichen Transformationen an, sondern verlinkt auch direkt auf entsprechende Projekte.
Das entsprechende GitHub Repository ist ebenso verlinkt. Inklusive der Bitte, Erweiterungen beziehungsweise Korrekturen als Pull Request zu schicken.
Fazit
Coole Idee mit einfacher Umsetzung. Eine Suche wäre auf der Seite sicherlich noch eine Idee. Ich konnte, auch mit aktivierten Skripts, leider keine ausmachen. Allerdings ist die Tabelle auch noch nicht ganz so unübersichtlich. Vielleicht kommt das noch mit weiteren Sprachen, die in Zukunft ergänzt werden.
Viel besser ist das Language Poster von O’Reilly!
Absolut empfehlenswert! Achtung: Die Programmiersprachen-Verwendung ist hier nicht visuell gewichtet. Deswegen tut man sich hart, C# zu finden. 🙂
Hi Robert,
cool, danke für die Info! Das Poster war mir nicht bekannt.
Grüße,
Fabian
Hallo,
kann man, wenn man C++ zu Java umwandeln kann und Java in fast alles andere, nicht dann auch C++ in alles andere umwandeln?
Grüße,
Paul
Hallo Paul,
vielen Dank für deinen Kommentar.
Ich denke, es ist möglich, den von dir beschriebenen Weg zu nutzen. Ich habe die Matrix oben so verstanden, dass ein fehlender Eintrag nicht bedeutet, dass es gar nicht geht, sondern nur, dass aktuell keine automatisierter Weg existiert.
Allerdings kann es bei mehreren Schritten natürlich Probleme bei der automatischen Übersetzung geben, weil durchaus Features in Programmiersprache B fehlt, die in A vorhanden ist (wenn du A nach B transformieren willst).
Viele Grüße
Fabian