Zum Inhalt springen

Diskussion:Job Control Language

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 19. April 2024 um 16:37 Uhr durch Invisigoth67 (Diskussion | Beiträge) (Neuer Abschnitt Jobsteuersprache ≠ Programmiersprache). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 11 Monaten von Invisigoth67 in Abschnitt Jobsteuersprache ≠ Programmiersprache

Skriptsprache

Hallo,
ich bin der Meinung, dass die JCL nicht zu den Skriptsprachen zählt.
Skriptsprachen werden als Programmiersprachen angesehen. Die JCL ist eine Folge von Informationen und Steueranweisungen an das Betriebssystem.
(s. a. G. D. Brown zOS/JCL Kapitel 1.2)
--McMlxx 11:49, 6. Okt. 2011 (CEST)Beantworten

Hallo McMlxx, wenn dem nachweisbar so ist, dann nimm es meinetwegen raus (bitte mit Nachweis). Ich habe mich am hiesigen Artikel Scriptsprache orientiert. Gehört denn die für die MS-DOS-Batchdateien benutzte Sprache nicht auch zu den Scriptsprachen? Letztendlich ist im weiteren Sinn ja ein Script auch ein Programm (gespeicherte Abfolge von Funktionsaufrufen), und die Jobs im Großrechnerbereich wie auch die DOS-Batchdateien (womit ich früher gern gearbeitet habe), sehe ich als solche an. Ich bin alter EDV-Praktiker und mit den möglichen Feinheiten von Begriffsbestimmungen der Informatik nicht unbedingt vertraut. Wenn du (oder jemand anderes) die Frage "wissenschaftlich präzise" beantworten kann, nur zu! Ich bin nicht so eitel, dass ich nicht gern "noch" schlauer werden möchte. Herzliche Grüße! --Remirus 14:10, 6. Okt. 2011 (CEST)Beantworten
  1. Diese Diskussion ist müßig, da es keine exakte Definition von „Skriptsprache“ gibt. Es gibt lediglich pragmatische Einordnungen, die letztlich willkürlich einbeziehen oder nach oben oder unten ausgrenzen.
  2. Der Begriff und das Verständnis, was darunter fallen sollte, hat sich in den Jahrzehnten der sich laufend wandelnden Informationstechnik auch immer mal wieder geändert. Das gilt genauso für die Begriffe „Textverarbeitung“, „CAD“, „DTP“, „Künstliche Intelligenz“ und viele andere.
  3. Eine Skriptsprache hat wohl eine ähnliche Bedeutung wie die genauso schwammig umrissene „Makrosprache“. Unter einer Skriptsprache versteht man allgemein erst mal eine Abfolge von Kommandos an ein Softwareprodukt, die aufgezeichnet werden können und später wiederholt als ein Kommandostapel (Skript) ausgeführt werden können. Das wird dann oft mit Parametern $1, $2 oder %1% und %2% oder $EINGABEDATEI flexibler gemacht, und es gibt über die nackte Abfolge von Kommandozeilen hinaus Steueranweisungen FOR oder WHILE und IF. Das gesteuerte Softwareprodukt kann ein Grafikprogramm sein, oder ein Betriebssystem, oder Werkzeugmaschinen werden bedient.
  4. Manche ursprünglich nur interpretierbare Sprache als stereotype Abfolge von Kommandozeilen ist in der weiteren Entwicklung auch kompilierbar geworden, etwa VBA oder Python. Die diversen Shell-Skripte sind auch nichts anderes als „Steueranweisungen an das Betriebssystem“.
  5. Als Abfolge von Kommandos fällt JCL zweifelsfrei unter „Skriptsprache“. Trotz des biblischen Alters (1964) sind offenbar auch Elemente „höherer“ Programmiersprachen wie PROC...PEND und IF-THEN-ELSE vorhanden, an Variablen mindestens die erwähnten Return-Codes.
VG --PerfektesChaos 18:51, 6. Okt. 2011 (CEST)Beantworten
Hallo zusammen,
wenn man Skriptsprache als eine Folge von Befehlen an ein übergeordnetes System sieht, dann ist die JCL eine Skriptsprache.
JCL ist aber keine Programmiersprache, denn es fehlen wesentliche Bestandteile wie Modularisierung und Schleifenbildung. Ein Rückbezug innerhalb eines Jobs ist möglich (IF-THEN-ELSE), aber kein Rücksprung im Sinne von: mach-das-nochmal. Ein Job kann auch keinen anderen Job aufrufen.
Da ich als Wiki-Neuling nicht sofort den Artikel ändern wollte, hab ich es erst mal über die Diskussionsseite angesprochen. Ich denke, wenn man den Artikel in „und ist eine Art Skriptsprache“ ändert, ist der Sache am meisten gedient.
Grüße --McMlxx 07:17, 7. Okt. 2011 (CEST)Beantworten
  • Wie oben schon gesagt: Es gibt keinerlei Definition, was eine Skriptsprache ist; somit auch nicht, was „wesentliche Bestandteile“ dafür sein müssen.
    • Modularisierung und Schleifenbildung sind nett; Schleifen wären in der Tat schön gewesen. Modularisierung ließe sich offenbar über PROC...PEND bilden.
    • Das Ganze ist ein Kind der 1960er Jahre und der damaligen Möglichkeiten. Im Sinn des 20. Jahrhunderts ist es zweifelsfrei eine Skriptsprache; wenn jemand aus Sicht des 21. Jahrhunderts für sich persönlich postuliert, dass nur noch bei Ausstattung mit objektorientierten Sprachelementen das Prädikat „Skriptsprache“ vergeben wird, bleibt das jedem unbenommen.
    • Der Artikel Skriptsprache geht mit der Problematik vorbildlich um; wo präzise Definitionen nicht existieren, kann die WP solche nicht vortäuschen und formuliert: „verzichten oft auf“, „Häufig vorhandene Merkmale“, usw. Historisch richtig heißt es: „Wurden Skriptsprachen anfangs nur für kleinere Automatisierungen verwendet“ … und die 1960er sind gerade diese Anfangsphase. Die Leute mit den Lochkarten waren froh, dass sie nicht für jeden ähnlichen Lauf denselben Stapel an Lochkarten zusammensortieren mussten, sondern eine vorbereitete und sich selbsttätig „intelligent“ an wechselnde Rahmenbedingungen anpassende Prozedur mit nur einer Lochkarte abgerufen werden konnte.
  • Da das Themenfeld von „Skriptsprache“ bis „interpretierte Programmiersprache“ bis „richtige Programmiersprache“ völlig schwammig ist, und control language der in den 1960er Jahren gebräuchliche Begriff für genau das ist, was bei Unix bald darauf script language hieß, gewinnt der Artikel nichts durch das vorgeschlagene „eine Art“. Eher schon durch einen Zeitbezug; jeder Großrechner der damaligen Zeit musste notgedrungen eine derartige Sprache anbieten.
  • Wie ich eingangs meiner ersten Bemerkung schon formulierte: Diese Diskussion ist müßig.
  • Gleichwohl ist es gut und empfehlenswert, dass die Frage zunächst in der Diskussion thematisiert wurde, statt sofort den Artikel inhaltlich zu ändern.
Beste Grüße --PerfektesChaos 09:24, 7. Okt. 2011 (CEST)Beantworten
Hallo zusammen, mein Fazit aus dieser kleinen, aber interessanten Diskussion ist nach wie vor, dass meine Aussage eher richtig als falsch war. Ich schlage daher vor, dass sie bis zum eindeutigen Beweis des Gegenteils (z. B. Beleg aus einschlägiger Fachliteratur) stehen bleibt. Herzliche Grüße! --Remirus 17:36, 7. Okt. 2011 (CEST)Beantworten
Hallo,
aus G. D. Brown zOS/JCL Job Control Language im Betriebssystem z/OS MVS, 4. Auflage, Kapitel 1.2, Seite 3:
"1.2 Die Rolle der JCL
Mit Hilfe der JCL werden nicht etwa Computer-Programme geschrieben. Vielmehr besteht die JCL aus Statements (Steuerungsanweisungen), die dem Betriebssystem eine Arbeit - einen Job - bekanntmachen. Abrechnungsinformationen beteitstellen, die Arbeitsweise des Betriebssystems steuern, Hardware-Einheiten anfordern und schließlich den Job zur Ausführung bringen. Die JCL hat dem Betriebssytem jedes Deteil mitzuteilen, das es bezüglich der Durchführung der Ein- und Ausgabedaten wissen muß. Oberhalb der JCL gibt es typischerweise ein Job Entry Subsystem (JES) mit einer dazugehörenden Sprache.... IBM stellt im z/OS zwei Job Entry Subsyteme zur Verfügung: JES2 ... und JES3... JCL und JES gehören zusammen, und so werden sie in diesem Buch beschrieben.
Daraus folgt für mich:
- die JCL gibt es nur im Mainframe-Bereich (z/OS)
- Skripte sind eher im Server- bzw. PC-Bereich zu finden. (z. B. Shell-Skript im Unix-Bereich ode BAT.Dateien beim PC)
- eine Skriptsprache aus dem z/OS-Umfeld ist REXX
- JCL und Skripte sind vielleicht vergleichbar aber nicht das gleiche.
mit freundlichen Grüßen --McMlxx 11:02, 13. Okt. 2011 (CEST)Beantworten
Hallo McMlxx, du hast geschrieben: Skripte sind eher im Server- bzw. PC-Bereich zu finden. und JCL und Skripte sind vielleicht vergleichbar aber nicht das gleiche. Aus deinem Zitat lese ich diese Aussagen aber nicht heraus. Damit bleibt für mich die Frage nach wie vor offen. Herzliche Grüße! --Remirus 09:31, 14. Okt. 2011 (CEST)Beantworten
  1. Diese Diskussion ist müßig.
    • Da es keine exakte oder gar allgemeingültige Definition von „Skriptsprache“ gibt, kannst du (McMlxx) für dich persönlich einsortieren was immer du magst.
    • Die eingangs dieses Thread von dir gemachte Aussage „Skriptsprachen werden als Programmiersprachen angesehen“ im davon abgrenzendem Kontext „JCL ist eine Folge von Informationen und Steueranweisungen an das Betriebssystem“ nennt man in dieser Welt TF. In dieser Exklusivität würde sie nur die nicht-anwendungsbezogenen Sprachen der Generation des 21. Jahrhunderts nahelegen; wobei die Definitionsfrage offen bleibt, was genau in diesem Sinn eine „Programmiersprache“ sein möge und warum die Sprachen des 20. Jahrhunderts nicht darunter fallen sollen. Notwendig ist lediglich „formale Sprache“, JCL erfüllt die unter Imperative Programmierung genannten Bedingungen. Jede Skriptsprache ist zunächst Interpretersprache, JCL aber auch.
  2. In den 1960ern gab es nur Control Languages und bekanntermaßen nur Mainframes.
    • Die 1970er brachten den Ausdruck scripting language in Unix und meinten damit das Gleiche: Auf Benutzerebene vordefinierbare Abfolge von Betriebssystemkommandos.
    • In den 1980ern brachte MS-DOS mit den .BAT das Gleiche zu den nun verfügbaren PC. (.BAT: batch, Stapelverarbeitungsdatei, "batch job" – klingelt’s?)
    • War Unix logischerweise zunächst für Mainframes gedacht, ist es bekanntlich als Linux auch auf PC verfügbar. Wenn jemand mag, könnte er JCL auch auf PC emulieren.
  3. Die wiederholbare Abfolge von Betriebssystemkommandos ist bereits ein Skript („Stapelverarbeitung“).
    • Wenn dies nur ein konstanter Stapel an Befehlen ist, hatte man das auch "Makro" genannt. (Ebenfalls kein präziser Begriff.) Auch die stereotype Ausführung von einem Dutzend Einzelbefehle ist bereits eine Arbeitserleichterung – dies durch ein einzelnes und ausgetestetes Kommando zu ersetzen.
    • Sobald ein zusätzliches Syntaxelement hinzukommt, das selbst kein Betriebssystemkommando ist, wird daraus eine eigenständige „Sprache“. Das können sein:
      1. Parameter, denen wechselnde Werte zugewiesen werden können und die mit ihrem aktuellen Inhalt zu verwenden sind.
      2. Steuerungselemente innerhalb des Skripts, wie IF oder FOR, WHILE usw., auch GOTO.
    • Die zusätzlichen Syntaxelemente werden bei der Ausführung durch Interpreter herausgefiltert und resultieren in einer Abfolge ausführbarer Betriebssystemkommandos, die nach der Interpretation auch keine Parameter mehr enthalten. Die Abfolge richtet sich ggf. „intelligent“ nach dem jeweiligen Systemzustand und Aufrufparametern. Die notwendige Zwischenschaltung des Interpreters macht daraus eine „interpretierbare Programmiersprache“.
  4. Es ist eine Trivialaussage, dass in den 1960ern eine Sprache weniger mächtig war als 2000.
    • Die Komplexität der Software, die Leistungsfähigkeit der Systemsoftware und die Anforderungen an Bediensicherheit wie Benutzerkomfort stiegen mit den Jahrzehnten genau wie die Möglichkeiten der Hardware.
    • Neben JCL gab es auch für die Anlagen von Control Data auch CCL (hier ein Inhaltsverzeichnis – viel mehr gibt es nicht im Web) – in dieser Sprache hatte ich mal einige 1000 Zeilen geschrieben; aushilfsweise auch mal einige Zeilen in JCL.
    • Vor dem von dir genannten REXX gab es EXEC 2 (auch in EXEC 2 schrieb ich schon, eine eher magere Angelegenheit). Letzere beschreibt der zitierte Artikel zutreffend als „nicht sehr mächtig“. Das ist halt so, dass die Sprachen mit den Jahrzehnten immer mächtiger wurden, also immer mehr eigene Syntaxelemente enthalten – das sind aber nur graduelle Unterschiede, keine prinzipiellen.
  5. Die „Skriptsprachen“ lassen sich in drei Bereiche gliedern:
    1. Betriebssystemkommandos, die historisch älteste Aufgabe
    2. Anwendungsprogramme, beispielsweise Grafik oder Textverarbeitung (ich fand bei der Suche nach CCL zufällig auch cybercontrol)
    3. Loslösung von konkreten Problemen, etwa Python, Perl, VBA in der modernen Welt.

HGZH --PerfektesChaos 01:09, 16. Okt. 2011 (CEST)Beantworten

Jobsteuersprache ≠ Programmiersprache

Bezüglich der "Meinung" des Projektleiters: Ungeachtet dessen, ob dieser JCL als beste, mittelmäßige oder schlechteste Programmiersprache bezeichnet, ist eine derartige Einordnung per se unzutreffend, da JCL nun mal keine Programmiersprache ist und somit schon die Prämisse falsch ist. Gruß --Invisigoth67 (Disk.) 16:37, 19. Apr. 2024 (CEST)Beantworten