Um pouco sobre como era a "informática" nas escolas nos anos 90 e por que todos os programadores daquela época eram exclusivamente autodidatas.

Como ensinaram as crianças a programar
No início dos anos 90, algumas escolas de Moscovo começaram a equipar seletivamente salas com computadores. As salas eram imediatamente protegidas com grades nas janelas e uma pesada porta de ferro. De algum lugar, aparecia um professor de informática (que parecia ser a pessoa mais importante depois do diretor), cuja principal tarefa era garantir que ninguém tocasse em nada. Absolutamente nada. Nem na porta de entrada.
Nas salas, a maioria das vezes era possível encontrar sistemas BK-0010 (em suas variantes) e BK-0011M.

A foto foi retirada
Para as crianças, foram apresentadas informações sobre a estrutura geral, além de uma dúzia de comandos em "BASIC" para que pudessem desenhar linhas e círculos na tela. Para as classes menores e intermediárias, provavelmente isso era suficiente.
O salvamento de suas criações (programas) na época tinha seus próprios problemas. Na maioria das vezes, os computadores eram conectados em rede através de controladores de canal único com topologia de bus compartilhado e velocidade de 57.600 bps. Normalmente, havia apenas uma unidade de disquete, e muitas vezes ela não funcionava corretamente. Às vezes funcionava, às vezes não, a rede travava, e o disquete não era lido.
Naquela época, eu carregava comigo esta criação com capacidade de 360 KB.

As chances de eu conseguir recuperar meu programa dela eram de 50-70%.
No entanto, o maior problema de todas essas histórias com os computadores "BK" eram as travadas intermináveis.
Isso poderia acontecer a qualquer momento, seja ao digitar código ou ao executar um programa. Um sistema travado significava que você havia perdido 45 minutos, já que era necessário recomeçar, mas o tempo restante da aula não era suficiente para isso.
Perto de 1993, algumas escolas e colégios começaram a ter boas salas com máquinas 286, e em alguns lugares até haviam "três". Em termos de linguagens de programação, havia duas opções: onde terminava o "BASIC", começava o "Turbo Pascal".
Programação em "Turbo Pascal" usando "tankes" como exemplo
No "Pascal", as crianças aprendiam a construir ciclos, desenhar várias funções e trabalhar com arrays. No colégio de ciências exatas, onde passei um tempo, tínhamos apenas uma aula de informática por semana. E durante dois anos foi uma completa chatice. É claro que eu queria fazer algo mais sério do que apenas exibir na tela os valores de um array ou uma certa senoide.
Tanques
Battle City foi um dos jogos mais populares nas versões de consoles clones do NES (Dendy, etc.).

Em 1996, a popularidade dos 8 bits havia passado, eles estavam há muito guardados nos armários, e eu achei interessante, como algo mais ambicioso, fazer um clone dos "Tanques" para PC. A seguir, vou explicar como foi necessário se esforçar para criar algo com gráficos, mouse e som em "Pascal".

É possível desenhar apenas palitos e círculos
Vamos começar com os gráficos.

Na versão básica, o "Pascal" permitia desenhar algumas figuras, preencher e definir as cores de pontos. Os procedimentos mais avançados no módulo Graph, que nos aproximam dos sprites, são GetImage e PutImage. Com eles, era possível capturar uma área da tela em uma região de memória previamente reservada e depois usar essa parte como uma imagem rasterizada. Em outras palavras, se você quiser usar repetidamente na tela certos elementos ou imagens, primeiro você os desenha, copia para a memória, limpa a tela, desenha o próximo e assim até criar a biblioteca desejada na memória. Como tudo acontece rapidamente, o usuário não percebe esses truques.
O primeiro módulo a utilizar sprites foi o editor de mapas.

Ele tinha um campo de jogo demarcado. Clicar com o mouse abria um menu onde você podia escolher uma das quatro opções de obstáculos. A propósito, sobre o mouse...
O mouse já era o final dos anos 90
Claro que todos tinham mouses, mas até meados dos anos 90, eles eram usados apenas no Windows 3.11, em pacotes gráficos e em um pequeno número de jogos. Em Wolf e Doom jogava-se apenas com o teclado. E no ambiente DOS, o mouse não era realmente necessário. Por isso, na Borland, o módulo para trabalhar com o mouse nem era incluído na versão padrão. Era preciso procurar entre conhecidos que levantavam as mãos e exclamavam "para que você precisa disso?".
No entanto, encontrar um módulo para interagir com o mouse é apenas metade do trabalho. Para clicar nos botões na tela com o mouse, era necessário desenhá-los. E em duas versões (pressionado e não pressionado). O botão não pressionado tem a parte superior clara, e abaixo dele há uma sombra. Já o pressionado é o contrário. E desenhar isso na tela três vezes (não pressionado, pressionado, depois novamente não pressionado). Além disso, não esquecer de colocar atrasos na exibição e esconder o cursor.

Por exemplo, o processamento do menu principal no código parecia assim:

Som – apenas um bleep do PC Speaker
A história do som é à parte. No início dos anos noventa, os clones da Sound Blaster estavam apenas se preparando para seu triunfo, e a maioria dos aplicativos funcionava apenas com o alto-falante embutido. O máximo que ele podia fazer era reproduzir apenas um tom ao mesmo tempo. E foi exatamente isso que o Turbo Pascal permitia. Através da procedure sound, era possível 'emitir sons' em diferentes frequências, o que era suficiente para os sons de tiros e explosões, mas não servia para uma introdução musical, que na época estava na moda. No final, encontrei uma solução bastante engenhosa: em meu próprio arquivo de software, havia um 'executable' que havia sido baixado de alguma BBS. Ele podia fazer milagres – reproduzir wavs não compactados através do PC Speaker, e fazia isso a partir da linha de comando, sem ter uma interface própria. Tudo que era necessário era chamá-lo através da procedure exec do Pascal e garantir que essa construção não falhasse.
No final, uma música vibrante apareceu na introdução, mas ocorreu uma situação engraçada. Em 1996, eu tinha um sistema Pentium 75, overclockado para 90. Tudo funcionava perfeitamente nele. No entanto, na universidade, onde tivemos Pascal no segundo semestre, as 'três' máquinas estavam bem desgastadas. Combinando isso com o professor, levei esses tanques na segunda aula para conseguir a aprovação e não voltar mais. E assim, após o início, surgiu um rugido alto do alto-falante, misturado com sons gorgolejantes. Basicamente, a 'três' de 33 megahertz não conseguiu rodar aquele 'executable' corretamente. Mas, no geral, estava tudo bem, exceto pelo atraso na leitura do teclado, que arruinava toda a jogabilidade, independentemente do desempenho do PC.

Mas o principal problema não está no 'Pascal'
Na minha opinião, "Tanchiki" é o máximo que se podia extrair do Turbo Pascal sem inserções em assembler. As desvantagens óbvias do produto final incluem uma lentidão na leitura do teclado e uma lentidão na renderização da gráfica. A situação era piorada pela escassez de bibliotecas e módulos de terceiros. Podiam ser contados com os dedos de uma mão.
Mas o que mais me decepcionava era a abordagem da educação escolar. Naquela época, ninguém falava sobre as vantagens e possibilidades de outras linguagens. Nas aulas, começavam a falar imediatamente sobre begin, println e if, o que aprisionava os alunos dentro da paradigma do basic-pascal. Ambas as linguagens podem ser consideradas exclusivamente educacionais. Sua aplicação "prática" é um fenômeno raro.
Por que ensinar às crianças linguagens falsas é um mistério para mim. Elas podem ser mais visuais. Embora algumas variações do "Basic" sejam usadas em lugares. Mas, de qualquer forma, se uma pessoa pensar em vincular seu futuro à programação, ela terá que aprender do zero outras linguagens. Então, por que não dar aos alunos as mesmas tarefas didáticas, mas já em uma plataforma (linguagem) adequada, dentro da qual possam desenvolver-se sozinhos?
A propósito, quanto às tarefas. Na escola e na faculdade, elas sempre foram abstratas: calcular isso, construir uma função, desenhar algo. Estudei em três escolas diferentes, além de termos Pascal no primeiro ano da faculdade, e nunca os professores propuseram uma tarefa realmente prática. Por exemplo, fazer um bloco de notas ou algo útil. Tudo era fictício. E quando uma pessoa resolve tarefas vazias por meses, que depois vão para o lixo... Enfim, as pessoas saem da faculdade exaustas.
Aliás, no terceiro ano da mesma universidade, colocaram "C++" no programa. Parecia ser algo bom, mas o pessoal estava cansado, saturado de fakes e tarefas "educativas". O entusiasmo, como da primeira vez, não era visível em ninguém.
P.S. Pesquisei sobre quais linguagens estão sendo ensinadas nas escolas nas aulas de informática. Tudo como há 25 anos: Basic, Pascal. Com algumas inserções de Python.
Fonte: habr.com
