76

@Mq przy takim podejściu nie powinno być historii w szkołach. Gdzieś powinien być ten złoty środek, żeby człowiek jednak znał kontekst świata, w którym dane jest mu funkcjonować, a trochę historii inżynierii i informatyki się jednak wg mnie przyda.

77

@laoo, trochę to myślę że tak, i że masz rację. Tylko że można to zrobić w formie np. krótkiego rysu historycznego na jednaj lekcji o Z80, 6502, M68k, tak ogólnie o co chodzi i co jest grane w temacie i wystarczy. Kto chce głębiej, to sobie sięgnie do tego w wolnym czasie i zrobi we własnym zakresie. Tutaj odebrałem to co napisał UnDead bardziej jako namowę do tego, żeby w ogóle się uczyć np. programować na starych ośmiobitowcach i robić z tego przykładowo jakąś większą część programu nauczania w szkole, i temu jestem przeciwny swoją wypowiedzią. Choć nie wykluczam, że może źle zrozumiałem coś. Mi się wydawało, że kontekst dotyczy tego, żeby uczyć się starych sprzętów, które już nie istnieją zamiast od razu nowych technologii. Nie mam nic przeciwko rysowi historycznemu, ale w umiarkowanej formie jednogodzinnego wykładu czy tam lekcji ogarniającej pobieżnie cały temat i już.

78 Ostatnio edytowany przez TMK (2021-05-25 19:41:33)

Powiem tak, przeczytałem całą pierwszą stronę wątku a po drugim poście drugiej strony już nie miałem ochoty czytać reszty polemiki na temat kto dla kogo pracował i kto od kogo zżynał czy komu należą się większe zasługi, etc. Mając już 40+ lat, w obecnych czasach, każdą dyskusję o wywyższaniu (?) jednej platformy nad drugą uważam za nieco zabawną. Ja sam nigdy nie podchodziłem do tego w ten sposób, że coś było lepsze a coś gorsze jeśli chodzi o komputery. Miałem to co było wtedy dostępne i na co było stać moich rodziców. Pierwszy mój komputer tj. Atari 800XL ze stacją dysków 1050 kupili mi rodzice, to było za czasów mojej podstawówki. W mojej klasie było kilku kolegów którzy mieli Atari 65XE, było też kilku z C64 a jeden nawet z C128 i ZX Spectrum (ten niewątpliwie królował jako posiadacz dwóch komputerów ;) ), chodziło się do kolegów i grało na różnych komputerach. Pod koniec podstawówki uśmiechnęło się do mnie szczęście i kupiłem wymarzoną A500, nie przeszkadzało mi to, że była z Commodore, tylko dwóch kolegów z klasy miało wówczas A500. Moją Amigę miałem do czasu aż poszedłem na studia i kupiłem pierwszego peceta po czym ją sprzedałem. Teraz mam Atari 65XE odziedziczone po koledze z podstawówki, mam A1200 odziedziczone po innym koledze i mam te komputery z czystego sentymentu do młodzieńczych lat. Nie zamierzam ich sprzedawać ani też kupować innych komputerów choć przyznam, myślałem o C64 ale jednak przeważyło to, że nie mam tyle miejsca w mieszkaniu na kolejne sprzęty retro. Najbardziej cieszy mnie to, że za pomocą Sophia2, mogę podłączyć moją Atarynkę do tv i nie muszę wyciągać i ustawiać dodatkowego monitora ;) Najfajniejsze w tym wszystkim jest to, że są tacy fani sprzętu retro jak Wy i jest z kim podyskutować, powymieniać się wiedzą i cieszyć się wspólnie z retro-sprzętu, jakiej by on marki nie był ;)

Atari 65XE, U1MB, Sophia2, AVG Cart, SIO2SD

79

Mq napisał/a:

Zmiany są dalsze: programista dziś, to zwykle szeregowy pracownik - taki współczesny robotnik, który ma wykonać coś co na wyjściu da określony wynik jak dostanie coś na wejściu i reszta go nie interesuje. Zgrabnie omówił w wywiadach ten aspekt Roland Pantoła, który po tym jak był pomysłodawcą, twórcą, inżynierem, i między innymi programistą swoich gier, później pracował w firmie jako programista i sam się określał mianem robotnika.

Pamiętam ten wywiad, ale też nie ma co generalizować na jednym przykładzie. Są organizacje, gdzie programista czuje się "robotnikiem", a są takie, gdzie struktura jest płaska i głos każdego jest słyszany, co ma wpływ na kierunek rozwoju produktów, sposób realizacji itp. Zauważam coś innego - dziś programistami coraz częściej są osoby, które programowały jedynie w JavaScript, albo wręcz wyspecjalizowały się w wybranym frameworku (Angular, React, Vue), w życiu nie tknęły Javy czy C#, a tym bardziej C/C++ i nie słyszały o takich rzeczach jak 6502. Czy to dobrze, czy źle? Nie oceniam. Wielu spotkanych ludzi pasujących do tego opisu tworzyło bardzo wysokiej jakości aplikacje WWW, zgodnie z najlepszymi rynkowymi praktykami.

Zwróć uwagę, że w czasach Atari czy nawet Amigi można było napisać grę w pojedynkę. Dziś, po przejściu współczesnej gry jak choćby "Uncharted", czy nawet "prostej platformówki 2D" "Rayman Legends", wyświetla się morze nazwisk wszystkich reżyserów, programistów, testerów, ludzi od efektów, designerów itd. Setki, jeśli nie tysiące nazwisk. Budżet głośnych gier typu "RDR2" to około 110 milionów dolarów, co przewyższa budżet wielu głośnych, widowiskowych filmów - np. "Marsjanina". Pracując przy czymś takim sam czułbym się jak "robotnik", ale nie cały rynek związany z wytwarzaniem oprogramowania tak wygląda. Nie poprę tego żadnymi statystykami, ale odnoszę wrażenie, że mniejszość.

Wracając do (pobocznego) wątku: Atari ST vs Amiga. Jack Tramiel sam mówił, że "tworzy komputer dla mas, nie dla klas". Z kolei Jay Miner, że Amiga "miała być furtką do świata prawdziwych komputerów przez gry wideo" (oba cytaty z filmu "From Bedrooms To Billions: The Amiga Years", pisane z pamięci). Sam nigdy nie miałem ST, czego trochę żałuję, bo pewnie dużo wcześniej zainteresowałbym się czymś takim jak MIDI. Miałem natomiast Atari 800XL, a później Amigę 600 i oba komputery były dla mnie właśnie taką furtką. Gdyby moje losy potoczyły się inaczej, ST pewnie byłby tym samym, podobnie jak każdy inny komputer, na który byłbym w stanie w tamtych latach pozyskać oprogramowanie. Dla niektórych znajomych taką furtką był Commodore 64, choć stosunek Atarynek do Komod na osiedlu wynosił pewnie jakieś 5:1, zanim rozpowszechniły się Pegasusy. Nigdy nie było żadnej lokalnej wojny "Atari vs Commodore". Sam trochę później zorganizowalem sobie C64 i choć dużo większy sentyment mam do małego Atari, to do C64 także mi go trochę pozostało. Zmierzam do tego, że często przypadek zdecydował, że ten miał komputer X, tamten Y i dziś jedni udowadniają drugim, wiedzeni sentymentem, że X jest lepsze od Y i odwrotnie. A prawda taka, że X w jakichś aspektach jest lepszy, a w innych gorszy. Dlatego cieszy mnie, gdy dane osoby ze społeczności retro robią coś razem, jak w linku od @piwkooo. Często wracam na przykład płyty "8 Bit Operators: The Music of Kraftwerk", gdzie na jednej składance grają i Gameboye, i NESy, i Atarynki, i Komody, i inne. I słucham tego nie dlatego, że "tam są użyte retro chipy", tylko jak zupełnie normalną muzykę.

UnDead napisał/a:

Spotkałem się ostatnio z ciekawymi pomysłami wykorzystania retro-komputerów do nauki podstaw informatyki na poziomie najbliższym sprzętowi. Okazuje się, że dzisiejszy PC/Mac jest zbyt  skomplikowany, aby młodziutki adept mógł w łatwy sposób ogarnąć funkcjonowanie komputera na jego przykładzie. Ba! RPI okazało się do tego celu zbyt złożone... O wiele prościej tłumaczy się zasady działania CPU i komputera na jakimś sprzęcie na 6502, niż na Armie, czy x86-64 i z tym się w 100% zgadzam. Tak więc istnieje szansa, że jeszcze wiele przed nami (sam dałem się namówić i też mam zamiar przyłożyć łapki do projektu edukacyjnego na 6502, w miarę wolnego czasu i wolnych zasobów, ale o tym "sza" - tzn. więcej będzie na Youtube, gdy projekt ruszy...).

Jestem (bez ironi) bardzo ciekaw wyników tego projektu. Mam nadzieję, że podzielisz się linkiem jak ruszy gdzieś tutaj, żebym nie przegapił :)
Dotychczas z takimi podstawami - przynajmniej programowania - kojarzyłem języki typu Scratch, czy choćby jakąś współczesną implementację Logo.

P.S. Mi z kolei bardzo dobrze czytało się ten wątek, łącznie ze wstawkami typu kto co komu ukradł i kto przeszedł z takiej firmy do takiej, a to dlatego że historia tych wszystkich wczesnych komputerów bardzo mnie ciekawi.

80

zbyti napisał/a:

@UnDead ale dlaczego 6502 by uczyć współcześnie? To procesor dla ubogich. 6809 to jest porządny 8-bitowiec bez tylu kompromisów.

Ale zauważ, że tu jest pewien paradoks... taki fajny CPU, a nie doczekał się żadnego, sensownego kompa, którego byłby sercem. CoCo to żart w porównaniu nawet z A8, czy C64. OK, dla Atari jest Liber809 i sam mam zamiar to przećwiczyć (a nawet pewien dość ambitny plan), ale... po co komplikować sobie życie? 6809 jest bardziej złożony, a więc skomplikowany, niż 6502. A niczego więcej na nim nie wytłumaczysz młodemu człowiekowi, niż na 6502. Do 6502 jest najwięcej literatury, gotowego kodu, a sam procek jest ekstremalnie prosty. I o to właśnie chodzi.

Co to jest? Co to jest?.... To przecież... Atari! :)

81 Ostatnio edytowany przez UnDead (2021-05-25 23:55:48)

Mq napisał/a:

@laoo, trochę to myślę że tak, i że masz rację. Tylko że można to zrobić w formie np. krótkiego rysu historycznego na jednaj lekcji o Z80, 6502, M68k, tak ogólnie o co chodzi i co jest grane w temacie i wystarczy. Kto chce głębiej, to sobie sięgnie do tego w wolnym czasie i zrobi we własnym zakresie. Tutaj odebrałem to co napisał UnDead bardziej jako namowę do tego, żeby w ogóle się uczyć np. programować na starych ośmiobitowcach i robić z tego przykładowo jakąś większą część programu nauczania w szkole, i temu jestem przeciwny swoją wypowiedzią. Choć nie wykluczam, że może źle zrozumiałem coś. Mi się wydawało, że kontekst dotyczy tego, żeby uczyć się starych sprzętów, które już nie istnieją zamiast od razu nowych technologii. Nie mam nic przeciwko rysowi historycznemu, ale w umiarkowanej formie jednogodzinnego wykładu czy tam lekcji ogarniającej pobieżnie cały temat i już.

Nie chodzi o szkoły, tylko zajęcia pozaszkolne (kto w szkołach zna 6502, z nauczycieli..). Nauczanie "informatyki" w Polsce polega na uczeniu Excela i HTML-a na poziomie podstawowym. Większość młodych ludzi umie komputer odpalić (najlepiej taki z Windows) i odpalić na nim grę, film (w tym pornola) oraz zapuścić muzę. :) 99% nie ma pojęcia, jak to działa... i niestety, mamy potem gościa (np. "dewelopera") po informatyce, który umie składać aplikację z "klocków" w IDE, ale.. nadal nie ma pojęcia, jak ten komputer działa. I nie chodzi o rys historyczny, tylko o "przerobienie" zasad pracy komputera na najniższym, możliwym poziomie, od A-Z. Małe Atari nadaje się do tej roli doskonale.

Tak się składa, że mam ciągle kontakty branżowe z takimi pożal się Boże "inżynierami" i zgadzam się z kilkoma osobami (poza tym forum), że mianownik jest wspólny - wszystkim im brakuje podstaw: bit/bajt, szyna danych, szyna adresowa, rejestr, przerwanie, I/O itd. Ja zaczynałem od takiej wiedzy, potem mogłem bez problemu pracować pod 11, różnymi systemami operacyjnymi (dziś już nie ma nawet tylu chyba...), nie ma dla mnie znaczenia, czy komp pracuje pod macOS, Linuksem, *BSD, czy Windows - na każdym mogę wykonać dowolne zadanie... bo... tak naprawdę pod spodem są zera, jedynki, przerwania i kilka rzeczy, które występowały już nawet w małym Atari, ale dziś po prostu są nieco bardziej złożone i działają na 64bitach, zamiast na 8.

Dzięki pracy tylko jednego człowieka, mamy zresztą fantastyczne materiały edukacyjne dla Atari, jak choćby:
https://eduinf.waw.pl/inf/retro/009_de_ … i/0001.php

... czy ...

https://eduinf.waw.pl/index.php

... nic tylko korzystać. A takich inicjatyw jest o wiele więcej.

Co to jest? Co to jest?.... To przecież... Atari! :)

82

Hmm... No jest w tym dużo racji, sam nieraz miewałem problemy ze znalezieniem ludzi do pracy, bo goście świeżo po studiach faktycznie nie znali i nie rozumieli wielu podstawowych rzeczy. Niemniej to jest wina i opłata swego rodzaju za szybki postęp technologiczny. Zapotrzebowanie na robotników klepiących szybko duże ilości kodu na akord kształtuje takie a nie inne programy nauczania.
Ja rozumiem Twoje podejście do tematu we względzie przekazania podstaw. Tylko że nie jestem przekonany czy sięganie aż tak daleko jak komputery 8-bitowe to nie jest w tym wypadku przesada. W zasadzie gdybym miał się wypowiedzieć na temat edukacji od podstaw, to ja bym chyba wolał ludziom to tłumaczyć na bazie peceta z dosem. Jest to lepszy moim zdaniem punkt wyjścia, bo zupełne podstawy o jakich piszesz da się na tym łatwo przedstawić, a jednocześnie w drugą stronę zachowuje się kontekst i jakieś takie bardziej powiązanie wprost z komputerem współczesnym. Np struktury plików i katalogów, czy transmisję danych do pamięci masowych, lepiej jest pokazać na komputerze, który ma tak samo dysk twardy i tak samo system plików i katalogów jak komputer współczesny. Po co komuś w głowie mieszać magnetofonem, kartridżami itp? Zwłaszcza, że my dziś do tych starych komputerów podpinamy współczesne nośniki, więc żeby to dobrze wyjaśnić i zrozumieć, to najpierw trzeba znać nośnik współczesny, a potem kombinować jak go podpiąć do starego kompa, który nie daje wprost takich możliwości. Tak samo: po co grzebać się w dyskietkach, jak one już nie istnieją i nigdy więcej istnieć nie będą? Lepiej od razu zacząć od dysku twardego, nie ma w nim nic bardziej skomplikowanego niż w dyskietce, a jest wprost związany z nośnikami współczesnymi.

83 Ostatnio edytowany przez zbyti (2021-05-26 09:05:48)

Zapoznanie z podstawiani nie zabiera dużo czasu a jest bardzo pożyteczne, ja na przykład ostatnio z przyjemnością obejrzałem:

https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo

oraz przeczytałem:

https://archive.org/details/insidechip00hele

https://archive.org/details/Usborne_Gui … g/mode/2up

https://archive.org/details/usborneintroduct00lisa

forma jak dla dzieci ale treść konkretna.

więcej czasu zabrało:

https://archive.org/details/Machine_Lan … ook_part_1
https://archive.org/details/Machine_Lan … ook_part_2

ale to pasjonująca lektura :]

84 Ostatnio edytowany przez UnDead (2021-05-26 11:27:29)

Mq napisał/a:

Ja rozumiem Twoje podejście do tematu we względzie przekazania podstaw. Tylko że nie jestem przekonany czy sięganie aż tak daleko jak komputery 8-bitowe to nie jest w tym wypadku przesada. W zasadzie gdybym miał się wypowiedzieć na temat edukacji od podstaw, to ja bym chyba wolał ludziom to tłumaczyć na bazie peceta z dosem. Jest to lepszy moim zdaniem punkt wyjścia, bo zupełne podstawy o jakich piszesz da się na tym łatwo przedstawić, a jednocześnie w drugą stronę zachowuje się kontekst i jakieś takie bardziej powiązanie wprost z komputerem współczesnym.

Nikomu nie życzę programowania nawet na Z80/8080, nie mówiąc o 8086, czy późniejszych (generalnie Intel Outside!) ;-)
Architektura Intela od samego początku jest zbędnie skomplikowana, adresowanie pamięci, czy I/O "popaprane" i wprowadziłoby to więcej zamieszania, niż pożytku. Dziś zresztą Intel zdaje się być w lekkiej defensywie i to mi się bardzo podoba. Jakby nie patrzeć... ARM to "duchowy następca" 65xx.

Idea jest taka - to ma być maksymalnie... proste. A nic nie jest tak proste (i poglądowe za razem), jak 6502. DOS też nie jest prosty i ma bardzo specyficzne mechanizmy (przepisywałem kiedyś pod nim sterownik drukarki w asemblerze x86, tak, aby obsługiwał Mazovię, bo skubany nie łykał potrzebnych kodów ASCII - nikomu nie polecam, po 65xx i 68xxx to była prawdziwa trauma ;-)), a z drugiej strony narzuca pewne mechanizmy myślenia, które nie sprawdzą się już przy pracy na współczesnych systemach, więc lepiej te mechanizmy w ogóle cichaczem pominąć. Lepsza byłaby Amiga, czy nawet ST, ale... no niestety... te kompy są trudno dostępne, relatywnie drogie, wymagają drogich peryferiów (za samego UltraSatana można prawie kupić 65XE) a uczenie architektury 32-butowej jako "wstęp" też powodowałoby niepotrzebne skomplikowanie tematu. Zresztą.. A8 nie jest "daleko", jest bardzo blisko, każdy może sobie odpalić prosty emulatorek, MADS-a, czy MAD Pascala i Geany, jeśli nie chce katować się MAC/65. Zresztą ogromną i często niedocenianą zaletą komputerów 8-bitowych było to, że 90% z nich zgłaszało się użytkownikowi... językiem programowania (ok, BASIC, ale zawsze - nawet z niego można wrzucić i odpalić kawałek kodu maszynowego i wyniki dostępne są... natychmiast). Potem już tak nie było... już w erze 16 bitów użytkownik był coraz bardziej "oddzielany" od sprzętu, poprzez kolejne warstwy systemu operacyjnego, GUI itd... gdzieś po drodze zatracono tę pierwotną łatwość programowania. Dziś, żeby programować, trzeba wgrać na maszynę prawie drugi system operacyjny - czyli opasłe środowisko, z rozbudowanym IDE, gigabajtami bibliotek, dokumentacji, kompilatorów itd... a i tak kończy się na wywoływaniu gotowych "klocków" z tychże bibliotek. Tylko programiści mikrokontrolerów są jeszcze relatywnie blisko sprzętu, ale to jest nisza (i ci najczęściej rozumieją, jak to wszystko działa).

Co to jest? Co to jest?.... To przecież... Atari! :)

85

Polecam maszynę W z Politechniki Śląskiej do nauki podstaw ... to są prawdziwe podstawy podstaw

https://github.com/sebastianmusial/Maszyna-W

86

Ja tam nie rozumiem idei jaką głosisz @UnDead. Tzn. rozumiem koncepcję, żeby uczyć podstaw, których brakuje i jestem za. Niemniej jednak dla mnie nauka czegokolwiek na 6502 jest pomysłem takim samym jak nauka jazdy na zdezelowanym Żuku, po to tylko żeby użytkownik obcował z bliska ze sprzętem. Nie widzę w tym kompletnie żadnego celu i sensu.

Współcześnie naukę podstaw realizuje się na wiele innych sposobów i to właśnie współczesnych.

I tak np. jak chcemy się w przystępny sposób uczyć logiki algorytmów programowania, to w podstawówkach jest w programie nauczania scratch, w którym buduje się taką logikę i składa algorytmy. Są w tym instrukcje warunkowe, pętle, może sobie chodzić jakiś kotek, czy tam piesek, można zrobić grę, a można zrobić inny program, który coś tam liczy, albo coś robi na zasadzie filmu interaktywnego, albo prezentacji multimedialnej, która pokaże coś tam na zasadzie dema.

Jak chcemy iść dalej z podstawami i otrzeć się o sprzęt bardziej, to są do tego bardzo dobre kursy robotyki. Buduje się od strony sprzętowej "komputerek", który ma szereg "peryferiów" jak czujniki, silniczki, lampki i inne funkcje, które da się oprogramować.
Wszystko to można zrobić na prostych mikrokontrolerach, które w niczym nie są trudniejsze od 6502, a za to są o niebo nowocześniejsze i dają jakąś przyszłość, bo można sięgać po większe i mocniejsze układy.

Na kursach z mikrokontrolerów również złapie się te podstawy podstaw o jakich wspominasz, czyli bity, bajty, operacje logiczne na nich.

Na prawdę nie widzę sensu (poza hobbystycznymi względami rzecz jasna), żeby kogoś dzisiaj nauczać na takich przestarzałych technologiach. Myśląc takimi kategoriami cofania się w czasie, to można by w sumie w ogóle cofnąć się do jakichś komputerów mechanicznych, albo na jakichś tam stycznikach/przekaźnikach, gdzie dopiero widać organoleptycznie jak działa komputer i można to obserwować z bliska na własne oczy.

87

https://www.youtube.com/watch?v=hlQZekZPHl8

88 Ostatnio edytowany przez Nitro (2021-08-14 15:43:30)

Fajne ale to będzie mega ograniczone gdyż BASIC C64 nie ma żadnych komend do korzystania z układów(no może prócz IO), wszystko robi się POKE'ami - bezpośrednio modyfikując rejestry.
Na C64 też jest kilka emulatorów innych platform oczywiście również z ograniczeniami ale np taki BASIC z ZX Spectrum jest emulowany podobno nieźle i nawet można sobie wczytać program z niego bez żadnych modyfikacji magnetofonu...
https://www.youtube.com/watch?v=i98CTiq707U

Co do nauczania, to na studiach w pierwszym półroczu był obowiązkowy kurs podstaw i tam na ćwiczeniach mieliśmy coś o wiele prostszego od maszyny W, maszynę RAM
https://pl.wikipedia.org/wiki/Maszyna_RAM
Nie chce uogólniać psioczyć czy też się chwalić, ale dla 3/4 ludu rzecz była do końca kursu czarną magią. A to naprawdę prosty model, 6502 to przy tym monstrum. No nic, udzielałem konsultacji ale prawie zawsze kończyło się to po prostu napisaniem kodu za delikwenta. A więc również myślę, że zaczynanie od 6502 nie jest dobrym pomysłem.

89

Tu jest xex, można sobie odpalić i napisać 10 GOTO 10: https://github.com/unbibium/atari64/rel … tari64.xex

90

6502 jest bardzo wdzięcznym procesorem do nauczania podstaw architektury komputerów, moim zdaniem lepszy niż 8080, na którym zwykle robi się kurs AK. Na studiach, zwłaszcza magisterskich, nie chodzi o naukę zawodu, od tego są technika i zawodówki, tylko naukę pewnych koncepcji, budowy narzędzi, którymi się posługujemy. Nie wyobrażam sobie tłumaczenia koncepcji działania CPU, na jakimś współczesnym 32 lub 64 bitowym procesorze.

Moja kolekcja: Atari 1040STe (4MB), Atari 1040STfm (4MB, BLiTTER, AT-ONCE+), Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Atari 600XL (64kB), Sinclair ZX SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB), Commodore A600 (2MB+4MB, HDD CF 4GB), Commodore C64C.