Pewnie. Zanim wydarzyły się Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple, istniała cudowna mała maszyna znana jako IBM 5100 . Miał BASIC w pamięci ROM , duży napęd kasetowy (lub dwa), 8 KB pamięci. 24-liniowy ekran i drukarka - wszystko to za mizerne 10 000 USD - o rząd wielkości tańsze niż typowe mini. Pierwotnie zbudowany dla naukowców ( APL w pamięci ROM był również opcją), ale potem odkrył go kilka rodzajów rachunkowości i zaczął szaleństwo: każda mała firma chciała takiego. Oczywiście z niestandardowym oprogramowaniem. 5110 poszło za tym, a napędy taśm zostały zastąpione 8-calowymi dyskietkami.
Jakieś komercyjne oprogramowanie? Galony .
Czy możesz powiedzieć księgi głównej, listy płac, zobowiązań, należności, kontroli zapasów i fakturowania? Byłem tam, zrobiłem to - w języku BASIC. Rachunki za media, spis nowych i używanych samochodów, odbiór śmieci i harmonogram dostaw napojów? Tak - BASIC. Chcesz śledzić rudę żelaza z kopalni przez pociągi na statki ... BASIC. Wszystko, co nie było podniesione podłogi, prawdopodobnie robiono w języku BASIC. To znaczy komercyjnie. (Ponieważ RPG II się nie liczy ;-).
Jak obejść ograniczenia?
Cóż, pierwszą rzeczą, którą zrobiłeś, było odesłanie klienta z powrotem do IBM, aby uzyskać więcej pamięci, bo kto mógłby napisać coś poważnego w 8 KB? Trzeba było po prostu mieć 16. A jeśli to możliwe, dwa napędy taśm, ponieważ pomijając teorię automatów, sortowanie po scaleniu na jednej taśmie jest trochę powolne.
Och, przepraszam - miałeś na myśli ograniczenia języka BASIC.
Cóż, musiałeś bardzo ostrożnie zarządzać swoimi zasobami - takimi jak numery linii - ponieważ nie chciałeś ich zabraknąć; prawdziwy ból w tyle, aby zmienić numerację całej sekcji i wpisać ją z powrotem, bez przypadkowej utraty wiersza lub dwóch kodów.
Nie - żartuję. Tak naprawdę nie mieliśmy tego problemu, dopóki nie pojawiły się komputery domowe z interpreterem w języku BASIC, który sam nie byłby w stanie samodzielnie numerować.
Użyliśmy również modułowości - w przypadku gdy wywołałeś nowy program, uruchomiłeś go, aż zakończył się i powrócił do programu wywołującego. Gosub na sterydach (ponieważ masz więcej pamięci do użycia), ale o wiele wolniejszy (ponieważ zajęło trochę czasu, aby maszyna znalazła program na taśmie i załadowała go, a następnie przewinęła i znalazła oryginalny program i załadowała go plecy...). Zupełnie jak widelec i exec, ale bez widelca, tylko lepiej, ponieważ cała przestrzeń pamięci była współdzielona.
Rygorystyczne stosowanie konwencji również pomogło - wiesz, na przykład: „MUSISZ zawsze celować w GOSUB w wierszu komentarza, który mówi, co robi ta procedura, i POWINIENEŚ zrobić to samo dla GOTO, jeśli to możliwe. Takie rzeczy. Och, i zorganizowane programowanie , nieco później - znowu „zgodnie z konwencją”.
Niektórzy posunęli się nawet do skrajności: OAOO , YAGNI , TSTTCPW , parowanie, bezlitośnie refaktoryzacja , tego typu rzeczy. Oczywiście nie pod tymi nazwami. (Zobacz także: Kaznodzieje ;-)
Dni chwały.
Were those BASIC dialects only used to teach aspiring programmes bad style
Hm ... To jest zły styl teraz ale nie było wtedy.