Certo. Antes do acontecimento do Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple, havia uma pequena e deliciosa máquina conhecida como IBM 5100 . Tinha BASIC em ROM , uma grande unidade de fita cassete (ou duas), 8 KB de memória. uma tela de 24 linhas e uma impressora, por apenas US $ 10.000 - uma ordem de magnitude mais barata que o seu mini típico. Originalmente construído para cientistas (o APL na ROM também era uma opção), mas alguns tipos de contabilidade o descobriram e começaram uma mania: toda pequena empresa queria um. Com software personalizado, é claro. O 5110 seguiu isso, com as unidades de fita substituídas por disquetes de 8 ".
Algum software comercial? Galoons .
Você pode dizer contabilidade, folha de pagamento, contas a pagar, contas a receber, controle de estoque e faturamento? Eu estive lá, fiz isso - no BASIC. Contas de serviços públicos, estoque de carros novos e usados, coleta de caminhões de lixo e agendamento de entrega de bebidas? Sim - BÁSICO. Deseja rastrear minério de ferro de minas em trens para navios ... BASIC. Tudo o que não foi elevado provavelmente estava sendo feito no BASIC. Comercialmente, quero dizer. (Porque o RPG II não conta ;-).
Como se resolveu as limitações?
Bem, a primeira coisa que você fez foi enviar o cliente de volta à IBM para obter mais memória, porque quem poderia escrever algo sério em 8 KB? Você simplesmente tinha que ter 16. E duas unidades de fita, se possível, porque, à parte a teoria dos autômatos, a classificação por mesclagem em uma única fita é bem lenta.
Oh, desculpe - você quis dizer as limitações do BASIC.
Bem, você tinha que gerenciar seus recursos com muito cuidado - coisas como números de linha - porque não queria ficar sem esses; É uma verdadeira dor de cabeça ter que renumerar uma seção inteira e digitar tudo de volta, sem perder acidentalmente uma ou duas linhas de código.
Nah - só brincando. Na verdade, não tivemos esse problema até aparecerem computadores domésticos, com um intérprete BASIC que não podia renumerar sozinho.
Também usamos a modularidade - onde você chamava um novo programa, o executava até o encerramento e voltava ao programa de chamada. Um gosub com esteróides (porque você tem mais memória para usar), mas bem mais lento (porque demorou um tempo para a máquina encontrar o programa na fita e carregá-lo, depois retroceder e encontrar o programa original e carregar esse de volta...). Muito parecido com um fork e exec, mas sem o fork, apenas melhor porque todo o espaço de memória foi compartilhado.
O uso rigoroso de convenções também ajudou - você sabe, como "você sempre deve direcionar um GOSUB para uma linha de comentários que diga o que essa rotina faz, e você deve fazer o mesmo para um GOTO sempre que possível. Coisas assim. Ah, e estruturar programação , um pouco mais tarde - "por convenção" novamente.
Alguns até foram um pouco ao extremo: OAOO , YAGNI , TSTTCPW , emparelhamento, refatorar sem piedade, esse tipo de coisa. Não por esses nomes, é claro. (Veja também: Eclesiastes ;-)
Os dias de glória.
Were those BASIC dialects only used to teach aspiring programmes bad style
Hum ... É um estilo ruim agora, mas não era naquela época.