Fits on a Floppy - Manifesto para software pequeno
(fitsonafloppy.com)- 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
Comentários do Lobste.rs
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
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
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
https://cdn.fosstodon.org/media_attachments/files/…
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
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