Sûr. Avant les événements Altair / MITS / SWTPC / Kim / Sinclair / Animaux domestiques / RadioScrap / OSI / Apple, il existait une ravissante petite machine appelée IBM 5100 . Il avait BASIC en ROM , un grand lecteur de cassettes (ou deux), 8 Ko de mémoire. un écran de 24 lignes et une imprimante, le tout pour un maigre USD 10 000 - un ordre de grandeur moins cher que votre mini typique. Construit à l’origine pour les scientifiques ( APL en ROM était également une option), mais quelques types de comptabilité l’ont alors découvert et ont lancé un véritable engouement: chaque petite entreprise en voulait un. Avec un logiciel personnalisé, bien sûr. Le 5110 a suivi cela, les lecteurs de bande ayant été remplacés par des disquettes de 8 pouces.
Un logiciel commercial? Galoons .
Pouvez-vous dire grand livre, paie, comptes fournisseurs, comptes clients, contrôle des stocks et facturation? Je suis allé là-bas, j'ai fait ça - en BASIC. Factures de services publics, stocks de voitures neuves et usagées, ramassage de camions à ordures et calendrier de livraison des boissons? Yup - BASIC. Voulez-vous suivre le minerai de fer des mines sur les trains sur les navires ... BASIC. Tout ce qui n’était pas surélevé se faisait probablement en BASIC. Commercialement, je veux dire. (Parce que RPG II ne compte pas ;-).
Comment at-on contourné les limitations?
Eh bien, la première chose que vous avez faite a été de renvoyer le client à IBM pour davantage de mémoire, car qui pourrait écrire quoi que ce soit d’important en 8 Ko? Il fallait simplement en avoir 16. Et si possible, avec deux lecteurs de bande, la théorie des automates mise à part, le tri par fusion sur une seule bande est un peu lent.
Oh, pardon, vous vouliez parler des limites de BASIC.
Eh bien, vous deviez gérer vos ressources avec précaution - des choses comme les numéros de ligne - parce que vous ne vouliez pas en manquer; Il est très pénible pour l’arrière de devoir renuméroter une section entière et de la saisir à nouveau, sans perdre accidentellement une ligne ou deux de code.
Nah - je plaisante. Nous n’avions pas eu ce problème jusqu’à ce que les ordinateurs personnels, avec un interpréteur BASIC, ne puissent pas renuméroter par eux-mêmes.
Nous avons également utilisé la modularité - vous avez appelé un nouveau programme, l'avez exécuté jusqu'à ce qu'il s'arrête et que vous reveniez au programme appelant. Un gosub sur stéroïdes (parce que vous avez plus de mémoire à utiliser), mais beaucoup plus lent (car il a fallu un certain temps à la machine pour trouver le programme sur la bande, puis le charger, puis rembobiner et trouver le programme original et le charger. retour...). Un peu comme un fork et un exec, mais sans le fork, mais en mieux parce que tout l’espace mémoire était partagé.
L'utilisation rigoureuse des conventions a également aidé - vous savez, comme "vous DEVEZ toujours cibler un GOSUB sur une ligne de commentaire qui dit ce que cette routine fait, et vous DEVEZ faire de même pour un GOTO lorsque cela est possible. Des choses comme ça. Oh, et structuré programmation , un peu plus tard - "par convention" à nouveau.
Certains sont même allés un peu à l'extrême: OAOO , YAGNI , TSTTCPW , l'appariement, le refactor sans merci, ce genre de choses. Pas par ces noms, bien sûr. (Voir aussi: Ecclésiaste ;-)
Les jours de gloire.
Were those BASIC dialects only used to teach aspiring programmes bad style
Hm ... C'est mauvais style maintenant mais ce n'était pas à l'époque.