2008-11-14 5 views
6

Wir möchten Menschen zur Verfügung stellen, um etwas Logik zu ihren Konten hinzufügen können (sagen wir, mit ein paar Argumenten, wie ein bestimmtes Ergebnis zu berechnen). Im Wesentlichen würde dies bedeuten, einfache Geschäftsregeln mit Unterstützung für Bedingungen und Ausdrücke zu schreiben. Die Herausforderung besteht jedoch darin, ihnen einen einfachen Online-Editor zur Verfügung zu stellen, in dem sie die Logik (vorzugsweise) vollständig visuell erzeugen können (Drag/Drop von Expr-Tree-Knoten vielleicht - ähnlich wie Y! -Pipes).Macro/Scripting-Sprache für Nicht-Entwickler mit einem einfachen GUI-basierten Editor

Kennt jemand eine Scripting/Makro/Domain-spezifische Sprache, die Menschen dies tun können? Die Herausforderung besteht im visuellen Editor, da wir nicht in die Entwicklung der Benutzeroberfläche zur Bearbeitung investieren möchten. Die grundlegenden Anforderungen wären:
1. eine andere Sprache Eingebettet in oder sicher ausgeführt werden (keine reboot -n oder <JUNK-DANGEROUS-COMMAND> >> ~/.bashrc)
2. Leicht zugänglich für Benutzer ohne Hintergrund-Codierung (keine Notwendigkeit einer erweiterten Funktionen)
3. Vorzugsweise wird eine haben einfacher grafischer GUI-gestützter Editor zum Erstellen von Logikprogrammen, die für Nicht-Entwickler zugänglich sind (ähnlich wie Tabellenkalkulationen)
4. Einige Möglichkeiten zum Generieren von Kompilierungswarnungen (ungültiger Code) wären gut (Typ Sicherheit?)
5. Einbettungsfähigkeit einige Daten vor der Ausführung, die dem Interpreter zur Verfügung stehen (z. B. name, birthday, amount)

Hat jemand versucht, so etwas zu tun und Ideen? Ich schaute auf Lua, Io, Python, Ruby und eine Menge anderer, aber die Herausforderung besteht im Wesentlichen darin, dass ich nicht denke, dass Nicht-Programmierer den Code so sehr verstehen können. Etwas, das über "Meta-Programmierung" hinzugefügt werden könnte, um einen Ruby zu sagen, wäre auch gut, wenn ein Editor leicht entwickelt werden könnte!

Antwort

0

Ich glaube nicht, dass Sie etwas finden werden, das nicht zu allgemein ist, besonders in Bezug auf den GUI-Editor. Soweit ich weiß, gibt es keine generischen Tools, die in der Lage sind, automatisch mit Ihrem Programm zu kommunizieren und Daten daraus abzufragen und das Skript in Befehle in Ihrer Software zu interpretieren - wenn ich eine Kopie haben möchte. Nicht frivol, aber Sie wird haben einige (wahrscheinlich viel) Arbeit zu tun, um dies funktioniert zu tun. Es wird wahrscheinlich dazu führen, dass Sie eine benutzerdefinierte DSL schreiben.

+0

Sind irgendwelche einfachen Tools, um ein DSL + ein Web-Frontend für die Bearbeitung dieser Tools vorzugsweise GUI-basiert zu bauen? Eigentlich sollte statt einer vollwertigen Sprache nur ein webbasiertes Frontend zur Bearbeitung von Ausdrucksbäumen ausreichen! – kpowerinfinity

2

Als Tatsache, Microsoft entwickelt Oslo, die direkt auf Ihrem Weg ist. Chris Sells hat vor kurzem viel darüber geschrieben.

Es wurde entwickelt, um DSLs zu erstellen und diese Modelle visuell mit einem grafischen Werkzeug namens Quadrant zu erstellen. Klingt sehr sehr ähnlich zu dem, was Sie suchen.

Open-Source-weise, Ruby ich denke, kann in der Nähe sein, wie Sie sehen können, wenn Sie sich _whytheluckystiff versuchen Ruby oder Hackety.

0

Ich würde mir PowerShell anschauen. Sie können alle Aktivitäten, die ein Benutzer scripten möchte, auf eine sehr lesbare Weise darstellen. Es wird darüber geredet, PowerShell zu verwenden, um ein DSL auf the PowerShell team blog zu erstellen, und Bruce Payette, der technische Leiter, spricht in seinem Buch Windows PowerShell in Action von Manning darüber.

0

Am anderen Ende der Skala ist etwas so einfach wie eine HyperText Application (HTA) zu schreiben - vorausgesetzt, Windows - natürlich entlang der Linien meines Clive Tools. Der Artikel im Blog erwähnt nicht die HTA-Version, aber im Wesentlichen konnte ich VBScript-ish-Code in ein Textfeld eingeben und es vor Ort interpretieren, Ausgabe in einen anderen Textbereich auf dem Formular.

Mit HTAs, die Ihnen die gesamte Formularsteuerung von HTML und das DOM geben, könnten Sie ziemlich schnell etwas interessantes finden.