Scriptsprachen (war: Bloss eine Idee)
Michael Lackhoff
lackhoff at fh-muenster.de
Fr Sep 29 08:49:26 CEST 2000
Lieber Herr Hoeppner,
> Das ist eine gute Idee, ich habe vor einiger Zeit schon mal so etwas
> versucht, mußte es wegen meiner anderen Projekte aber
> fallenlassen. Ist nur am Zeitproblem gescheitert.
Schade, ich denke, das waere ein sehr lohnendes Projekt!
> > > Am Rande waere es natuerlich nett, die Exportsprache von allegro
> > > ueber Bord zu werfen ,vorausgesetzt es gibt etwas
> > > allgemeingueltigeres, was dasselbe kann...
>
> Tja, was? Eine allegro-Zeile hat in sich schon mal wenigstens eine if-
> Abfrage, ohne das man was tun müsste Und die Bearbeitung wird
> sofort nach einer Manipulation abgebrochen, wenn der Arbeitstext
> leer ist. Nur das in einer der anderen Sprachen zu programmieren
> ist vielmehr Aufwand. Und die bedingten Postfixe sind manchmal
> sehr praktisch.
Natuerlich kann keine der Scriptsprachen die allegro-Sprachen aus
dem Stand abloesen. Ich denke mir eher eine Entwicklung wie bei
avanti/flex. Zuerst gab es reine Steuerfunktionen und nach und
nach kamen dann Funktionen fuer die Praesentation und
Datenmanipulation hinzu.
Analog stelle ich mir vor, dass es anfangs sicher eine Funktion
geben muss, die z.B. die Ausgabe eines Datensatzes/einer
Ergebnismenge ausloest -- durch eine traditionelle Parameterdatei
formatiert.
Doch diese Ausgabe staende dann in einer Perl-Variable. Ich
koennte sie vor- und/oder nachbehandeln.
Nach und nach koennten dann zusaetzliche Funktionen
dazukommen, die Funktionen der Exportsprache uebernehmen.
Vorteil hierbei: Wenn es eine Funktion noch nicht gibt kann ich sie
mir schreiben, wenn ich sie unbedingt brauche, was bei
Erweiterungen der Export-/Flex-sprache nicht geht, da ich kein C
kann und auch den Quelltext nicht zur Verfuegung haette, um
eigene Erweiterungen einzufuegen.
> > Mit avanti hat man im Moment mindestens eine Sprache mehr,
> > naemlich die einschlaegigen allegro-Sprachen _plus_ eine
> > Steuersprache (bisher meist Perl, z.B. fuer CGI aber auch Delphi oder
> > Python).
>
> aber die avanti-Sprache ist doch nun wirklich klein. Die große
Das ist ein Missverstaendnis. Ich brauche ja normalerweise auch
noch die Exportsprache, also Exportsprache plus Avanti plus
Steuersprache, wobei natuerlich die Exportsprache der dickste
Brocken ist und nicht die Avanti-Sprache. Mit avanti brauche ich
sie eben alle, bei meiner Idee in einer Uebergangszeit zwar auch
(s.o.) aber nach und nach koennte die Exportsprache durch
effektive Perl-Routinen obsolet werden.
> Schweirigkeit von Nicht-Allegrologen ist nicht dort zu sehen sondern
> im Verständnis der allegro-eigenen Datenbank-Philosophie. Es
> kommen häufig Anfragen wie "In SQL würde meine Anfrage so
> aussehen...." Das Verständnis des anderen Paradigmas ist die
> größere Hürde.
Mein Problem ist ganz konkret, dass ich nicht mehr den ganzen
Tag fuer allegro parametriere und langsam Schwierigkeiten
bekomme, Parameterdateien und Flexe zu lesen bzw. alle
Feinheiten und Nebenwirkungen zu verstehen und ein "use
english;" gibt es dafuer leider nicht (der Versuch von Herrn
Veltkamp, wenigstens durchzusetzen, dass Befehlswoerter
ausgeschrieben werden, hat sich ja leider nicht durchgesetzt
sondern lediglich zu einer weiteren Inkompatiblilitaet zwischen
Flexsprache und Avanti gefuehrt).
Bei allen Qualitaeten der allegro-Sprachen -- sie haben nichts mit
irgendetwas zu tun, was der durchschnittliche Computermensch
(oder auch Bibliothekar) sonst so an Sprachen sieht und kennt,
waehrend viele der Probleme (I/O, Datenmanipulation,
Plausibilitaetspruefungen, komplizierte Datenstrukturen usw.)
durchaus auch in anderem Zusammenhang vorkommen.
Die weiterhin noetigen und sinnvollen Besonderheiten von allegro
waeren ueberschaubar und laegen zudem in vertrautem Gewand
vor -- insbesondere (hoffentlich) mit sprechenden Namen statt mit
ein/zwei-buchstabigen Variablen, Sprungmarken und
Befehlswoertern.
> > Datenbankprogramm integriert wurde. Jedenfalls scheint mir die Tendenz
> > ganz klar von programmspezifischen Sprachen weg und hin zu allgemein
> > brauchbaren Sprachen mit per Modul zugeladenen Sonderfunktionen zu
> > gehen.
>
> Das ist richtig und ich hätte gerne VBA für allegro. Aber zum einen
> hebelt das nicht meinen Einwand bezüglich des Verständnisses aus,
> und zum anderen hat das banale monetäre Gründe, diese Sprachen
> nicht einzubinden: M$ verlangt gehörige Lizenzgebühren für die
Mir ging es nicht um ein VBA fuer allegro sondern nur um das
Beispiel: Als Ersatz fuer die eigene Access-Macrosprache wurde
von MS das allgemeinere VBA eingefuehrt -- natuerlich erweitert
um die von Access benoetigten Funktionen. Ein Grossteil der
Sprache ist aber gleich fuer Word, Excel und Access und auch
das normale VB ist sprachlich sehr nahe.
Was fuer MS VBA ist, koennte fuer allegro eine der P-Sprachen
sein.
> wäre vielleicht nicht tolerabel. Man kann natürlich Python oder Perl
> einbinden, aber Perl halte ich für einen Anfänger und Nicht-
> Programmierer, wie es die meisten Bibliothekare sind, nicht für
> leicht zu lernen. Python wäre schon etwas besser, aber dann
> kommen die Leute, die 'nur' Delphi, VBA oder so können und
> sagen: "Was??? Noch eine Sprache lernen?" Und Sie haben
> dasselbe Problem, wie vorher.
Es sollte natuerlich keinen Zwang geben, eine neue Sprache zu
lernen, ich denke mir aber dass es fuer einen Anfaenger bedeutend
attraktiver (und auch vom Kurs-/Literaturangebot her einfacher) ist,
eine der genannten Sprachen zu lernen als z.B. die Exportsprache.
Vielleicht ist auch nicht so ganz deutlich geworden, dass ich
nichts abschaffen moechte, sondern mir vorstelle, bestimmte
Sprachen nach und nach obsolet zu machen, einfach dadurch,
dass ich Sprachelemente und Funktionen "on board" habe, an
denen Hunderte von Entwicklern ueber Jahre gefeilt haben, wie es
fuer die "grossen" Scriptsprachen zutrifft (namespaces, echte
Kontrollstrukturen, regular expressions um nur ein paar zu nennen).
Auch fuer die Entwicklungsabteilung sehe ich hier uebrigens auf
Dauer bedeutende Erleichterungen: Die Pflege der
Standardfunktionalitaet faellt ihr praktisch in den Schoss, dafuer
gibt es die perl porters oder Guido mit seinem Team bei
pythonlabs. Die Entwicklungsabteilung koennte sich ganz auf die
Entwicklung spezieller Funktionen konzentrieren.
Don't-let-us-horrify-BE-too-much-ly y'rs. ;-)
Michael Lackhoff
--
FH Muenster Bibliothek / EDV
Tel.: 0251/83-64871
FAX: 0251/83-64853
Mehr Informationen über die Mailingliste Allegro