[Allegro] Hat Allegro den Ruf der Antiquiertheit?
Roland Henkel
rhenkel at snafu.de
Sa Jun 16 13:49:44 CEST 2007
Liebe Listenleser,
Ein paar Dinge müchte ich, wenn auch eher als Zukunftsmusik oder
Anregung zur Diskussion beisteuern.
Zunächst: An der Datenbank gibt es, ausser der aus meiner Sicht
überfälligen vollständigen UTF-8 Fähigkeit nichts auszusetzen.
Lesen/Speichern der Daten ist performant, die Indizes hilfreich und wer
sich mit Zwischentabellen und ähnlichem in SQL auskennt, weiß auch die
Möglichkeit der Mehrfach- oder Folgekategorien zu schätzen.
(Nebenbei: Dass SQL "langsam" sei, ist mindest genau so eine tradierte
Sage wie die, dass allegro antiquiert ist :-). In dieser Totalität
stimmt weder das eine noch das andere.)
Die Vorschläge und Ideen der Vorredner will ich hier nicht wiederholen,
ich stimme mit ihnen weitgehend überein.
Was ich mittelfristig gut finden würde, wäre
1. Einfrierung der Desktopversion und volle Konzentration auf die
Serverseite.
Für die Desktopnutzung kann man eine Standardanwendung und einen kleinen
eingebauten Webserver mitliefern, wie man ihn heute bei etlichen
Anwendungen mitbekommt.
Auch die Möglichkleit, statt eines eigenen Avanti-Servers ein mod_avanti
zu erfinden, scheint mir nicht völlig abwegig.
2. Umstellung der Konfiguration auf XML.
Das ist weniger der Mode geschuldet als der Vorstellung, dass eine
solche Konfiguration auch von Fremdanwendungen ausgelesen werden könnte
und entsprechend der Angaben sozusagen wüßte, womit sie es zu tun
hat und sich entsprechend selber konfigurieren könnte.
Diese Konfiguration könnte als Schema oder DTD dann auch die Kategorien
beschreiben und ihre Evaluierung ermöglichen.
3. Anpassung der Zeichenkettensyntax an das übliche (\r, \n, \s \xnn,
\onn usw. und Backslash als Fluchtsymbol) keine Sonderbedeutung
irgendwelcher Zeichen und Zeichenkombinationen
4. Zusammenführung von FLEX und avanti-Befehlen zu einer konsistenten
und flexiblen Abfragesprache, die auch Rekursionen usw. ermöglicht und
die es erlaubt, sich aus den Sprachelementen eben das zusammenzubauen,
was man gerade braucht.
Eine solche Abfragesprache müsste sowohl Funktionen für den Index (z.b.
blättern, an einer bestimtmen Stelle positionieren usw.) als auch für
die Datensätze einschliesen. Auch Volltextsuche unter Umgehung der
Indizes sollte möglich sein.
Die Flexe in allen Ehren, aber mir kommt vor, als ob sie zu
funktionsgebunden und kontextbehaftet sind. Wenn mal wieder eine
Funktionalität gebraucht wird, wird rasch ein neuer Flex geschrieben.
Man müsste sich aber benötigte Funktionalitäten aus dem Sprachvorrat der
Abfragesprache selber schreiben können.
Das bisherige Verfahren führt m.E. im Laufe der Zeit dazu, dass sich
einzelne Flexe in ihren Funktionen teilweise überlappen, dass ein ein
Namenswirrwarr entsteht (Find find f1nd) und dass man für spezielle
Dinge dann doch wieder nach Provisorien und Workarounds suchen nuss.
5. Es ist m.E. nicht die Aufgabe eines Servers, Daten bereits in
irgendeiner vorformatierten Form zu liefern. Das kann - oft eleganter
und flexibler - die jeweilig angewendete Webscriptsprache erledigen. Der
Server (nicht erst phpac oder ähnliches) sollte sich darauf beschränken,
auf eine Abfrage in die zutreffenden Datensätze in einer definierten
"Raw"-Form zu liefern, also etwa als Hash mit den Kategorienummern als
Schlüssel.
6. Statt Exportsprache u.ä. könnten bei einem serverzentrierten Ansatz,
wie ich ihn hier zu beschreiben versuche, sofern überhaupt noch im
selben Maße gebraucht (denn was sollte mich hindern, einen Datensatz,
den ich als Hash vom Server bekomme, mittels PHP, Java oder sonst etwas
in jede beliebige Ausgabe zu transformieren?) Funktionen, Klassen,
Interfaces bereitgestellt werden. Vielleicht würde auch ein XML-Export
als Lingua Franca in der Zukunft genügen.
Das scripting wäre mit anderen Worten vollständig der jeweiligen
Webentwicklungsumgebung überlassen, was vielleicht doch auch eine
Entlastung der Entwicklungsabteilung mit sich bringen würde. Diese hätte
sich "nur noch" um die Funktionstüchtigkeit des Servers und seiner
Anschlusstellen zu kümmern.
Nutzerseitig scheint es mir gleichgültig, ob einer für eine
Allegro-Anwendung PHP (z.B) oder die Exportsprache lernen müßte.
Ersteres dürfe allerdings mehr Vergnügen machen :-) und das erworbene
Wissen wäre auch anderweitig brauchbar.
7. All die bibliothekarischen Einzelanwendungen wie Ausleihverbuchung
könnten dann um den Server und seiner Anschlussstellen herum von beinahe
jedermann entwickelt werden, was nicht ausschließt, dass die
Entwicklungsabteilung Standardmodule dafür bereit stellt.
Das sind natürlich Ideen, die sich fürs Wochenende eignen und nicht als
Wunsch oder gar Forderung, sondern als Anregung gemeint sind.
Herr Lehmann hat ja recht, wenn er meint, dass sich Allegro bewegen
müsse. Immer mal wieder ein neuer Flex, ein Workaround, ein Trick kann
auf die Dauer nicht die Lösung sein. Zu befürchten ist eher, dass unter
dem Anschein momentaner Verbesserung das ganze so zementiert wird, das
"Bewegung" immer schwerer wird.
Mit freundlichen Grüssen
R. Henkel
Mehr Informationen über die Mailingliste Allegro