trigraph ??! ignored, use -trigraphs to enable [-Wtrigraphs]
Commpiler: GCC 4.8.3, -std=gnu99 -Wall -Wextra
Soweit ich durch kurzes bemuehen der suchmaschine meines vertrauens
herausfinden konnte, gibt es da irgendwie 9 Sequenzen, die durch den
Praeprozessor ersetzt werden.
1
The nine trigraphs and their replacements are
2
3
Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
4
Replacement: [ ] { } # \ ^ | ~
mit dem Flag -std=c99 kommt die Warnung:
1
trigraph ??! converted to | [-Wtrigraphs]
Was hat es jetzt aber genau damit auf sich?
Warum gibt es diese Sequenzen, und fuer was benutzt man diese?
Gruesse
Kaj schrieb:> Warum gibt es diese Sequenzen, und fuer was benutzt man diese?
Hostorische Ursachen.
Such mal auf einem Fernschreiber von 1960 die Zeichen '{' bzw. all die
anderen auf der Tastatur.
Als Computer noch klimatisierte Räume füllten, von Menschen in weißen
Kitteln bedient wurden und mehr gekostet haben als das Budget einer
Kleinstadt im Jahr ausmacht, hat man genommen was da war. Fernschreiber
als Ein-/Ausgabeeinheit waren verfügbar und mit ihnen kriegte man auf
einfache Art und Weise eine Tastatur und ein Druckwerk 'von der Stange',
ohne dass die Computerschmieden für die 5 Computer, die sie im Jahr
verkauft haben auch noch hier feinmechanische Sonderanfertigungen machen
mussten.
Diese wurden eingeführt, damit man auch auf Rechnern, die einen
eingeschränkten Zeichensatz besitzen (z.B. kein "}") C++ programme
schreiben kann. Füge einfach -Wno-trigraphs in Deinen Compileraufruf ein
und mach Dir darüber keine Gedanken mehr ;-) Das ist noch ein
Überbleibsel aus der Zeit als es noch 6 und 7-Bit Terminals gab. Es gibt
auch noch Digraphs.
Florian S. schrieb:> C++ programme schreiben kann
Zu dem Zeitpunkt, als C++ ins Leben gerufen worden ist, dürften
Trigraphs bereits ziemlich bedeutungslos gewesen sein.
Kaj schrieb:> strcmp("???!!!"
Generell sollte man sich natürlich überlegen, welchen Sinn eine
derartige Anhäufung von Interpunktionen hat.
Jörg Wunsch schrieb:> Kaj schrieb:>> strcmp("???!!!">> Generell sollte man sich natürlich überlegen, welchen Sinn eine> derartige Anhäufung von Interpunktionen hat.
Das stimmt natuerlich, ohne frage. Mir ist zu dem Zeitpunkt aber kein
besserer Test-String eingefallen ^^
Das diese wilde, unsinnige zeichenfolge jedoch eine (wenn auch
historische) bedeutung haben koennte,... naja, wer soll denn auf sowas
kommen? :)
Wir sind hier ja schliesslich nicht bei wuensch-dir-was ;)
Ansonsten:
Vielen Dank fuer eure Antworten. :)
Gruesse
Schon witzig, dass jemand durch reinen Zufall auf die Trigraphs stößt
:-)
Karl Heinz schrieb:> Such mal auf einem Fernschreiber von 1960 die Zeichen '{' bzw. all die> anderen auf der Tastatur.
So weit muss man gar nicht zurückgehen: Noch in der zweiten Hälfte der
80er Jahre arbeitete ich an IBM 3270 Terminals, denen einige der in C
benötigten Sonderzeichen (insbesondere die eckigen und geschweiften
Klammern) fehlten. Normalerweise programmierte ich dort ausschließlich
in Fortran, wo das nicht stört. Als ich aber eines Tages mein frisch
gelerntes C ausprobieren wollte, wusste ich wenigstens sofort, wozu der
Trigraphs-Abschnitt im K&R gut war ;-)
Yalu X. schrieb:> IBM 3270 Terminals
Wenn es nicht jemand mit derartiger Marktmacht gewesen wäre (erinnert
sich noch jemand an diese Firma? ;-), dann hätten die Dinger vermutlich
auch nie Einzug in irgendeinen Standard gehalten.
Jörg Wunsch schrieb:> Florian S. schrieb:>> C++ programme schreiben kann>> Zu dem Zeitpunkt, als C++ ins Leben gerufen worden ist, dürften> Trigraphs bereits ziemlich bedeutungslos gewesen sein.
Das ist richtig, ich meinte auch C.
Muß hier (Arbeit) andauernd zwischen C und C++ wechseln, da kommt man
schon mal durcheinander. ;-)
Jörg Wunsch schrieb:> Wenn es nicht jemand mit derartiger Marktmacht gewesen wäre (erinnert> sich noch jemand an diese Firma? ;-), dann hätten die Dinger vermutlich> auch nie Einzug in irgendeinen Standard gehalten.
Ja, IBM war lange Zeit die Computerfirma, die für sehr vieles in der
Computerindustrie die Richtung vorgab. Mittlerweile habe sie diesen
Status verloren und niemand interessiert sich heute mehr für die damals
gesetzten De-facto-Standards.
Wirklich niemand?
Nicht ganz: IBM selbst hält immer noch eisernst an ihren damaligen
Standards fest.
So gibt es bspw. die EBCDIC-Zeichencodierung, der ursprünglich die
eckigen und geschweiften Klammern fehlten, auf den aktuellen Mainframes
(System z mit dem Betriebssystem z/OS) immer noch, konkurriert aber
immer mehr mit dem in anderen IBM-Produkten verwendeten ASCII-Code:
http://www-03.ibm.com/systems/z/os/zos/features/unix/bpxa1p03.html
Die fehlenden Klammern sind zwar mittlerweile in Form von Codepages in
die Zeichencodierung integriert, liegen aber je nach Codepage an völlig
unterschiedlichen Positionen:
http://de.wikipedia.org/wiki/Extended_Binary_Coded_Decimals_Interchange_Code
Selbst für C-Quellcode, der nur auf einer einzigen Architektur (nämlich
IBM System z) unter nur einem einzigen Betriebssystem (nämlich z/OS)
genutzt werden soll, kann es wegen der unterschiedlichen Codepages also
ratsam zu sein, Trigraphs zu verwenden.
Jörg Wunsch schrieb:> Zu dem Zeitpunkt, als C++ ins Leben gerufen worden ist, dürften> Trigraphs bereits ziemlich bedeutungslos gewesen sein.
Da ist IBM aber ganz anderer Meinung :-o
Im ISO-Gremium für C++ wurde schon darüber diskutiert, die Triqraphs
allmählich abzuschaffen. Hier ist der "Comment on Proposed Trigraph
Deprecation" von IBM Kanada im C++-Standard.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2910.pdf
Wenn ich das so lese, bekomme ich fast ein schlechtes Gewissen darüber,
dass ich selber (wohl als einziger auf der ganzen Welt) keine
Trigraphs benutze ;-)
Yalu X. schrieb:> Wenn ich das so lese, bekomme ich fast ein schlechtes Gewissen darüber,> dass ich selber (wohl als einziger auf der ganzen Welt) keine> Trigraphs benutze ;-)
Ja. Ich frage mich, wie du deinen Code dann jemals IBM in einer
codepage-neutralen EBCDIC-Variante anbieten können willst. :-))
Daniel A. schrieb:> Beim C-String "???!!" Muss jedes fragezeichen escaped werden: "\?\?\?!!"
Es genügt auch, "??" "?!!!" zu schreiben. Funktioniert allerdings
nicht innerhalb von #include, also sollte man besser keine Dateinamen
mit zwei Fragezeichen starten lassen. ;-)
Michael Reinelt schrieb:> Und jetzt soll mir noch einmal einer kommen und über die Syntax von Perl> motzen!
Tja, wäre Perl (oder Python) bei IBM entstanden, dann hätten sie
bestimmt auch Trigraphs. :-)
Witzigerweise kommt von IBM auch die Sprache APL, deren Syntax Unmengen
von Sonderzeichen enthält, die weder in ASCII noch in EBCDIC vorhanden
sind. Da waren sie sich nicht zu schade, nicht nur eine eigene Codepage
in EBCDIC zu schaffen, sondern sogar spezielle Tastaturen zu bauen:
http://en.wikipedia.org/wiki/APL_%28codepage%29
Das ist ja der Knaller, was man hier so fuer Geschichten zu lesen
bekommt. Hut ab, fuer alle, die sich noch an sowas erinnern :) Finde ich
super spannend.
Yalu X. schrieb:> Es ist aber natürlich auch kein Fehler, alle drei Fragezeichen zu> escapen. Das sieht dann bei IBM so aus:> "??/???/???/?!!!">> ;-)
So muss BrainF**k entstanden sein, anders kann ich mir das nicht
erklaeren :D
http://de.wikipedia.org/wiki/BrainfuckYalu X. schrieb:> Witzigerweise kommt von IBM auch die Sprache APL, deren Syntax Unmengen> von Sonderzeichen enthält, die weder in ASCII noch in EBCDIC vorhanden> sind. Da waren sie sich nicht zu schade, nicht nur eine eigene Codepage> in EBCDIC zu schaffen, sondern sogar spezielle Tastaturen zu bauen:>> http://en.wikipedia.org/wiki/APL_%28codepage%29
Weiss jemand was die bei IBM geraucht haben? Muss echt super sein das
Zeug :D
Jörg Wunsch schrieb:> (erinnert sich noch jemand an diese Firma? ;-)
Mir ist IBM eigentlich nur wegen der ThinkPads ein begriff.
IBM scheint da ja aber so einiges verbrochen zu haben, nicht nur gutes
(wie die ThinkPads).
Kaj schrieb:> Weiss jemand was die bei IBM geraucht haben? Muss echt super sein das> Zeug :D
Gibt schön kompakte Programme. Die in wenigen Zeilen erledigen, wozu
COBOL ein Buch füllt. Um mal in die Extreme zu gehen. Solche Programme
zu lesen ist jedoch eine ganz eigene Erfahrung. ;-)
Kannst du dich noch vage an mathematische oder physikalische Formeln
erinnern? In denen mittlerweile wohl auch Zeichen aus babylonischer
Keilschrift genutzt werden, nachdem die griechischen längst aufgebraucht
sind. Daher kommt das. APL ist näher an der Mathematik, als jede andere
Sprache.
Meinereiner hat an einer APL Kugelkopfschreibmaschine programmieren
gelernt. Da programmiert man im Kopf, nicht auf dem Bildschirm.
Kaj schrieb:> Mir ist IBM eigentlich nur wegen der ThinkPads ein begriff.> IBM scheint da ja aber so einiges verbrochen zu haben, nicht nur gutes> (wie die ThinkPads).
Wenn du mal so richtig das Kopfwackeln mit anschließendem freiwilligen
Aufschlagen des Kopfes auf den Tisch üben willst, sieh dir z.B. die
Technik an, mit der IBM Terminals anbindet (IBM 3270), oder
Plattenspeicher.
Auf der anderen Seite, IBMs Maschinen zur Lochkartenerstellung (IBM 029)
und -verarbeitung (Sortierer, etc.) sind beeindruckend.
Jörg Wunsch schrieb:> also sollte man besser keine Dateinamen> mit zwei Fragezeichen starten lassen. ;-)
Das hab ich gerade mal versucht: Ist gar nicht so einfach, da windows so
ohne weiteres keine Sonderzeichen wie ?,!, usw. im Dateinamen zulaesst.
Unter Linux geht das schon eher, aber auch da gibt es ein paar kleinere
hindernisse mit Sonderzeichen im Dateinamen :D
Hannes Jaeger schrieb:> Wenn du mal so richtig das Kopfwackeln mit anschließendem freiwilligen> Aufschlagen des Kopfes auf den Tisch üben willst, sieh dir z.B. die> Technik an, mit der IBM Terminals anbindet (IBM 3270), oder> Plattenspeicher.
Werd ich mir gleich mal anschauen :)
Kaj schrieb:> Jörg Wunsch schrieb:>> (erinnert sich noch jemand an diese Firma? ;-)> Mir ist IBM eigentlich nur wegen der ThinkPads ein begriff.
In der breiten Öffentlichkeit wurde IBM vor allem durch den IBM PC, den
Urvater aller heutigen Desktop-PC mit x86-Prozessor:
http://de.wikipedia.org/wiki/IBM_Personal_Computer
Ohne diesen wären heute sowohl Intel als auch Microsoft vermutlich nur
kleine Lichter oder überhaupt nicht mehr existent.
Hannes Jaeger schrieb:> Wenn du mal so richtig das Kopfwackeln mit anschließendem freiwilligen> Aufschlagen des Kopfes auf den Tisch üben willst, sieh dir z.B. die> Technik an, mit der IBM Terminals anbindet (IBM 3270), oder> Plattenspeicher.
Die Technik der Terminals und die Kommunikationsprotokolle waren
eigentlich gar nicht so blöd, nur eben IBM-spezifisch und anders als der
Rest der Welt :)
Sie waren darauf ausgelegt, von einem einzelnen, für heutige
Verhältnisse schwachbrüstigen Mainframe über eine ganz langsame
Datenverbindung Hunderte oder gar Tausende Terminals (und damit Nutzer)
zu bedienen. Das wurde u.a. durch recht viel Intelligenz in den
Terminals selbst erreicht. So konnte der Nutzer bspw. lokal (ohne
Interaktion mit dem Mainframe und damit verzögerungsfrei) eine komplette
Eingabemaske ausfüllen. Es wurden immer nur ganze Bildschirminhalte in
einem Block übertragen und davon auch nur diejenigen Teile, die
tatsächlich verändert wurden.
Bei zeichenorientierten Terminals wie bspw. dem VT100 von DEC wurde
hingegen jeder Tastendruck und jedes auf dem Bildschirm ausgegebene
Zeichen einzeln kommuniziert. Das führte bei hoher Rechen- und
Kommunikationslast dazu, dass die getippten Zeichen auf dem Bildschirm
stark zeitverzögert erschienen, wodurch ein flüssiger Arbeitsstil
verhindert wurde.
Kaj schrieb:> Das hab ich gerade mal versucht: Ist gar nicht so einfach, da windows so> ohne weiteres keine Sonderzeichen wie ?,!, usw. im Dateinamen zulaesst.> Unter Linux geht das schon eher, aber auch da gibt es ein paar kleinere> hindernisse mit Sonderzeichen im Dateinamen :D
Unter Windows sind in Dateinamen Steuerzeichen und folgende
Sonderzeichen nicht erlaubt:
1
< > ? " : | \ / *
Zusätzlich sind die ganzen Gerätenamen wie COMx, LPTx usw. reserviert.
Unter Unix/Linux hingegen ist fast alles erlaubt. Nur der Slash '/' und
das NUL-Zeichen '\0' sind verboten. Die restlichen Steuerzeichen (bspw.
Tabs und Linefeeds) sind erlaubt, wenn auch nicht gerade ratsam.
Siehe
http://de.wikipedia.org/wiki/Dateiname
Yalu X. schrieb:> Unter Unix/Linux hingegen ist fast alles erlaubt. Nur der Slash '/' und> das NUL-Zeichen '\0' sind verboten. Die restlichen Steuerzeichen (bspw.> Tabs und Linefeeds) sind erlaubt, wenn auch nicht gerade ratsam.
zwar nicht ratsam, aber immer wieder lustig: mal schnell eine Datei '*'
erzeugen, und beobachten wie der Nutzer versucht die loszuwerden :-)
> zwar nicht ratsam, aber immer wieder lustig: mal schnell eine Datei '*'> erzeugen, und beobachten wie der Nutzer versucht die loszuwerden :-)
mit 'rm *' :-) Gut ist die Datei dann im home des Nutzers abzulegen und
ihm zu sagen das die Option -r am schnellsten geht.
Das spart dem Admin auch jede Menge Stress bei der Datensicherung...
Jörg Wunsch schrieb:> Michael Reinelt schrieb:>> mal schnell eine Datei '*' erzeugen, und beobachten wie der Nutzer>> versucht die loszuwerden> rm \*
Bei meinen ersten Unix-Gehversuchen ist es mir tatsächlich irgendwie
durch Zufall gelungen, eine Datei namens "*" anzulegen. Dass es unklug
war, diese einfach mit
1
rm *
zu löschen, war mir schon bewusst. Da ich noch nicht wusste, wie man die
Shell davon abhalten konnte, den Stern als Wildcard zu interpretieren,
fiel mir in meiner Verzweiflung schließlich nichts besseres ein, als ein
C-Programm mit einem
Yalu X. schrieb:> unlink("*");
man muss sich halt zu helfen wissen :-)
übrigens kommt das ^H^H^H das man ab und zu in Foren liest, auch noch
aus dieser Zeit.
Ich hatte mal das Vergnügen, unter HP-UX die Dateiablage eines
CAD-Systems und dessen "Datenbank" zu reparieren, da aufgrund eines
Fehlers Bei der Eingabe von Modellnamen Backspace zwar optisch das tut
was man am Bildschirm sah, tatsächlich aber die Tippfehler + Backspaces
+ Korrektur sowohl in den Dateinamen als auch in der Dtaenbank zu finden
waren. das war ein lustiger Job ;-)
Michael Reinelt schrieb:> Ich hatte mal das Vergnügen, unter HP-UX
Jaja, das letzte UNIX, das seinerzeit noch bei "stty sane" das Zeichen
"#" zum Löschen des zuletzt eingegebenen Zeichens und "@" zum Löschen
der Zeile als Voreinstellung produziert hat. ;-) Ich glaube, mit
Version 10.20 haben sie das dann endlich auf <DEL> und ^U umgestellt,
wie es der Rest der Welt bereits 10 Jahre lang praktiziert hat. Kurz
danach hat HP dann sein HP-UX fallenlassen ...
A. K. schrieb:> Kannst du dich noch vage an mathematische oder physikalische Formeln> erinnern? In denen mittlerweile wohl auch Zeichen aus babylonischer> Keilschrift genutzt werden, nachdem die griechischen längst aufgebraucht> sind. Daher kommt das. APL ist näher an der Mathematik, als jede andere> Sprache.
Ja. APL ist schon .. ähm ... geil. Meine einzige Berührung damit war ein
Praktikum an der Uni.
Irgendwo muss ich noch ein 'Manual' über die Symbole und ihre Funktion
haben. Das Manual hat die Größe einer Scheckkarte. :-)
Yalu X. schrieb:> Kaj schrieb:>> Jörg Wunsch schrieb:>>> (erinnert sich noch jemand an diese Firma? ;-)>> Mir ist IBM eigentlich nur wegen der ThinkPads ein begriff.>> In der breiten Öffentlichkeit wurde IBM vor allem durch den IBM PC, den> Urvater aller heutigen Desktop-PC mit x86-Prozessor:
Wohingegen vor allen Dingen die älteren Semester mit IBM unweigerlich
die legendäre S/370 verbinden. Unzählige Firmen vertrauten darauf.
Yalu X. schrieb:
Moin Moin,
> Jörg Wunsch schrieb:>> Michael Reinelt schrieb:>>> mal schnell eine Datei '*' erzeugen, und beobachten wie der Nutzer>>> versucht die loszuwerden>> rm \*>> Bei meinen ersten Unix-Gehversuchen ist es mir tatsächlich irgendwie> durch Zufall gelungen, eine Datei namens "*" anzulegen. Dass es unklug> war, diese einfach mit>>
1
> rm *
2
>
>> zu löschen, war mir schon bewusst. Da ich noch nicht wusste, wie man die> Shell davon abhalten konnte, den Stern als Wildcard zu interpretieren,> fiel mir in meiner Verzweiflung schließlich nichts besseres ein, als ein> C-Programm mit einem>>
1
>unlink("*");
2
>
>> zu schreiben. Immerhin hat's funktioniert :)
ich habe damals! als Einsteiger in Fällen wo ich absolut nicht
weiterwusste immer den "mc" gestartet. NortonCommander kannte
ich ja noch von früher :-)
Grüße,
Micha
Hannes Jaeger schrieb:> Wenn du mal so richtig das Kopfwackeln mit anschließendem freiwilligen> Aufschlagen des Kopfes auf den Tisch üben willst, sieh dir z.B. die> Technik an, mit der IBM Terminals anbindet (IBM 3270),
Meinst du die alte Koax-Technik? Überleg mal, wie alt die ist.
> oder Plattenspeicher.
Bus and Tag? Yep, wuchtige Konstruktion und Kabel wie Besenstiele.
Karl Heinz schrieb:> Ja. APL ist schon .. ähm ... geil. Meine einzige Berührung damit war ein> Praktikum an der Uni.
Mit hatte die Erfahrung aus der Schule immerhin am Anfang des Studiums
Ferienjobs in APL-Programmierung eingebracht.
A. K. schrieb:> Karl Heinz schrieb:>> Ja. APL ist schon .. ähm ... geil. Meine einzige Berührung damit war ein>> Praktikum an der Uni.>> Mit hatte die Erfahrung aus der Schule immerhin am Anfang des Studiums> Ferienjobs in APL-Programmierung eingebracht.
Echt? So etwas gabs tatsächlich industriell?
Ich hab das immer für eine Anekdote gehalten, dass irgendjemand das
tatsächlich einsetzt <Augenzwinker>.
Karl Heinz schrieb:> Echt? So etwas gabs tatsächlich industriell?
Ja. Das besagte Terminal hing ja nicht in der Luft, sondern ging per
Modem an einen Mainframe. Von dieser Firma mit den späteren Ferienjobs.
Das war so um 1979/80 herum. Schulen hatten noch keine PCs - aber die
Eleven hatten genug Eltern in ebendieser Firma.
Yalu X. schrieb:> Es hätte ja auch keiner gedacht, dass heute noch tatsächlich> irgendjemand Trigraphs verwendet ;-)
Ich kanns mir ehrlich gesagt immer noch nicht wirklich vorstellen.
Gehts nur mir so, oder finden andere die IBM-Position hier auch etwas
"Wir sind IBM, wir ändern unseren Compiler nicht, nur weil ihr
anachronistische Dinge aus dem Compiler draussen haben wollt. Und
basta!". Die Sache mit der Codepage überzeugt mich ehrlich gesagt nicht
wirklich. Detail am Rande: Im Paper ist die Rede davon, dass der
Compiler defaultmässig die Codepage IBM-1047 benutzen würde, nur um dann
im Code per Pragma auf die Codepage IBM-1047 (also dieselbe) zu
schalten. Ein Schelm wer böses dabei denkt.
Und das hier
1
Another example, the following code is portable across all EBCDIC
2
codepages:
3
4
int main ()
5
??<
6
int a = ??/
7
3;
8
return a;
9
??>
10
11
This seems to be a sound argument for NOT deprecating trigraphs,
Ich kann mir nicht helfen. Aber das wäre für mich ein 'sound argument'
um mir schleunigst eine anderes System zu suchen.
Beides weckt in mir eher das Gefühl, dass da jemand seiner alten
Marktmacht nachtrauert.
Karl Heinz schrieb:>> Mit hatte die Erfahrung aus der Schule immerhin am Anfang des Studiums>> Ferienjobs in APL-Programmierung eingebracht.>> Echt? So etwas gabs tatsächlich industriell?
Ein Kumpel von mir hat immerhin Ende der Neunziger tatsächlich einen
Ferienjob in Smalltalk gemacht.
A. K. schrieb:> Zu APL, man beachte bitte die FFT auf Seite 10:> http://fafner.dyndns.org/~vaxman/publications/apl.pdf
Wow! Ich dachte ich hätte in meinem nicht mehr ganz so kurzen Leben
schon viel gesehen. Dachte ich. Wurde soeben eines besseren belehrt.
Ich glaub das Statement auf Seite 11 bringt es auf den Punkt: "People
thinking of Perl as an unreadable language have obviously never seen any
APL code (yet)."
Aber das Ding ist ja voll von bemerkenswerten Zitaten: "real programmers
write microcode – Assembler is a high level language"
A. K. schrieb:> #define BEGIN ??<> #define END ??>> #define LP (> #define RP )> #define LB ??(> #define RB ??)> #define PTR *> #define LF "??/n"> #define GE >=>> int main LP int argc, char PTR PTR argv LBR RB RP> BEGIN> if LP argc GE 2 RP> BEGIN> printf LP "%s" LF, argv LB 1 RB RP;> END> END
Interessante Idee, gefällt mir :)
Michael Reinelt schrieb:> Ich glaub das Statement auf Seite 11 bringt es auf den Punkt: "People> thinking of Perl as an unreadable language have obviously never seen any> APL code (yet)."
Das Unterschreib ich sofort :D
Karl Heinz schrieb:> Yalu X. schrieb:>> Es hätte ja auch keiner gedacht, dass heute noch tatsächlich>> irgendjemand Trigraphs verwendet ;-)>> Ich kanns mir ehrlich gesagt immer noch nicht wirklich vorstellen.>> Gehts nur mir so, oder finden andere die IBM-Position hier auch etwas> "Wir sind IBM, wir ändern unseren Compiler nicht, nur weil ihr> anachronistische Dinge aus dem Compiler draussen haben wollt. Und> basta!".
Mit diesem Gefühl bist du nicht alleine.
trigraphs fallen für mich irgendwie in die Kategorie:
"How To Write Unmaintainable Code"
( https://www.thc.org/root/phun/unmaintain.html )
Wie gesagt wurde, hatten die Dinger mal einen Sinn, der heute aber mehr
als obsolet sein dürfte.
Oder anders formuliert:
Wer der Meinung ist, kein Eingabegrät mit entsprechenden Sonderzeichen
beistzen zu müssen, der sollte vielleicht überlegen, ob er im Jahr 2014
im PC-/Software-Geschäft noch richtig ist.
Ist ja so, als wenn mir ne KFZ-Werkstatt erzählt, die brauchen keine
Schraubenschlüssel, weil es ja Engländer, Kombi-, Rohrzangen und sonst
was gibt...
Aber ok, soweit meine Meinung zu dem IBM-Statement. :)
Je mehr ich hier lese, desto trauriger werde ich fast, dass ich all
diese Geschichten nicht live und in Farbe erleben durfte :D
A. K. schrieb:> Hannes Jaeger schrieb:>> Wenn du mal so richtig das Kopfwackeln mit anschließendem freiwilligen>> Aufschlagen des Kopfes auf den Tisch üben willst, sieh dir z.B. die>> Technik an, mit der IBM Terminals anbindet (IBM 3270),>> Meinst du die alte Koax-Technik? Überleg mal, wie alt die ist.
Mit Koax fing es glaube ich an. Ich weiß nicht mehr wie alt der Scheiß
ist. Danach wurde es nicht besser, nur anders. IBM hat ja ständig
nachgelegt.
Alles für ursprünglich mal um die 40x15(?) Zeichen (so genau weiß ich
das nicht mehr) und etwas später 80x24 Zeichen. Ähnlich wie später beim
PC wuchs auch die Anzahl der Funktion-Keys mit jeder Generation, bis
niemand sich mehr traute überhaupt eine Taste zu drücken.
>>> oder Plattenspeicher.>> Bus and Tag? Yep, wuchtige Konstruktion und Kabel wie Besenstiele.
Mit Steckern für echte Männerhände :-)
Kaj schrieb:> Je mehr ich hier lese, desto trauriger werde ich fast, dass ich all> diese Geschichten nicht live und in Farbe erleben durfte :D
Keine Panik. Eure Generation hat auch einen Haufen Hundekacke am Schuh
kleben, ihr wisst es nur noch nicht :-) Zum Beispiel alle Nase lang eine
neue Programmiersprache, bei der jemand seinen Individualismus durch das
Ausleben diverser Hirnfürze demonstrieren musste.
Wir alten Säcke stöhnen dann mal wieder auf ob des üblen Gestanks und
winken ab.
Hannes Jaeger schrieb:>> Meinst du die alte Koax-Technik? Überleg mal, wie alt die ist.>> Mit Koax fing es glaube ich an. Ich weiß nicht mehr wie alt der Scheiß> ist.
1971.
> Danach wurde es nicht besser, nur anders.
Welche damals verfügbare Variante war besser?
Der Blockmode der 3270 Terminals ging mit Ressourcen von
Mehrbenutzer-Rechnern wesentlich sparsamer um, als die
zeichenorientierte serielle Übertragung von beispielsweise der DEC VAX.
Wenn man mit echten Bildschirmanwendungen arbeitete, also beispielsweise
Editor oder Buchhaltungskram, nicht mit einer Kommandozeile (*).
Denn der Aufwand der Interaktion blieb weitgehend im Terminal oder einer
Steuereinheit. Der Mainframe wurde erst behelligt, wenn man den ganzen
Schirm abschickte - nicht zuletzt dafür waren die Funktionstasten gut.
Bei dieser formularorientierten Arbeitsweise toleriert man weit höhere
Latenzen als bei zeichenweiser Interaktion. Der Rechner konnte so weit
mehr Anwender gleichzeitig verkraften.
*: Selbst dann. Denn solange ein früheres Kommando noch auf dem
Bildschirm stand konnte man direkt darauf zurückgreifen und es ändern,
ohne dass der Mainframe durch die Interaktion gestört wurde. In Unix
hatte man damals bestenfalls Kommandozeilen-Editoren wie sie für
Fernschreiber entwickelt wurden, wie die History-Referenzen der C-Shell.
A. K. schrieb:> Denn der Aufwand der Interaktion blieb weitgehend im Terminal oder einer> Steuereinheit. Der Mainframe wurde erst behelligt, wenn man den ganzen> Schirm abschickte - nicht zuletzt dafür waren die Funktionstasten gut.
Ich erinnere mich noch, dass auf den IBM Terminals es links und rechts
von 'Space' die Tasten 'Enter' und 'Return' gab. Die eine machte einen
Zeilenvorschub (im Formular dann eben den Wechsel ins nächste Feld) und
die andere schickte die Maske ab.
Bei Siemens hiessen die beiden Tasten dann 'DÜM' und 'DÜZ'.
Auf der Uni gabs sogar ein Praktikum für die Maskenprogrammierung,
soweit ich mich erinnere. Aber abgesehen davon machte das bei uns nicht
viel Sinn, da wir auf dem 370-er Nachbau(*) (den die Uni von einer
Sparkasse geschenkt bekommen hat, der hatte ganze 4 oder 8 MB
Hauptspeicher (weiss nicht mehr so genau) und ein paar 100MB
Plattenkapazität) ein Timersharing System einsetzen (GUTS == Gothenburg
University Timesharing System), welches das alles mehr oder weniger
obsolet machte. Abgearbeitet wurden die Jobs allerdings nach wie vor
über die Batch-Job-Queue, allerdings mit hoher Priorität. Das heisst,
solange man keinen Fehler in der JCL-Description hatte :-)
(*) oder wars eine 360-er? Ist alles schon so lange her und mein
Gedächtnis ist auch nicht mehr so toll. Auf jeden Fall waren es
beeindruckende Schränke im Rechenzentrum, in das wir als Frischlinge auf
der Uni mal rein durften.
Karl Heinz schrieb:> Ich erinnere mich noch, dass auf den IBM Terminals es links und rechts> von 'Space' die Tasten 'Enter' und 'Return' gab.
Ich kenn das noch als "Datenfreigabe"
Hannes Jaeger schrieb:>> Bus and Tag? Yep, wuchtige Konstruktion und Kabel wie Besenstiele.>> Mit Steckern für echte Männerhände :-)
Und Tastaturen am Terminal im Blechgehäuse, die einen Druckpunkt hatten
für den man vorher 2 Wochen Finger-Fitness-Training brauchte :-)
Dafür konnte man sie allerdings auch mit einem Hammer malträtieren, ohne
das was zu Bruch ging.
Michael Reinelt schrieb:> Karl Heinz schrieb:>> Ich erinnere mich noch, dass auf den IBM Terminals es links und rechts>> von 'Space' die Tasten 'Enter' und 'Return' gab.>> Ich kenn das noch als "Datenfreigabe"
Lass mich nachdenken. Wir hatten englische Terminals, also Z in der
unteren Reihe. "Datenfreigabe" stand da sicher nicht drauf, aber ich
denke du hast recht. Kann es sein, dass die mit "Data" oder so ähnlich
beschriftet waren?
Karl Heinz schrieb:> Kann es sein, dass die mit "Data" oder so ähnlich> beschriftet waren?
Ich hatte nur deutsche, und so wirklich erinnern kann ich mich nur mehr
an die zwei Reihen Funktionstasten (F1..F24?)
Es könnte sein dass in Deutsch "DFRG" draufstand. Das System war eine
AS/400, Twinax.
Bronco schrieb:> "This has APL earned the notation of being a write only language.">> Ich schmeiss mich weg!
Aber recht hat der Typ ja, der dieses PDF gemacht hat ;)