[2014-09-20 19:13] Patrick Bucher <paedubuc...@bluewin.ch> > On 09/20/2014 02:29 PM, Francesc Hervada-Sala wrote: > > Was haltet ihr für Wünschenswert? Wie > > stellt ihr euch das Programm vor? Mit welchen Funktionen, welchem > > Design? Ihr könnt das Ganze umreißen oder auch gern einzelne Aspekte > > herauspicken, die euch wichtig sind. > > Ich wünsche mir ein typisches UNIX-artiges Programm, dass mit > Standard-Input/Output funktioniert. Ich habe eine Ausgangsdatei im > Universaltext, dann z.B. eine HTML- oder LaTeX-Datei (bzw. einen > entsprechenden Standard-Input) mit entsprechenden Selektoren, womit die > Inhalte aus dem Universaltext in den Output "gezogen" werden sollen. > > textengine -i template.html notizen.txt > notizen.html # HTML erzeugen > textengine -i template.tex notizen.txt > notizen.tex # LaTeX erzeugen > textengine notizen.txt '[Selektoren]' | less # zum Lesen am Bildschirm
Ich bin mir nicht so sicher, ob ich die Textengine als Unix-Tool, das aus der Shell aufgerufen wird, verstehen will. Fuer mich waere es wohl eher *eine Shell*. Die Shell ist die Kommunikationsschnittstelle. Sie gibt vor wie wir mit dem System interagieren koennen. Genau da sehe ich die Textengine. Ein ganzes Betriebssystem laesst sich kaum aufbauen, aber wenn wir eine Shell entwickeln, dann koennen wir den groessten Teil der sichtbaren Haut des Betriebssystems (insbesondere wie damit zu interagieren ist) designen. Das ist eine Abstraktionsebene. Wenn ein hierarchisches Dateisystem nicht zum Modell der Textengine passt, dann in der Textengine-Shell vollkommen unsichtbar sein, dass im Hintergrund alle Daten doch irgendwo im hierarchischen Dateisystem liegen. Die Textengine kann uns dann eine Computerwelt ohne Dateien, nur mit einem grossen dynamischen Wissensschatz, praesentieren. Ich habe es so verstanden, dass der Universal-Interpreter so eine Shell ist. (Shell im Sinne von einem interaktiven Ein-/Ausgabe- Interpreter.) Allerdings war beim Universal-Interpreter alle Datenhaltung nur fluechtig im Arbeitsspeicher, ein persistentes Backend (d.h. FS oder DB) hat gefehlt. Shells kann man allerdings jederzeit auch als Interpreter aufrufen, wobei Stdin und Stdout den Anweisungen und ihrer Ausgabe vorenthalten sind. Die Daten werden von den Anweisungen gelesen und geschrieben. Z.B. $ ksh <<! >/dev/null 2>&1 sort <foo >bar ! $ So wird in einer beliebigen Shell die `ksh' als Interpreter aufgerufen; die Ausgabe wird ignoriert. Aus `foo' werden Daten gelesen; nach `bar' werden Daten geschrieben. Wie mir gerade bewusst wird, waere dein Anwendungsfall, Paedu, ebenfalls mit einbegriffen. Auf diese Weise koennte man die Textengine nutzen ohne die Unix-Welt zu verlassen. Gleichfalls koennte man die Shell aber auch interaktiv verwenden (sogar als Login-Shell, ggf. fuer einen zweiten Nutzeraccount). Und dann tritt man durch die Tuer aus der Unix-Welt in die Welt des Universellen Textes. :-) Ja, ich denke so stelle ich mir die Textengine vor. meillo P.S. Gerade stolperer ich ueber den Begriff ``Textengine'' im Gegensatz zum ``Universal-Interpreter''. Francesc, kannst du bitte nochmal erklaeren worin du den Unterschied und die jeweilige Ausrichtung siehst?