Aloha ;)
Du weigerst dich offensichtlich, anzuerkennen, dass in diesen paar Zeichen mehr ein ganzer Haufen Konzepte versteckt ist
Im Gegenteil. Ich erkenne das durchaus an. Mein Punkt ist ja gerade, dass der Haufen Konzepte an der Stelle auch versteckt bleiben soll.
und es kann irgendwie nicht unser Ziel sein, Anfänger (auch nicht im ersten Kapitel) mit einem „nimm das mal so hin“ abzuspeisen.
Zum einen wird das – egal womit du als Grundlagen anfängst – gar nicht anders gehen.
Zum anderen trifft das bei
document.write()
gleichermaßen zu.
Nein. „Auch teilweise“, nicht „gleichermaßen“. Konzepte die versteckt bleiben ja, ein Haufen davon nein.
Deiner Argumentation folgend müsste man sonst ja erklären, das
document
ein Objekt ist,
Richtig, das könnte man sogar. Ist in einem Satz erledigt. Das ist das schöne an document
, dass der Name eigentlich sehr selbsterklärend ist.
was das für ein spezielles Objekt ist
Nein, das ist nicht relevant an der Stelle.
und dass
write()
eine Methode ist, die man darauf anwenden kann.
Auch das lässt sich in einem Satz sagen, ohne, dass dabei irgendwas unklar bleibt.
Beispiel:
„Der Rechenweg wird in der Variablen text gespeichert und dann mit document.write(text)
ausgegeben. Dabei ist document
ein Objekt, das den Inhalt des Browserfensters (das „Dokument“) darstellt und write
eine Methode des Objekts document
, die bewirkt, dass der Text text
ins Dokument geschrieben wird.“
Damit sind alle Konzepte ausreichend erklärt. Wenn Wert darauf gelegt wird, zu sagen, dass document.write
nicht verwendet werden sollte, kann man noch ein
„Beachten Sie: `document.write hat gravierende Nachteile, wenn es nicht wie hier beim Aufruf der Seite direkt ausgeführt wird, weshalb man in der Praxis meist andere Ausgabemethoden verwendet.“
nachsetzen.
Das will man natürlich an der Stelle ebensowenig wie erlären wie
querySelector()
undinnerText
. Und muss man auch nicht.
Irrtum. Das kann man in aller Kürze erklären, querySelector und innerText nicht. Gründe habe ich im Detail hier genannt; die Konzepte sind einfach mehr und deutlich weniger eingängig.
Es ist nur halt so, dass „nimm das mal so hin“ nicht zu wollen kein Argument für
document.write()
und gegendocument.querySelector('#ausgabe').innerText
wäre.
„Nimm das mal so hin“ sollte gar nicht auftauchen. Da hast du Recht. Bei document.write
(oder window.alert
, wenn das lieber gesehen ist) lässt sich das „Nimm das mal so hin“ zügig auflösen ohne großartig Komplexität zu erzeugen („einfache“ (d.h. nicht hintereinanderausgeführte) Methodenaufrufe kommen im Tutorial ja sowieso vor, z.B. mit window.prompt
- das Konzept ist also sowieso schon im Artikelfokus). Bei document.querySelector('#ausgabe').innerText
muss man viel mehr erklären, und zwar abseits des eigentlichen Artikelfokus.
Wir wollen nicht auch noch innerhalb des Anfängertutorial Fragen offen lassen.
Ein Anfängertutorial wird immer Fragen offen lassen.
Richtig. Die Betonung meines Satzes war aber absichtlich auf innerhalb gelegt. Fragen dürfen offen bleiben, aber sie sollten so offen bleiben, dass man das Tutorial erst komplett verstehen und sich den Fragen danach widmen kann, nicht im Workflow während des Lesens.
Das ist übrigens etwas, was ich dem Vorlesungsskript, an dem ich gerade lerne, auch vorwerfen muss. Die ersten zwei Foliensätze wiesen so viele Konzepte auf, die nicht im Lesefluss erklärt wurden, dass ich ständig zu google greifen musste, um mir was noch einmal erklären zu lassen, was da so implizit verwendet wurde - und das hat meinen Lernfluss beträchtlich gestört, würde ich sagen.
Falls du meinen Worten keinen Glauben schenkst, so wie du es mit den Worten von Felix gehalten hast: Es gibt hier einen Thread der dir beweist, dass ein aufmerksamer Tutorial-Leser sich eben diese Gedanken doch macht. Auch dort gab es ein Konzept im Tutorial (
window.prompt()
), das einfach mit einem „das funktioniert so“ eingeführt wurde, ohne im Detail zu erläutern, was passiert. Mit der Folge, dass die Leser darüber stolpern und das dahinterstehende Konzept nicht zur Gänze erfassen.Ja, und? Ist doch völlig in Ordnung, dass Nachfragen, die über den Stoff eines Tutorials hinausgehen, im Forum gestellt werden.
Das sollte aber nicht über den Stoff des Tutorials hinausgehen. Auch bei window.prompt
gehört im Tutorial ein erklärender Halbsatz hin. „Der zweite, leere Parameter ermöglicht die Übergabe eines Defaultwerts.“
Wenn während dem Lesen und Verstehen das Forum geöffnet werden muss, um etwas nachzufragen, dann versagt das Tutorial. Das darf bei schwierigen Konzepten passieren, wenn alles dasteht und man Verständnisschwierigkeiten hat. Aber nicht bei einem Grundlagentutorial. Da stört es einfach den Workflow des Lerners.
Grüße,
RIDER