2 pontos por GN⁺ 2023-12-02 | 1 comentários | Compartilhar no WhatsApp
  • Turbo Pascal, lançado pela Borland em novembro de 1983, completou oficialmente 40 anos em novembro de 2023
  • O Turbo Pascal é considerado o produto que deu início à Borland e o primeiro ambiente de desenvolvimento integrado (IDE) amplamente usado no setor
  • Na época, causou forte impressão pela experiência de desenvolvimento e pelo nível de acabamento do produto, o que levou a um grande sucesso comercial
  • A Embarcadero continua desenvolvendo a linha de compiladores sucessora, e o compilador de linha de comando Win32 do Delphi 12 Athens usa a versão 36.0
  • Como o esquema de numeração atual remonta ao primeiro Turbo Pascal, este 40º aniversário se conecta diretamente também à história da linha Delphi

Turbo Pascal, iniciado em novembro de 1983

  • Turbo Pascal foi um produto lançado pela Borland em novembro de 1983
  • Em novembro de 2023, completou oficialmente 40 anos

Lugar na história da Borland e dos IDEs

  • O Turbo Pascal é avaliado como um produto marco no setor
  • Foi o produto que deu início à empresa Borland
  • É citado como o primeiro IDE amplamente conhecido
  • Para os padrões da época, era um produto excelente, e a escala de seu sucesso também foi muito grande

Leituras adicionais e contexto de Pascal

Compiladores sucessores que seguiram até a Embarcadero

  • A Embarcadero continua desenvolvendo a linha de compiladores sucessores do Turbo Pascal
  • Recentemente, lançou a versão 36 desse compilador
  • No compilador de linha de comando do Delphi 12 Athens, aparece a identificação de versão Embarcadero Delphi for Win32 compiler version 36.0
  • Essa numeração de versão 36 segue um esquema que remonta ao primeiro Turbo Pascal

Easter Egg de comemoração dos 40 anos

  • A Embarcadero dedicou um Easter Egg do produto ao aniversário do Turbo Pascal para celebrar os 40 anos
  • A mensagem termina com “Happy 40th birthday, Turbo Pascal!”

1 comentários

 
GN⁺ 2023-12-02
Opiniões no Hacker News
  • Um dos jogos de computador de que eu gostava era ZZT, escrito em Turbo Pascal. Era um estranho jogo em modo texto criado por Tim Sweeney, da Epic Megagames, que misturava quebra-cabeças e tiro; até a versão shareware gratuita vinha com um editor de jogos e incluía uma pequena linguagem de programação chamada ZZT-OOP.
    O código-fonte original do ZZT se perdeu, mas alguns anos depois Adrian Siekierka fez uma engenharia reversa persistente do código Pascal original, de modo que, ao compilá-lo com a versão original do Turbo Pascal, ele gerasse um executável idêntico byte a byte. É impressionante.
    https://blog.asie.pl/2020/08/reconstructing-zzt/
    https://news.ycombinator.com/item?id=22609474
    https://benhoyt.com/writings/zzt-in-go/

    • Por causa do ZZT, mantenho Turbo Pascal instalado no meu computador
    • Para mim também, ZZT foi um software realmente especial e foi o que me fez entrar de verdade em programação. Antes eu copiava listagens de código BASIC de revistas ou fazia coisas bobas no BBC Micro da escola, mas no meu primeiro PC aprendi criando do zero o que eu queria com ZZT-OOP
    • ZZT também inspirou o overworld de Frog Fractions 2
  • Turbo Pascal me introduziu à programação. Lembro de ter gasto centenas de marcos alemães em licenças do Borland Pascal 7.0 e, depois, do Delphi 1.0 e 2.0, e acabei criando meu primeiro software “comercial” vendido por dinheiro.
    Na era do DOS, tirando Basic, acho que Turbo Pascal era o caminho mais fácil para entrar em programação; no Windows 3.1/95, o Delphi foi uma ferramenta que abriu meus olhos ao mostrar que programação de GUI podia ser tão fácil assim.
    Em vários aspectos, sinto que até regredimos desde então. Os compiladores Turbo Pascal / Delphi geravam programas GUI completos em binários pequenos, e fico me perguntando como softwares de desempenho semelhante hoje ficaram tantas ordens de grandeza maiores.

    • Nas primeiras versões do Turbo Pascal, desde que o programa e o código-fonte coubessem na RAM, o ciclo de mudar o código e ver o resultado era praticamente instantâneo mesmo nas máquinas da época. A interação também tinha sido projetada pensando nessa imediatidade e, pelo que me lembro, em vez de cuspir uma tela interminável de relatório de erros de compilação, ele levava você direto para a linha com erro.
      Se a causa fosse um erro de digitação, corrigir, recompilar e executar levava 1 segundo. As ferramentas de hoje muitas vezes têm outra filosofia, que exige do desenvolvedor ações desnecessárias.
    • Um programa GUI “completo” dos anos 90 provavelmente seria quase inutilizável pelos padrões atuais. Em outras palavras, os frameworks e programas de hoje não têm desempenho semelhante aos de meados dos anos 90; só recompilar um app de 25 anos atrás na versão atual de um framework já traria, em tese, coisas como Unicode, internacionalização, acessibilidade e suporte a rede.
      A exceção é a SAP, que de algum modo parece ter conseguido combinar a hostilidade ao usuário das UIs dos anos 90 com o consumo de recursos dos programas modernos. A linguagem que usei depois de BASIC também foi Turbo Pascal.
    • Ah, marcos, isso é antigo. Não sei se era só no Reino Unido, mas ao falar ou escrever, a gente não traduzia o nome mark para o inglês; sempre chamava de Deutschmark.
    • Naquele executável faltava pelo menos um grande elefante na sala: suporte a Unicode. Provavelmente nem caberia na RAM dos PCs da época.
    • Turbo Pascal ensinava não só a programação procedural top-down que era a forma comum de Pascal na época, mas também programação orientada a objetos por meio da demo Breakout.
  • O que mais me marcou no TP foi que cada função tinha exemplos de código simples e fáceis de entender, e tudo era organizado de forma lógica, então era fácil encontrar e usar. Por isso, mesmo sendo um adolescente que mal entendia BASIC, consegui aprender Turbo Pascal sozinho, sem internet, usando apenas a IDE
    Hoje há sistemas demais que nem chegam perto disso. Fico pensando se isso se devia às características simples dos sistemas x86 DOS da época, ou se se tornou impossível criar algo assim por causa do ritmo acelerado de mudanças, das exigências multiplataforma e da complexidade atuais

    • Processing(P5) tinha esse recurso. Na IDE, dava para selecionar uma string de texto e pesquisá-la na documentação; se fosse uma função ou constante interna, abria uma página HTML estática instalada junto com o software, sem precisar de internet nem de servidor. Mesmo offline, era possível navegar pela documentação, e sinto que essa capacidade básica se perdeu nos geradores de sites estáticos de hoje
      Eu acrescentaria que, na época, o Processing era o único framework de creative coding com documentação offline completa. Por exemplo, o OpenFrameworks até hoje é, em grande parte, quase uma documentação vazia gerada automaticamente
      Na minha opinião, isso foi um dos fatores que deram ao Processing uma vantagem sobre as alternativas em ambientes educacionais. Foi bem decepcionante que o p5.js não tenha continuado totalmente essa tradição, exigindo conexão online para ler a documentação, e passando a renderizar o texto com JavaScript ao abrir, em vez de ser um site estático. Ainda assim, a documentação em si é completa, incluindo os exemplos
      https://processing.org/
      https://p5js.org/
    • Isso acontece porque hoje as pessoas não escrevem documentação. Linguagens novas muitas vezes são open source, e existe uma cultura de “leia o código-fonte”; eu acho isso errado
    • Eu também aprendi Turbo Pascal sem livro. Havia um livro de BASIC que veio com o computador, mas Turbo Pascal era muito mais fácil. Para desenhar pixels, bastava escolher um modo de vídeo com double buffering e simplesmente desenhar os pixels; para ler a porta de joystick ou o mouse, era só ler
    • Turbo C era a mesma coisa. Hoje, para encontrar exemplos, é preciso contar com a sorte
    • Comigo foi igual. Usei GFA Basic por alguns anos e depois encontrei Turbo Pascal, que me pareceu uma versão de BASIC com blocos de código, tipos de variáveis incluindo records, funções e procedimentos, e até referências, o que ajudou muito. Aprendi Pascal apenas lendo a documentação de ajuda e vendo os exemplos muito claros e úteis que havia em quase todas as páginas
      Isso foi alguns anos antes de eu conhecer a internet na universidade, então não havia uma forma fácil de acessar materiais de aprendizado. Antes disso, eu tinha tentado aprender C algumas vezes sem muito sucesso; só depois de aprender TP consegui transferir para C o que tinha aprendido em Pascal, e mesmo assim com a ajuda de outro excelente produto da Borland, o C++ Builder
  • No fim dos anos 80, depois de assembly 6809E, variantes de BASIC estruturado e batch/shell, a primeira linguagem de programação “de verdade” que aprendi foi Turbo Pascal. Quando entrei em Ciência da Computação no começo dos anos 90, as aulas do primeiro ano também eram ministradas com Borland Pascal, então essa experiência foi bem útil
    Alguns anos depois, graças à minha base em Pascal, acabei trabalhando por cerca de 5 anos desenvolvendo apps customizados em Delphi, o que levou em seguida a um trabalho na Borland testando o Kylix e a IDE do C++Builder. Bons tempos
    Ainda sinto falta do Delphi. Hoje é algo tão óbvio que, se uma IDE não tiver plugins, isso é visto como uma falha fatal; mas naquela época, a ideia de uma biblioteca de componentes e um ambiente de codificação facilmente extensíveis na própria linguagem parecia pura magia. Era muito divertido mexer na VCL e na própria IDE
    É uma pena que a Borland tenha ido atrás do mercado enterprise, deixado os desenvolvedores de base para trás e, na prática, matado o crescimento da adoção pela comunidade. Pelo menos até por volta do Delphi 7, era um conjunto realmente incrível

    • No nosso país, Delphi era de longe o ambiente de desenvolvimento mais popular. Era uma situação curiosa: enquanto a maior parte do mundo ia de VB 5, nós usávamos Delphi. Visto de fora, parecia um ambiente excelente, mas, por algum motivo, parece que teve grande sucesso só em alguns mercados
    • Eu segui um caminho parecido, mas mais tarde, por causa das vagas de trabalho, tive que migrar para Visual Basic 5. Ainda assim, sinto que não há nada comparável ao Delphi para desenvolvimento de GUI. A VCL era genial
  • Meu primeiro contato com TP foi no inverno de 1993, quando eu tinha 14 anos e pirateei uma cópia em um BBS warez. Diferente de simplesmente executar arquivos .BAS, a força primordial que senti ao compilar meu próprio EXE foi extasiante
    Comecei a modificar o Renegade BBS e a criar programas door; também tentei criar worms, cavalos de Troia e vírus, embora tenha fracassado. Essa experiência mudou minha vida e abriu o caminho que me trouxe para a área de tecnologia. Além disso, já corrigi minhas tendências transgressoras da adolescência. Tenho uma grande dívida com a Borland

    • Para um adolescente que não entendia direito coisas como compiladores e interpretadores, poder criar meus próprios arquivos EXE com TP4 parecia ganhar um superpoder. Eu me sentia um programador de verdade
      Alguns anos depois, aos 16, desenvolvi um pequeno app para gerenciar os clientes do meu pai e realmente recebi por isso; com parte desse dinheiro, comprei uma versão legítima do TP6. Bons tempos
    • Isso me lembra os bons e velhos tempos dos BBS. Em 1989, aos 17 anos, depois de aprender a escrever drivers seriais baseados em interrupções, criei uma biblioteca door para Turbo Pascal e a distribuí como shareware. Ela foi bastante usada até a cena BBS desaparecer rapidamente em meados dos anos 90
    • Eu tive experiências parecidas na mesma época. Além das coisas transgressoras, também brincava com programação gráfica em um 386SX, usando assembly inline nas partes “críticas para desempenho”. Essa experiência definitivamente formou a base do que faço hoje
  • O Free Pascal ainda tem um modo parecido com o TP IDE original. Mas, como eles próprios admitem, o código está apodrecendo e ainda depende muito das peculiaridades antigas da plataforma MS-DOS original
    É uma pena não existir uma versão semelhante que possa ser usada no terminal como editor comum, como neovim ou emacs, e que se integre a recursos voltados a IDEs modernas, como LSP, parsers tree-sitter e Debug Adapter Protocol. Isso poderia mudar o jogo ao editar código remoto via conexões SSH/terminal

    • https://github.com/magiblot/tvision
    • Há pouco mais de 10 anos, alguns amigos fãs de Turbo Pascal migraram para o Lazarus. Parecia o sucessor lógico do Turbo Pascal e do Free Pascal. Pessoalmente, eu não gostava muito da linguagem Pascal, então acabei migrando para C++ no Emacs
  • É difícil exagerar o quanto o Turbo Pascal era mais rápido que os concorrentes. Era tão rápido que dava para desconfiar que havia algum truque, e os programas gerados também eram mais rápidos
    Para a época, era uma obra-prima, e os elogios que recebeu foram plenamente merecidos

    • Em uma aula de computação gráfica na faculdade, ministrada pelo próprio Jack Bresenham, perguntei se poderia usar o novo Borland Turbo C para um trabalho. Depois de recompilar às pressas para a demonstração, descobri que, como o PC da sala não era um 80286, meu código rodava a apenas um terço da velocidade dos códigos dos outros, escritos em Turbo Pascal v4
      Foi assim que aprendi que um compilador maduro era melhor que um compilador em versão 1.0
    • Exato. Mesmo nos processadores lentos da época, o compilador Turbo Pascal processava o código a toda velocidade. Bem diferente dos sistemas de build complexos de hoje, que levam um tempão até para compilar um programa que faz a mesma coisa
    • Até hoje Pascal é citado como uma linguagem de compilação rápida. Ele costuma aparecer assim também em discussões sobre Go e Rust
      Lembro de ter compilado uma versão da série FPC 2.0 alguns anos atrás em um PC com Windows e 512 MB de RAM, e não levou nem 5 minutos
    • Seu sucessor, Delphi, ainda é assim. Há um post sobre um projeto real com pouco mais de um milhão de linhas, incluindo vídeo, e os comentários também tratam do tempo de compilação em Win64
      https://www.tmssoftware.com/site/blogold.asp?post=759
    • https://prog21.dadgum.com/47.html
  • Quando eu era criança, o simpático dono de uma loja de informática me vendeu, em ótimas condições, um PC semicompatível rodando MS-DOS 1.25. Foi mais ou menos em troca de eu cortar a grama umas cem vezes e cuidar de criança
    Ele vendia o Turbo Pascal para MS-DOS genérico, ou seja, uma versão que não presumia o BIOS do PC, em disquetes de 8 polegadas, e transferiu para o formato de 5,25 polegadas de 160 KB que meu semicompatível usava. Espero ter sido, na época, tão grato quanto me sinto hoje. Aquilo deu início à minha carreira

    • Então vou perguntar: que PC semicompatível era esse, afinal?
  • No começo dos anos 80, eu usava no Apple ][+ e no //e o Apple Pascal, ou seja, um ambiente baseado no UCSC p-system Pascal, e depois migrei para o Turbo Pascal no DOS. O Turbo Pascal era empolgante de verdade. Era uma experiência excelente graças ao compilador muito rápido, ao bom feedback, ao editor colorido e aos atalhos de teclado do WordStar, com os quais eu já estava familiarizado
    Também me lembro de quando meus programas ficaram grandes o bastante para precisar usar o recurso de overlays. Era um recurso que, no DOS, permitia carregar diferentes partes do programa praticamente como páginas
    Também me lembro de ter conhecido David Intersimone, que foi um excelente embaixador da Borland, em algum momento dos anos 80, provavelmente mais para o fim da década. Foi quando ele visitou nossa universidade a convite do capítulo local da ACM

  • Curiosamente, Turbo Pascal foi a primeira linguagem de programação de alto nível que aprendi, e o ambiente era um Macintosh Plus. Só mais tarde descobri que Turbo Pascal era mais associado ao mundo dos PCs
    Na faculdade, comprei meu primeiro computador Apple, um Macintosh Plus, com empréstimo estudantil, e por acaso vi um exemplar do Turbo Pascal para Mac nos classificados do jornal da universidade. Um professor estava vendendo por cerca de 40 dólares, então comprei na hora
    Felizmente havia manual, mas as ferramentas de desenvolvimento para Macintosh eram muito simples. Não havia ResEdit, e existia um aplicativo estranho chamado R-Maker, que exigia criar recursos do Macintosh em arquivos de texto e depois passá-los pela ferramenta para gerar o resource fork
    Alguns dos meus primeiros apps foram implementações em Turbo Pascal de algoritmos publicados na coluna Computer Recreations da Scientific American. Por sorte, quase não precisavam de UI, então geralmente bastava uma janela e alguns botões
    Mais tarde conheci o THINK Pascal, uma IDE muito mais centrada no Mac, e migrei para ela; depois ainda mergulhei no THINK C
    Ainda assim, sempre vou guardar uma lembrança carinhosa do Turbo Pascal. Naquela época em que eu entrava em um mundo novo e inexplorado, foi o Turbo Pascal que abriu a porta para mim