1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • O inchaço do software é a mudança pela qual apps que antes cabiam em um único disquete passaram a exigir gigabytes de armazenamento e longos tempos de espera
  • O disquete de 1,44 MB não é um limite brincalhão, mas um padrão de contenção, com a premissa de que até ferramentas de propósito único podem ser feitas de forma suficientemente pequena
  • Software pequeno busca download rápido e execução imediata, baixo uso de memória e CPU, maior duração de bateria e suporte a sistemas antigos
  • Enfatiza o princípio de usar apenas nativo, evitar o inchaço de dependências e garantir que todo código tenha uma razão para existir
  • O selo Floppy é aplicado a apps cujo tamanho total de download é inferior a 1,44 MB, e a essência não está na nostalgia, mas na atitude de desenvolvimento que valoriza cada byte

Critérios para software pequeno

  • Com o inchaço do software, apps que antes cabiam em um único disquete agora passaram a exigir gigabytes de armazenamento, longos tempos de espera e paciência excessiva
  • O disquete de 1,44 MB é usado não como uma limitação brincalhona, mas como um padrão de contenção
  • Se softwares que antes operavam negócios inteiros cabiam nesse tamanho, então ferramentas modernas, focadas em uma única finalidade, também podem ser feitas de forma suficientemente pequena
  • Software pequeno tem como objetivo baixar rápido, executar imediatamente e reduzir carregamentos desnecessários
  • Respeita o dispositivo do usuário ao incluir baixo uso de memória e CPU, maior duração de bateria e suporte a sistemas antigos
  • Defende o uso de apenas nativo, evita o inchaço de dependências e afirma que todo código deve ter uma razão para existir
  • Software que faz uma coisa bem tende a ter funcionalidades mais focadas, menos bugs e maior longevidade

Forma de medição e intenção

  • O selo Floppy é aplicado a apps cujo tamanho total de download é inferior a 1,44 MB, a capacidade de um disquete padrão de 3,5 polegadas
  • O tamanho exibido no disco é baseado no tamanho do binário universal informado pela plataforma de distribuição do desenvolvedor
  • O tamanho realmente baixado no dispositivo pode ser menor que o tamanho exibido, porque o platform thinning entrega apenas as partes necessárias para um hardware específico
  • O essencial não é a nostalgia pelo disquete em si, mas a postura de desenvolvimento segundo a qual cada byte importa, restrições geram criatividade e o software deve ser leve
  • Como exemplo relacionado, há um link para a história de criação do premiado jogo de 39 KB YOYOZO

1 comentários

 
GN⁺ 3 시간 전
Comentários do Lobste.rs
  • Em geral concordo, mas isso varia muito dependendo do que já está instalado no sistema. Um binário com link dinâmico feito em C ou um script Python podem se encaixar facilmente porque o runtime já está em quase todos os computadores
    Por outro lado, se você fizer link estático por portabilidade ou usar uma linguagem com runtime menos comum, como Janet, passa fácil desse limite
    • Tendo a concordar. A menos que você esteja criando um aplicativo nativo sobre dependências razoáveis que já dá para assumir que existem no sistema operacional de destino, como um toolkit de UI, é difícil atender esse critério de tamanho. Até uma libc “pequena” normalmente já passa de 0,5 MB, e se for fazer requisições de rede, LibCURL também vai para centenas de KB, e BearSSL parece ficar na mesma faixa
      Meu projeto Decker tenta ao máximo reduzir dependências externas, mas por portabilidade depende de SDL e SDL_image, distribuídos junto. Hoje a versão para Apple Silicon tem 6 MB comprimidos, dos quais cerca de 4,6 MB são os dylibs de SDL e SDL_image. A build web começa por volta de 0,5 MB, assumindo que o usuário já tenha um navegador HTML5 razoavelmente recente, mas se incluir o navegador, a dependência vira centenas de MB
      Os arquivos deck brutos de aplicativos e bibliotecas úteis podem ficar em poucas dezenas de KB se o runtime já existir. Love2d está numa situação parecida, em cima de SDL e vários componentes embutidos, com 10 MB comprimidos e 25 MB descomprimidos. Em cima de Love2d dá para fazer aplicativos úteis de poucas dezenas de KB só com scripts Lua e gráficos vetoriais, mas, de novo, isso é supondo que o runtime já exista
      Se os recursos de desenvolvimento fossem ilimitados, evitar a dependência de SDL seria uma meta bacana, mas na maioria dos projetos baseados em SDL isso provavelmente significaria abandonar de vez o suporte a sistemas operacionais menos populares em troca de economizar alguns MB no instalador. Se isso conta como inchaço, aí depende do ponto de vista
  • Evitar que o software cresça é bom, mas a maioria dos aplicativos grandes é grande por causa dos arquivos de assets, não do software em si. A resolução dos displays aumentou, e hoje também damos mais atenção à experiência do usuário do que antes
    No passado, só texto já era algo razoável, mas hoje isso é raro. Na lista de motivações apresentada, só a primeira se conecta diretamente ao tamanho real do binário bruto; as outras são mais vantagens separadas, boas de ter
    Além disso, o próprio site usa cerca de 200.000 bytes para entregar um manifesto de 1.600 bytes
  • Já joguei jogos distribuídos em mais de 4 disquetes e vivi a época em que eles ainda vinham com um manual impresso de 100 páginas contendo todos os diálogos de fato, então não preciso nem um pouco que isso volte
    • Tem até um certo charme pensar em montar o jogo na cabeça a partir de três mídias diferentes :-) Qual era o seu jogo favorito naquela época?
  • Parece familiar https://fosstodon.org/@dillo/113913161923323567
    https://cdn.fosstodon.org/media_attachments/files/…
  • Como alguém que passou a infância instalando jogos por disquete, eu entendo a nostalgia, mas isso é só nostalgia pura
    Hoje em dia, o usuário nem percebe se o download tem 1,44 MB, 2,88 MB ou mais do que isso, e também não sente diferença ao executar o binário
  • Dizer que “aplicativos que antes cabiam em um único disquete agora exigem alguns GB de armazenamento, vários minutos e paciência demais” é exagero
    Existiam, sim, aplicativos de um único disquete, mas a maior parte do software sério dos anos 80 e 90 era distribuída em vários discos. Por exemplo, Microsoft Word v2.0 em 7 discos com 2 discos suplementares, Lotus 1-2-3 em 13 disquetes, e até Doom vinha em 4 disquetes
    A ideia de caber em um disquete não era comum nem mesmo na era dos disquetes, e todo mundo sabia que software maior podia simplesmente ser distribuído em vários discos
  • Lembro da época em que dava para colocar uma distribuição Linux inteira em um único disquete. O Tom's RootBoot Disk era excelente como sistema de recuperação
  • Peraí, você está dizendo que não podemos colocar 2 KB de citações de Lovecraft em todo binário?
  • Usei esse protetor de tela por uma ou duas semanas e ele é muito divertido. Metade é torradeiras voadoras, metade é aquela sensação de “ah, eu conheço esse disco”
  • Outro dia minha família estava vendo um quiz show e apareceu uma pergunta sobre quanto cabia em um disquete padrão. Meu filho de 23 anos nunca viu um disquete na vida, e mesmo assim entende bem mais de informática do que a maioria das pessoas da idade dele