Ist es schädlich, mit BASIC anzufangen? (Diskussion aus "Commodore Rechner auf galaktischer Bildungsmission...")

  • Hallo Patrick


    Um es ganz krass auszudrücken, das ist verlorene Liebesmühe. Damit kannst du vielleicht noch im Kindergarten punkten, aber so ab der 12. Klasse wirst du damit keinen Erfolg haben. Und wozu das Ganze? Da kannst du den Schülern gleich Altgriechisch beibringen.


    Womit du aber sicher punkten kannst, das ist Excel. Die Meisten werden nicht mal wissen, dass man das Menü "Entwicklertools" einblenden kann. Und hier findest du dann auch das aktuelle Programm "Visual Basic" mit dem du viel machen kannst. Zusammen mit dem Menü "Einfügen" ist das ein starkes Tool, das sicher jedem etwas bringen wird.


    Auch das Menü "Makros" -> Makros aufzeichnen, kann das Leben ungemein einfach machen.


    Ich bin überzeugt, dass in der 3. Stunde einige kommen werden und dir sagen: "Mein Vater hat das nicht gewusst und hat nur noch gestaunt, was ich alles gelernt habe!" Das wird diese Schüler auf ein neues Niveau bringen und dann kommt die Frage: "Was können sie uns noch zeigen?"


    LG vom Zürichsee

    • Official Post

    Rappi sehe ich nicht so - Ich finde die Idee klasse. Klar, der praktische Nutzen eines Excelkurses mag höher sein, aber der technikhistorische Exkurs "so waren Computer früher" zusammen mit den Erfahrungen der begrenzten Ressourcen dieser Geräte hat auch einen pädagogischen Wert und ist vielleicht auch spannend für die Kids. Ich bin der Meinung, man kann an einem PET viel besser verstehen, aus was ein Computer besteht und wie er funktioniert als an einem modernen PC.


    Der Erhalt klassischer Computer und die Vermittlung des Wissens darüber ist ja auch eine kulturelle Aufgabe und hat über den Kontext der praktischen Wissensvermittlung hinaus noch andere Aspekte (Wie hat sich die Arbeits- und Freizeitwelt, die Medien etc verändert? Welchen "Wert" hatten Daten und ihre Speicherung früher? Was ging früher alles nicht mit dem Rechner und was hat das beduetet....)?


    CBM Museum Wuppertal : Vielleicht ist die Einschränkung auf diese speziellen Geräte ein wenig hinderlich. Tut es nicht ein beliebiger 8 bit Rechner mit beliebigem Speichermedium und Drucker? Warum muß es genau diese Anlage sein?

  • Rappi sehe ich nicht so - Ich finde die Idee klasse. Klar, der praktische Nutzen eines Excelkurses mag höher sein, aber der technikhistorische Exkurs "so waren Computer früher" zusammen mit den Erfahrungen der begrenzten Ressourcen dieser Geräte hat auch einen pädagogischen Wert und ist vielleicht auch spannend für die Kids. Ich bin der Meinung, man kann an einem PET viel besser verstehen, aus was ein Computer besteht und wie er funktioniert als an einem modernen PC.


    Der Erhalt klassischer Computer und die Vermittlung des Wissens darüber ist ja auch eine kulturelle Aufgabe und hat über den Kontext der praktischen Wissensvermittlung hinaus noch andere Aspekte (Wie hat sich die Arbeits- und Freizeitwelt, die Medien etc verändert? Welchen "Wert" hatten Daten und ihre Speicherung früher? Was ging früher alles nicht mit dem Rechner und was hat das beduetet....)?


    CBM Museum Wuppertal : Vielleicht ist die Einschränkung auf diese speziellen Geräte ein wenig hinderlich. Tut es nicht ein beliebiger 8 bit Rechner mit beliebigem Speichermedium und Drucker? Warum muß es genau diese Anlage sein?

    Hallo Thoshi


    Wenn ich das richtig verstanden habe, so geht es nicht darum aus was ein Computer besteht und wie dieser funktioniert. Dann würde man bei bit und Byte beginnen und ein Diskettenlaufwerk und eine HD öffnen. Vielleicht noch vergleichen mit einem heutigen USB-Stick.


    Wenn man den Schülern heute den Werdegang der Computerwelt erklären will, dann geht man bei uns in das Technorama in Winterthur oder in ein Computermuseum. Mit der Programmiersprache BASIC die Schüler zum Programmieren animieren zu wollen, ist sicher nicht der richtige Schritt.


    LG vom Zürichsee

  • Mal ganz davon abgesehen, daß es ja den Spruch gibt, daß BASIC als Einstiegssprache so gar nichts taugt ...

    "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." Edsger Dijkstra 1975


    Und wo Dijkstra recht hattte, hatt er recht...


    Nachzulesen hier : https://www.cs.virginia.edu/~e…s655/readings/ewd498.html

    (Fortran, PL/1, APL und Cobol kriegen auch ihr Fett weg...)


    Und im ernst : BASIC hat, im Jahre 2021, im Unterricht gleich welcher Art nichts verloren. Auch nicht fur Kinder. Wenn schon, dan eher Logo...

  • ja, das denke ich auch: BASIC als "Einstieg" für Python, ist keine gute idee, weil die Konzepte total unterschiedlich sind. Ich denke das verwirrt nur.


    So was wie micropython bzw. https://pybricks.com wäre vielversprechender...

  • Ihr lieben, könnten wir dann bitte wieder back to topic?

    Ihr habt inhaltliche Fragen oder seid Euch unschlüssig, ob Eure Hardware für uns von Interesse ist? Das können wir gern hier in diesem Thread erörtern

    Darum soll es in diesem Thread vornehmlich gehen und nicht um Grundsatzdiskussionen zum Thema Basic und CBM Rechner.


    Das Projekt wird stattfinden - so oder so.

    • Official Post

    Und im ernst : BASIC hat, im Jahre 2021, im Unterricht gleich welcher Art nichts verloren. Auch nicht fur Kinder. Wenn schon, dan eher Logo...

    Warum? BASIC wird auch heute noch verwendet, und viele Probleme sind mit Hilfe von BASIC gelöst worden und werden auch in Zukunft damit gelöst. Vielleicht nicht im akademischen Umfeld, aber im "echten Leben" / Industrie.


    Klar, gibt es elegantere Tools.


    Und manchmal braucht es keine CNC Maschine und keinen 3D-Drucker, da langt auch Säge und Hammer.


    Ich finde den Artikel amüsant zu lesen, soll er vermutlich auch sein. Aber sowas wie


    FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is
    hopelessly inadequate for whatever computer application you have in mind
    today:


    glaub ich sollte nicht wörtlich genommen werden.


    Mit FORTRAN wird heute noch gearbeitet und Geld verdient. Wahrscheinlich in 20 Jahren immer noch, für die ein oder andere Aufgabe. Das war dem Autor auch bewußt. Klar gibts heute SciPy, Octave, Scilab, Matlab und Co. ... Aber wenn ein Toolkit / Toolchain funktioniert und die Leute die das benutzen die im Detail kennen und das Toolkit tut was es soll gibts doch keinen Grund das zu ändern.


    Zurück zum Thema.... da BASIC heute in diversen Varianten immer noch verwendet wird und man einfach Resultate erzielen kann, warum nicht ?

    Hat uns doch auch nicht geschadet :)

  • Und im ernst : BASIC hat, im Jahre 2021, im Unterricht gleich welcher Art nichts verloren. Auch nicht fur Kinder. Wenn schon, dan eher Logo...

    Warum?

    Deswegen ,aus dem gleichen Artikel : "The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities."

    Es war Dijkstra durchaus ernst... aber gut, werde den Thread jetzt nicht weiter verwassern.

  • Vielleicht könnte man die Basic-Diskussion auslagen, auch wenn sie hier bestimmt schon 100 mal geführt wurde? ;)

  • "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." Edsger Dijkstra 1975


    Genau den meinte ich. :)


    Ich hatte es noch bißchen drastischer angefangen in Deutsch zu schreiben, aber dann wieder gelöscht ... (man will ja keinem unabsichtlich auf die Füße treten ...)


    Ich denke aber auch, daß er da Recht hat.


    Mit FORTRAN wird heute noch gearbeitet


    aber auch nur, weil man die alten Geräte nicht wegwerfen will oder die Angestellten unwillig und lernresistent sind ... haben wir ja schon immer so gemacht ...


    Es geht hier aber um "neue" Leute - und FORTRAN wird schon seit bestimmt 1980 nicht mehr unterrichtet, außer in Deutschland selbstverständlich, wo man sicher auch noch offizielle COBOL Kurse findet. ;)


    (Habe ich schonmal erwähnt, daß hier gerade überall in der Gegend Internetleitungen verlegt werden. Im Rahmen der Initiative der Bundesregierung zur Heranführung des Netzes an internationale Standards. Und das ganz knapp vor einer Wahl ... ein Schelm, wer ... Man kann dann von Minimalgeschwindigkeiten von < 20 MBit/s ausgehen ... das stand wirklich irgendwo so zu lesen. Die Anbindung bleibt aber dann schon noch eine Weile ADSL - sonst könnte man ja die Straße nicht nochmal aufmachen, in 2 oder 3 Jahren ungefähr. Immerhin bringt diese Infrastrukturmaßnahme "das Land" auf den Stand von Norwegen im Jahre 2005, oder so.)



    Vielleicht könnte man die Basic-Diskussion auslagen, auch wenn sie hier bestimmt schon 100 mal geführt wurde? ;)


    Ja, wäre günstig.


    Aber wie man am eigentlichen Anliegen sieht, ist sie immer wieder wichtig.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    • Official Post

    Ich hatte es noch bißchen drastischer angefangen in Deutsch zu schreiben, aber dann wieder gelöscht ... (man will ja keinem unabsichtlich auf die Füße treten ...)


    Ich denke aber auch, daß er da Recht hat.

    Er hat absolut nicht recht und im Ansatz wird dieses Projekt das beweisen. Die fünf bis neunjährigen werden nicht für den Rest Ihres Lebens durch diese Excursion in Ihrem Programmierverhalten gestört.


    Wir sollten hier die Programmierarroganzler nicht noch hofieren und in Ihren kruden Theorien fördern sonst glaubt das noch jemand im Managment und ich darf nicht mehr in Python, Java, C und was auch immer programmieren weil mein erster Computer ein C116 war mit BASIC.

    Ein jeder Mensch mit ausgeprägten logischen Denkvermögen findet sich schnell wohl in den Stärken der jeweiligen Programmiersprachen.

  • Er hat absolut nicht recht und im Ansatz wird dieses Projekt das beweisen. Die fünf bis neunjährigen werden nicht für den Rest Ihres Lebens durch diese Excursion in Ihrem Programmierverhalten gestört.

    Ein wenig älter sind die dann schon 5. - 9. Klasse. ;) Dieses Projekt muss das nicht mal mehr beweisen, wie gesagt, wir haben bereits mit ähnlichen Bildungseinrichtungen genau solche und ähnliche Programme durchgeführt. Davon laufen einige schon seit Jahren dauerhaft.


    Wir sollten hier die Programmierarroganzler nicht noch hofieren und in Ihren kruden Theorien fördern sonst glaubt das noch jemand im Managment und ich darf nicht mehr in Python, Java, C und was auch immer programmieren weil mein erster Computer ein C116 war mit BASIC.

    Ein jeder Mensch mit ausgeprägten logischen Denkvermögen findet sich schnell wohl in den Stärken der jeweiligen Programmiersprachen.

    Auch wenn ich es nicht ganz so drastisch formuliert hätte aber ich kann dem nur zustimmen., nichts destortrotz wäre ich echt froh und dankbar, wenn dieser "Glaubenskrieg" speziell hier in diesem Thread dann damit bitte ein Ende hat. Ich habe kaum noch Überblick, über das Echte Interesse an diesem Projekt und denjenigen, die "nur" mal ihre Meinung über die Sinnhaftigkeit kundtun wollen.


    funkenzupfer danke für die Vorstellung *verneig* - wir sind halt tatsächlich unscheinbar im Hintergrund und weniger bis gar nicht in Foren aktiv.

  • In diesem Text hat Dijkstra schon mit der groben Kelle ausgeteilt. Trotzdem würde ich heute keinem Kind mehr Basic beibringen.


    - Eine Programmiersprache mit Zeilennummern.

    - Variablennamen die aus zwei Zeichen bestehen.

    - Variablen benutzen ohne diese vorher zu deklarieren.

    - Kaum Sprachkonstrukte zum Strukturieren des Quellcodes

    - usw.

    Selbst wenn man sich vorher Gedanken macht, kommt da zwangsläufig unleserlicher Code heraus. Später Fehler finden oder den Code warten wird zur Herausforderung.


    "Früher" war das vielleicht OK, weil ein Basic-Interpreter in ein 8k EPROM gepasst hat und nach dem Einschalten sofort da war. So konnte man mit dem Rechner etwas anfangen ohne erst einen teueren Pascal-Compiler zu kaufen. Heute sollte man sich vorher wenigstens ein paar Gedanken machen, bevor man die erste Zeile Code in den Rechner hackt.


    Das Ganze als "Programmiererarroganz" abzutun ist auch nicht hilfreich. Nur weil man früher mit Basic angefangen hat, weil vielleicht nichts Besseres da war, heißt das nicht, dass man das heute genauso machen muss.

  • Ich glaube ich mache mir mal Popcorn zum zuschauen/mitlesen :)

    Die Diskussion führt zu nichts, wenn diese Einführung in die Programmierung für später taugen soll (also als einer der Ziele herhält, um später bspw. das in einem naturwissenschaftlichen Studium weiter nutzen zu können) ist BASIC zumindest in der ursprünglichen Form nicht geeignet. Ein objektorientiertes Visual BASIC vielleicht eher, aber ich würde Kotlin oder Go eher empfehlen, die sind modern und werden auch für echte Projekte benutzt. C oder C++ würde ich übrigens Anfängern auch nicht empfehlen.

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Ich werfe mal COBOL ein. Ist glaube ich aus dem Jahr 1959 oder so, ist aber nach wie vor eine lebendige Sprache, für den händeringend Fachleute gesucht werden.

  • Du bringst hier Argumente gegen ein 8-Bit-Basic, z.B. das auf den Commodores. Das trifft aber nicht auf modernere Varianten wie GFA, VB, usw. zu.

    1ST1

  • Dijkstra selber hat Algol mitdefiniert und propagiert. Ist leider nie richtig im Mainstream angekommen. Für die erste Generation Homecomputer wohl nicht geeignet, da zuviel von der Hardware abverlangt wird.


    "ALGOL 60 inspired many languages that followed it. Tony Hoare remarked: "Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors."

    • Official Post

    Zuerst mal ist keiner dieser Punkte für sämtliche BASIC-Versionen allgemeingültig.

    Insbesondere der letzte hat m.E. nichts mit der verwendeten Programmiersprache zu tun, sondern damit, ob man sein Programm ordentlich gliedert und kommentiert.

    Das ist bei BASIC vor allem eine Frage der Disziplin und Ordnung.

    Insbesondere die bemängelte Verwendung von nicht deklarierten Variablennamen sehe ich für die Lesbarkeit des Codes nicht als Nachteil an. Man kann sofort erkennen, um welche Art Variable es sich handelt, ohne nach der Deklaration zu schauen. Die Verwendung von sprechenden Variablennamen hat nichts mit der verwendeten Programmiersprache zu tun.

    Die Beschränkung der Unterscheidung von Variablennamen auf zwei Zeichen ist eine Eigenheit weniger BASIC-Versionen, wie z.B. Commodore Basic. Das hindert aber niemanden daran, längere (sprechende) Namen zu verwenden, solange sie sich in den ersten beiden Buchstaben unterscheiden.


    Fazit: Lesbarer Code ist vor allem abhängig vom Programmierstil. Die verwendete Sprache spielt dafür eine untergeordnete Rolle.

  • Ich werfe mal COBOL ein. Ist glaube ich aus dem Jahr 1959 oder so, ist aber nach wie vor eine lebendige Sprache, für den händeringend Fachleute gesucht werden.

    Auch Dijkstra's Meinung zu Cobol ist im Paper festgehalten....Ja, Dijkstra war arrogant, und im Paper etwas gar direkt. In der Sache hat er mMn recht.

    • Official Post

    ...


    Das Ganze als "Programmiererarroganz" abzutun ist auch nicht hilfreich. Nur weil man früher mit Basic angefangen hat, weil vielleicht nichts Besseres da war, heißt das nicht, dass man das heute genauso machen muss.

    So war das nicht geschrieben und auch nicht gemeint. Auch habe ich nicht behauptet, dass man heute mit BASIC anfangen soll. Mir geht es umd den Typ Mensch der aus seiner Welt heraus meint über andere die Nase zu rümpfen.


    Ich habe da ein Beispiel: Vor zwei Jahren war ich auf der O'Reiley Velocity in Berlin und da habe ich einige dieser Arroganzler ertragen müssen. Eine der Sessions handelte von Programmiersprachen, Programmiertechniken und Sicherheitsaspekten. Die vortragende Dame ist übrigens recht bekannt in der Szene.

    Die erste Frage an die Teilnahmer war: "Programmiert hier noch jemand in C?"

    Ich die Hand gehoben und Sie meinte nur: "Ich sollte schnellstens auf GO wechseln, C-Programme tragen zu den größten Sicherheitslücken bei."

    Darauf habe ich nur geäußert:"Die ignorante Haltung gegenüber älteren Programmiersprachen führt erst dazu, dass solche Sicherheitslücken entstehen bzw. unentdeckt bleiben. Sie meine doch nicht wirklich, dass C-Entwickler anhand ihrer pauschalen Aussage den Programmierumgebung anpassen wissend das GO nicht die Anwort auf das Leben ist"

    Sie dann noch: "Ich bin nicht ignorant"


    Andere Anekdote von der Veranstaltung:

    Microservices mit einer Lebensdauer von unter 100mS sich nicht hacken lassen. Auch das hat der CCC schon widerlegt.


    Leider reagiere ich heftig auf solch einen Type Mensch der meint die Weissheit mit Löffeln gefressen zu haben um damit andere zu erziehen ...

  • Zuerst mal ist keiner dieser Punkte für sämtliche BASIC-Versionen allgemeingültig.

    Insbesondere der letzte hat m.E. nichts mit der verwendeten Programmiersprache zu tun, sondern damit, ob man sein Programm ordentlich gliedert und kommentiert.

    Das ist bei BASIC vor allem eine Frage der Disziplin und Ordnung.

    Insbesondere die bemängelte Verwendung von nicht deklarierten Variablennamen sehe ich für die Lesbarkeit des Codes nicht als Nachteil an.

    Um das Problem von Basic zu verstehen, muss man vielleicht mal an einem aktuellen Software-Projekt mitgearbeitet haben.


    Da geht es nicht darum, ob Variablen deklariert werden müssen (muss man in Javascript und Python auch nicht), aber es geht z. B. schon darum, ob ich lokale Variablen in einer Prozedur deklarieren kann. Ob ich Code kapseln kann, um ihn mehrfach zu verwenden, ohne jedesmal wieder alles mögliche anpassen zu müssen.


    Das hat nichts mit Disziplin und Ordnung zu tun, wenn einfach fundamentale Mechanismen fehlen.


    Moderne Basic-Versionen haben solche Strukturen natürlich. Ab Quickbasic bzw. QBasic wurden die eingeführt. Aber diese Basic-Versionen haben mit einem Commodore-Basic, um das es hier ja ursprünglich ging, überhaupt nichts mehr zu tun.


    Für Kinder finde ich übrigens Scratch einen sinnvollen Einstieg. Das hat sehr moderne und sogar schon objektorientierte Ansätze. Darauf kann man dann mit "richtigen" Sprachen aufsetzen, ohne alles neu zu lernen und sich schlechte Gewohnheiten wieder abtrainieren zu müssen.

  • Hab auch mit BASIC begonnen und mich durch die diversen Dialekte gewühlt (ZX81, VC20, Atari800XL, Acorn Electron, Amiga500) dann auf der Uni Pascal, Modula2, C und Assembler...


    Als ich bei SIEMENS plötzlich in COBOL programmieren sollte, hab ich mir das COBOL Handbuch (war ein rotes Taschenbuch) hergenommen und 2 Stunden später konnte ich fließend COBOL ;0) Dann noch die 2 schläfrigsten Tage meines Lebens (Einführung in Datenbanken mit UDS / UTM) - wie kann man über 4 Befehle 2 Tage lang reden? ;0)


    Man kann in jeder Sprache sprechen, aber wichtig ist was man sagt... ;0)

  • Insbesondere die bemängelte Verwendung von nicht deklarierten Variablennamen sehe ich für die Lesbarkeit des Codes nicht als Nachteil an. Man kann sofort erkennen, um welche Art Variable es sich handelt, ohne nach der Deklaration zu schauen. Die Verwendung von sprechenden Variablennamen hat nichts mit der verwendeten Programmiersprache zu tun.

    Die Probleme bei nicht deklarierten Variablennamen kommen erst später, bei der Ausführung. Da läuft so ein Programm im täglichen Einsatz problemlos bis mal ein Programmzweig durchlaufen wird in dem ein Tippfehler ist wie z.B. Ao anstatt A0 und dann knallt es. Vorzugsweise dann wenn was wichtiges/zeitkritisches damit gemacht werden soll.


    Ich habe von diversen Vorgängern mehrer Applikationen in LotusScript übernommen. Gut 20% der Fehler konnten auf solche Probleme zurückgeführt werden. Hab dann die Option aktiviert welche eine Vordefinition erzwingt und dann anhand einer Crossreferenzliste die Variablen angeschaut die nur einmal vorkamen (meistens Tippfehler) oder die nie beschrieben wurden.

    Danach dann den Rest definiert und die weitere Betreuung war relativ schmerzfrei.

  • Die erste Frage an die Teilnahmer war: "Programmiert hier noch jemand in C?"

    Ich die Hand gehoben und Sie meinte nur: "Ich sollte schnellstens auf GO wechseln, C-Programme tragen zu den größten Sicherheitslücken bei."

    Ach ja, diese ganzen Modesprachen. Vermutlich wird noch C programmiert, wenn sich keiner mehr an GO erinnern kann.


    Ich wähle meine Sprache danach aus, ob sie meine Anforderungen erfüllt. Und da ich nun mal objektorientiert denke und strukturiere, kann ich inzwischen mit C nichts mehr anfangen und greife zu C++ oder C# oder Typescript (wenn's Richtung Web-Technologie geht).


    Das hat nix mit Arroganz zu tun. Ich habe einfach gelernt, dass sich große Projekte objektorientiert besser strukturieren lassen. Was nicht heißt, dass man nicht auch große Projekte in C realisieren kann. Aber mir wäre das inzwischen zu mühsam, da den Überblick zu behalten. Und das Buffer- und Zeigergedöns ist nunmal anfällig gegen Bufferoverflows. Dafür ist C machinennah und schnell. ;)