Knoteneditor und visuelle Programmierung
Knoteneditoren sind der letzte Schrei, insbesondere bei Bildverarbeitungs-Pipelines und Shader-Programmierung in Game-Engines. Hier ist beispielsweise eine Frage zum Stackoverflow zum Implementieren eines Blender-ähnlichen Knoteneditors für Python. Sie erscheinen auch in der Datenwissenschaft, beispielsweise in KNIME und Orange .
Ich frage mich, ob Mathematica in einigen Fällen von einem Knoteneditor profitieren würde. Ich habe mich beeilt, etwas visuell Ähnliches zu erstellen, aber es gibt viele Macken in Mathematicas Grafiken und es gibt auch andere Dinge zu beachten, wie zum Beispiel, welche Datenstrukturen für die Knoten und Verbindungen verwendet werden sollen. Dann gibt es das Problem, sich dynamisch um die Knoten bewegen und Knoten ziehen, Verbindungen erweitern / Verbindungen löschen usw. zu können.
- Gibt es bereits Implementierungen? Wenn nicht, gibt es eine Möglichkeit, eine dynamisch einstellbare zu erstellen
Graphund diese auszuführen? Wir könnenTreeForm[Plus[Times[x, y], z]]zum Beispiel bekommen, aber wie können wir dieses Diagramm per Drag & Drop aufbauen? - Lohnt es sich, in Mathematica zu arbeiten, oder wäre es besser, in Python zu implementieren, das Diagramm in Mathematica-Ausdrücke zu kompilieren und über die Client-Bibliothek aufzurufen?
Antworten
Gibt es bereits Implementierungen?
Es gibt zwei Implementierungen, die mir in den Sinn kommen.
- VISX (präsentiert auf Wolfram Gemeinschaft hier )
- Implementierung von Scratch Blocks
Der erste ist schon lange in der Entwicklung und wurde noch nicht veröffentlicht, aber es könnte sich lohnen, einen Blick auf jemanden zu werfen, der diesen Weg beschreitet.
Lohnt es sich, in Mathematica zu arbeiten, oder wäre es besser, in Python zu implementieren, das Diagramm in Mathematica-Ausdrücke zu kompilieren und über die Client-Bibliothek aufzurufen?
Meine persönliche Meinung ist, dass es besser wäre, eine visuelle Oberfläche zu implementieren, beispielsweise eine Electron-App , die auf der Wolfram Engine ausgeführt werden könnte. Die Einführung einer Abhängigkeit von der Notebook-Oberfläche scheint nicht sehr vorteilhaft zu sein, aber letztendlich geht es darum, mit welchen Technologien Sie arbeiten möchten.