4 pontos por GN⁺ 2024-05-16 | 1 comentários | Compartilhar no WhatsApp

Código-fonte do Adobe Photoshop

Uma joia de software: a série de códigos-fonte históricos do Computer History Museum

  • Photoshop: alterar imagens digitais com o software Photoshop ou outro software de edição de imagens, especialmente de uma forma que distorce a realidade (fonte: dicionário online Merriam-Webster, 2012)

O nascimento do Photoshop

  • No fim dos anos 1980, os irmãos Thomas Knoll e John Knoll começaram a projetar e escrever um programa de edição de imagens
  • Thomas Knoll era doutorando em visão computacional na Universidade de Michigan e, em 1987, escreveu um programa para exibir e modificar imagens digitais
  • John Knoll trabalhava na empresa de efeitos visuais para cinema Industrial Light & Magic e usou esse programa de forma útil para edição de fotos

A evolução do Photoshop

  • O programa evoluiu gradualmente e passou a ser chamado de "Display"
  • No verão de 1988, ao perceberem que o programa tinha potencial comercial, mudaram seu nome para "Photoshop"
  • A fabricante de scanners de slides Barneyscan distribuiu cerca de 200 cópias da versão 0.87 em pacote com o nome "Barneyscan XP"

O contrato com a Adobe

  • Por recomendação de Russell Brown, diretor de arte da Adobe, a Adobe decidiu comprar a licença de distribuição do Photoshop
  • O contrato foi firmado em abril de 1989, e a versão 1.0 foi lançada no início de 1990
  • Nos dez anos seguintes, mais de 3 milhões de cópias do Photoshop foram vendidas

Detalhes técnicos do Photoshop inicial

  • O Photoshop inicial foi escrito principalmente em Pascal para o Apple Macintosh, com partes em linguagem de máquina para o microprocessador Motorola 68000
  • Na versão 1, Thomas trabalhou sozinho como engenheiro, e na versão 2 participaram dois engenheiros
  • Thomas trabalhou no programa principal da aplicação, e John escreveu muitos plug-ins de processamento de imagem

Divulgação do código-fonte

  • Com permissão da Adobe Systems, o Computer History Museum divulgou o código-fonte do Photoshop versão 1.0.1 de 1990 para uso não comercial
  • O código-fonte é composto por 179 arquivos e consiste em cerca de 128.000 linhas de código bem estruturado, com quase nenhum comentário
  • Cerca de 75% do código foi escrito em Pascal, e cerca de 15% em assembly 68000

Comentários sobre o código-fonte

  • Opinião de Grady Booch, cientista-chefe de engenharia de software no IBM Research Almaden e diretor do Computer History Museum:
    • Abrir o código-fonte do Photoshop 1.0 foi como abrir a tumba de um artefato antigo
    • A separação consistente entre interfaces e abstrações, e as decisões de projeto de abstrações componentizadas, foram muito bem executadas
    • A estrutura básica continua preservada mesmo em implementações modernas
    • Há quase nenhum comentário, mas o código é muito fácil de ler

Capturas de tela do Photoshop inicial

  • Tela inicial: mostra as ferramentas disponíveis
  • É possível selecionar cor, tamanho e textura do pincel
  • Oferece várias ferramentas de seleção e filtros de imagem
  • O recurso de camadas de imagem, adicionado na versão 3, não existe nas versões iniciais
  • Página de preferências que oferece recursos de personalização
  • Escolha limitada de fontes, tamanhos de fonte e estilos

Lista de divulgação de códigos-fonte históricos

  • Código-fonte do MacPaint e do QuickDraw, 18 de julho de 2010
  • Código-fonte da linguagem de programação APL, 10 de outubro de 2012
  • Código-fonte do Adobe Photoshop, 13 de fevereiro de 2013
  • Código-fonte do Apple II DOS, 12 de novembro de 2013
  • Código-fonte inicial do Microsoft MS-DOS, 25 de março de 2014
  • Código-fonte do Microsoft Word for Windows versão 1.1a, 25 de março de 2014
  • Código-fonte inicial do Digital Research CP/M, 1º de outubro de 2014
  • Código-fonte do Xerox Alto, 21 de outubro de 2014
  • Código-fonte inicial do Electronic Arts DeluxePaint, 22 de julho de 2015

Sobre o autor

  • Len Shustek é chairman emérito fundador do Computer History Museum

Artigos relacionados

  • Blog do CHM: Um computador para todos nós, 15 de dezembro de 2023
  • Blog do CHM: Quantos anos tem o seu Furby?, 13 de dezembro de 2023
  • Blog do CHM: Tartarugas, blocos e memórias, 5 de dezembro de 2023

Opinião do GN⁺

  • Valor histórico do Photoshop: o Photoshop revolucionou a edição de imagens digitais, e seu código-fonte ajuda a entender o contexto histórico do desenvolvimento de software no início dessa era.
  • Valor educacional do código: embora quase sem comentários, o código bem estruturado pode ser um material útil para o ensino de engenharia de software.
  • Avanço técnico: comparar a estrutura do Photoshop inicial com a das versões modernas ajuda a entender a evolução da arquitetura de software.
  • Visão crítica: a divulgação do código-fonte inicial tem valor histórico, mas como o uso comercial é restrito, há limitações para aplicação prática.
  • Projetos relacionados: softwares de edição de imagem de código aberto como o GIMP também oferecem recursos semelhantes e podem ser considerados alternativas ao Photoshop.

1 comentários

 
GN⁺ 2024-05-16
Opiniões no Hacker News

Resumo da coletânea de comentários do Hacker News

  • Experiência de arquivamento do código-fonte da Adobe

    • Compartilhamento da experiência de arquivar o código-fonte de Photoshop, Illustrator, PostScript e outros na Adobe.
    • Uso do backup dos disquetes originais do Mac de Thomas Knoll para transferir arquivos com um Mac Plus e um cabo serial.
    • Arquivos em vários formatos antigos de arquivo compactado, incluindo arquivos da versão 0.54 datados de 6 de julho de 1988.
    • Todo o código foi arquivado em um servidor Perforce, mas os backups iniciais do Illustrator estavam em um disco externo corrompido.
  • Experiência com troca de código-fonte com a Adobe

    • Relato de uma visita à Adobe em meados dos anos 90 para trocar código-fonte.
    • PhotoShop era baseado em MacApp e havia uma camada que funcionava no Windows.
    • Parte do código do PhotoShop e a parte de cálculos de espaço de cor foram aproveitadas, mas a maior parte foi ignorada.
    • Curiosidade para saber se ainda restam vestígios do MacApp no código-fonte atual.
  • Consistência da UX

    • Surpresa com o fato de a UX ainda ser, em geral, a mesma.
    • No início do lançamento do MacBook Pro M1, a versão beta Silicon do Adobe Photoshop era a que funcionava mais rápido.
    • Agora voltou a ficar lenta.
  • Dificuldade em entender a beleza do código-fonte

    • A pessoa viu o código-fonte, mas teve dificuldade para entender sua beleza.
    • Enquanto aprendia Rust e pensava na estrutura do código, ficou curiosa sobre como construir uma UI como a do Photoshop ou do 3D Studio Max.
    • Gostaria de conhecer bons recursos para aprender estrutura de código.
  • Artigo sobre o Adobe Photoshop 1.x

    • Artigo de 2013 sobre a versão 1.x do Adobe Photoshop de 1990.
  • Prevenção da generalização da marca registrada

    • A Adobe está se esforçando para evitar a generalização de sua marca registrada.
    • Exemplo de uso correto dado: "imagem aprimorada com o software Adobe® Photoshop® Elements", em vez de "photoshopped".
  • Elogios à divulgação de código-fonte antigo

    • Elogios às empresas que divulgam o código-fonte de softwares antigos.
    • É provável que muito código-fonte tenha se perdido com o tempo e com várias aquisições.
    • Como o uso universal de controle de versão é um fenômeno recente, é possível que muito código-fonte ainda exista em backups aleatórios em fita, disquetes ou impresso em fichários.
  • Experiência com versões iniciais do Photoshop

    • Relato de ter visto o Photoshop antes da Adobe em um hospital.
    • É possível que a versão MacApp da época ainda estivesse em beta.
    • Uso do algoritmo B-spline de Tom Knoll como base para o editor de curvas.
  • Carreira de John Knoll

    • John Knoll foi líder de FX na trilogia prequel de Star Wars e dirigiu Rogue One.
    • O documentário de bastidores da trilogia prequel continua muito bem preservado.