Michael Schröpl: nicht alle cgi's laufen bei mir

Beitrag lesen

Hi Christoph,

menno, du erwischst mich aber auch jedesmal ...

das ist mein Job - dafür werde ich bezahlt.

dabei weißt doch ganz genau, was ich gemeint hab ;-)

Ja, und? Ist das von irgend einer Relevanz? ;-)

"aussterben" würde UNIX erst dann, wenn sich die Microsoft-Idee,
daß man shell-Scripts auch ohne diese Ikone schreiben kann,

Man kann Shell-Skripte auch jetzt schon ohne diese "Ikone" schreiben,
indem man direkt die Shell aufruft und ihr den Namen des Skripts als
Parameter übergibt. (Perl ist in diesem Sinn auch eine Shell.)

Dann muß der Anwender allerdings wissen, für welche der unzählichen
und zueinander inkompatiblen Shells ein Skript geschrieben ist!
Genau das erspart ihm die Shebang - das kann kein Windows-artiger
Mechanismus ersetzen.

Denn um die shebang durch das Konzept der Verknüpfung mit Namens-
konventionen zu ersetzen, müßte
1. jeder Interpreter eine solche Namenskonvention erfüllen
   (damit wären die Namen von Kommandos nicht mehr unabhängig von
   deren Implementierungssprache)
2. sämtliche dieser Konventionen zueinander disjunkt sein
3. auf jedem System ein vollständiges, einheitliches System aller
   Verknüpfungen mit allen Sprachen etabliert sein.
Letzteres könnte natürlich bei der Installation sämtlicher Sprach-
Interpreter automatisch erfolgen (so macht es Windows ja auch, zu
meinem Leidwesen - die Zahl der Programme, die sich um die Interpre-
tation von "*.html" schlagen, ist kaum noch zu überschauen, dabei
will ich immer noch bei einem Doppelklick auf ein HTML-Dokument
einfach nur meinen Editor gestartet haben, denn zum Visualisieren
des Dokuments in einem Browser spreche ich es über einen URL an,
nicht über einen Pfadnamen!).

Aber Punkt 1 wäre dadurch nicht entkräftet - Du könntest nicht mehr
ein Systemkommando durch ein eigenes Shell-Skript einschalen und
ähnliches.

Und Punkt 2 ist auch kein Pappenstil - das bedeutet nämlich, daß
jeder, der eine neue Konvention etabliert, von sämtlichen weltweit
bereits existierenden Konventionen wissen muß ... und was ist, wenn
zwei Leute gleichzeitig eine neue Konvention etablieren wollen?
(Wer leitet die weltweite Registrierungsinstitution für Endungen?)

Gegen Punkt 3 fällt mir übrigens auch gerade etwas ein: Wenn jedes
Programm eigene Endungen definieren können muß, um sich auf einem
Rechner zu installieren, wer hindert dann ein solches Programm daran,
fremde Definitionen zu überschreiben?
(Beispielsweise beim Doppelklick auf *.doc den Festplattenformatierer
zu starten - wäre doch eine nette Idee, oder? ;-)
Beim Shebang-Konzept ist ein Skript alleine dafür verantwortlich,
wer es ausführt. Und die Zielverzeichnisse für installierte Software
kann ich entsprechenden Benutzerkennungen als owner geben - da kann
dann kein Programm eine fremde Installation manipulieren. Wie mache
ich das in Windows 98?

Micro$oft verläßt sich darauf, daß jeder dieselben Definitionen für
Endungen hat. Ist dies nicht der Fall, dann passiert _irgendwas_.
Die shebang-Konvention verläßt sich darauf, daß jeder identische
Pfade für die Installation bestimmter Interpreter verwendet.
Ist dies nicht der Fall, dann gibt es eine klare Fehlermeldung.
Letzteres gefällt mir besser.

Die Gefahr, daß zufällig zwei Endungen übereinstimmen, halte ich für
größer als die Gefahr, daß zufällig zwei verschiedene Interpreter mit
vollständig identischen Pfadnamen installiert werden. Denn Endungen
werden aus Gründen der usability kurz gehalten - Programmnamen können
beliebig lang sein (inzwischen ja sogar länger als 8 Zeichen ... ;-).

Viele Grüße
      Michael