Sicuro. Prima che accadessero le cose di Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple, c'era una deliziosa piccola macchina conosciuta come IBM 5100 . Aveva BASIC in ROM , una grande unità nastro (o due), 8 KB di memoria. uno schermo a 24 linee e una stampante, il tutto per un misero 10.000 USD - un ordine di grandezza più economico del tuo mini standard. Originariamente costruito per gli scienziati (anche APL in ROM era un'opzione), ma alcuni tipi di contabilità lo scoprirono e iniziarono una mania: ogni piccola impresa ne voleva uno. Con software personalizzato, ovviamente. Il 5110 lo seguì, con le unità a nastro sostituite da floppy da 8 ".
Qualche software commerciale? Galoons .
Puoi dire contabilità generale, libro paga, contabilità fornitori, contabilità clienti, controllo inventario e fatturazione? Ci sono stato, l'ho fatto - in BASIC. Bollette, inventario auto nuove e usate, ritiro camion e pianificazione consegna bevande? Sì - BASIC. Vuoi rintracciare il minerale di ferro dalle miniere ai treni sulle navi ... BASIC. Tutto ciò che non era un pavimento sopraelevato probabilmente veniva fatto in BASIC. Commercialmente, intendo. (Perché RPG II non conta ;-).
Come si sono aggirati i limiti?
Bene, la prima cosa che hai fatto è stata rimandare il cliente a IBM per avere più memoria, perché chi potrebbe scrivere qualcosa di serio in 8 KB? È sufficiente doveva avere 16. E due unità a nastro, se possibile, perché la teoria degli automi a parte, si fondono l'ordinamento su un singolo nastro è, beh, un po 'lento.
Oh, scusa, intendevi i limiti di BASIC.
Bene, dovevi gestire le tue risorse abbastanza attentamente - cose come i numeri di riga - perché non volevi esaurirle; vero dolore nella parte posteriore per dover rinumerare un'intera sezione e digitare tutto nuovamente, senza perdere accidentalmente una o due righe di codice.
No, sto solo scherzando. In realtà non abbiamo avuto questo problema fino al micro-er, si sono presentati i computer di casa, con un interprete BASIC che non poteva fare rinumerazione da solo.
Abbiamo anche usato la modularità: dove hai chiamato un nuovo programma, lo hai eseguito fino alla sua chiusura e sei tornato al programma chiamante. Un gosub sugli steroidi (perché hai più memoria da usare), ma molto più lento (perché la macchina ha impiegato un po 'di tempo per trovare il programma sul nastro e caricarlo, quindi riavvolgere e trovare il programma originale e caricarlo indietro...). Un po 'come un fork e un exec, ma senza il fork, solo meglio perché l'intero spazio di memoria era condiviso.
Anche un uso rigoroso delle convenzioni ha aiutato - sai, come "DEVI sempre indirizzare un GOSUB a una riga di commento che dice ciò che fa questa routine e DOVREBBE fare lo stesso per un GOTO quando possibile. Roba del genere. Oh, e strutturato programmazione , un po 'più tardi - di nuovo "per convenzione".
Alcuni sono andati anche un po 'all'estremo: OAOO , YAGNI , TSTTCPW , accoppiamenti, refactor senza pietà, quel genere di cose. Non con quei nomi, ovviamente. (Vedi anche: Ecclesiaste ;-)
I giorni di gloria.
Were those BASIC dialects only used to teach aspiring programmes bad style
Hm ... E 'un cattivo stile ora , ma non era allora.