Fits on a Floppy - Küçük Yazılımlar İçin Bir Manifesto
(fitsonafloppy.com)- Yazılım şişkinliği, geçmişte tek bir floppy diske sığan uygulamaların artık gigabaytlarca depolama alanı ve uzun bekleme süreleri istemesine yol açan değişimi ifade ediyor
- 1.44MB floppy disk, şakacı bir sınır değil, ölçülülük için bir ölçüt; tek amaçlı araçların da yeterince küçük yapılabileceği varsayımına dayanıyor
- küçük yazılım; hızlı indirme ve anında çalıştırma, düşük bellek·CPU kullanımı, uzun pil ömrü ve eski sistem desteğini hedefliyor
- Yalnızca native kullanmayı, bağımlılık şişkinliğinden kaçınmayı ve her kod parçasının varlık nedenine sahip olması gerektiği ilkesini vurguluyor
- Floppy rozeti, toplam indirme boyutu 1.44MB'ın altında olan uygulamalara veriliyor; asıl mesele nostalji değil, her baytı önemseyen bir üretim anlayışı
Küçük yazılımın ölçütleri
- Yazılım şişkinliği nedeniyle, geçmişte tek bir floppy diske sığan uygulamalar artık gigabaytlarca depolama alanı, uzun bekleme süreleri ve aşırı sabır gerektiriyor
- 1.44MB floppy disk, şakacı bir kısıt değil, ölçülülük için bir ölçüt olarak kullanılıyor
- Geçmişte tüm işletmeleri çalıştıran yazılımlar bu kapasiteye sığıyorsa, günümüzün odaklı tek amaçlı araçları da fazlasıyla küçük yapılabilir
- Küçük yazılım, hızlı indirilip anında çalıştırılmayı ve gereksiz yüklemeleri azaltmayı hedefliyor
- Düşük bellek ve CPU kullanımı, daha uzun pil ömrü ve eski sistem desteğiyle kullanıcının cihazına saygı duyuyor
- Yalnızca native kullanmalı, bağımlılık şişkinliğinden kaçınmalı ve her kod parçasının bir varlık nedeni olmalı
- Tek bir işi iyi yapan yazılımın işlevleri daha odaklı olur, hata sayısı azalır ve daha uzun ömürlü olabilir
Ölçüm yöntemi ve niyet
- Floppy rozeti, toplam indirme boyutu standart 3.5 inç floppy diskin kapasitesi olan 1.44MB'ın altında olan uygulamalara veriliyor
- Diskte görünen boyut, geliştiricinin dağıtım platformunun bildirdiği universal binary boyutu temel alınarak belirleniyor
- Cihaza gerçekten indirilen boyut, platform thinning ile yalnızca ilgili donanım için gerekli parçalar gönderildiğinden, görünen boyuttan daha küçük olabilir
- Esas mesele floppy diskin kendisine duyulan nostalji değil; her baytın önemli olduğu, kısıtların yaratıcılık doğurduğu ve yazılımın hafif olması gerektiğini savunan bir üretim anlayışı
- İlgili bir örnek olarak, 39KB boyutundaki ödüllü oyun YOYOZO yapım süreci bağlantısı veriliyor
1 yorum
Lobste.rs yorumları
Buna karşılık taşınabilirlik için statik bağlantı yaparsanız ya da Janet gibi çalışma zamanı daha az yaygın bir dil kullanırsanız bu ölçütü rahatça aşarsınız
Benim projem Decker, dış bağımlılıkları azaltmaya çalışıyor ama taşınabilirlik için SDL ve SDL_image’a bağlı ve bunlarla birlikte dağıtılıyor. Şu anki Apple Silicon sürümü sıkıştırılmış halde 6MB; bunun yaklaşık 4.6MB’ı SDL ve SDL_image dylib’lerinden oluşuyor. Web derlemesi, kullanıcının zaten yeterince güncel bir HTML5 tarayıcısına sahip olduğu varsayımıyla yaklaşık 0.5MB’tan başlıyor; ama tarayıcıyı da dahil ederseniz bağımlılıklar yüzlerce MB oluyor
Yararlı uygulamalar ve kütüphanelerin ham deck dosyaları, çalışma zamanı zaten varsa onlarca KB ile sınırlı kalabiliyor. Love2d da SDL ve çeşitli yerleşik bileşenlerin üzerinde çalışan benzer bir durumda; sıkıştırılmış 10MB, açılmış halde 25MB. Love2d üzerinde yalnızca Lua betikleri ve vektör grafiklerle onlarca KB’lık yararlı uygulamalar yapılabilir, ama yine ancak çalışma zamanı zaten varsa
Geliştirme kaynakları sınırsız olsa SDL bağımlılığından kaçınmak harika bir hedef olurdu; ama SDL tabanlı projelerin çoğunda kurulum dosyasından birkaç MB azaltmak, daha az popüler işletim sistemlerine desteği tamamen bırakmak anlamına gelebilir. Bunu şişkinlik olarak görüp görmeyeceğiniz bakış açısına bağlı
Eskiden yalnızca metin makuldü ama bugün nadir. Sunulan gerekçe listesindeki şeylerden gerçek ham ikili boyutuyla doğrudan bağlantılı olan yalnızca ilki; geri kalanı ise olsa güzel olur denecek ayrı avantajlar gibi duruyor
Üstelik o sitenin kendisi de 1,600 baytlık bir manifesto iletmek için yaklaşık 200,000 bayt kullanıyor
https://cdn.fosstodon.org/media_attachments/files/…
Bugünün kullanıcıları indirmenin 1.44MB mı 2.88MB mı yoksa daha büyük mü olduğunu fark etmez; yürütülebilir dosyayı çalıştırırken de farkı hissetmez
Tek disketlik uygulamalar vardı ama 80’ler ve 90’lardaki ciddi yazılımların çoğu birden fazla diskette dağıtılıyordu. Örneğin Microsoft Word v2.0 on 7 disks with 2 supplemental disks, Lotus 1-2-3 on 13 floppy disks ve hatta Doom bile 4 floppy disks idi
Tek diskete sığar fikri disket çağında bile yaygın değildi; daha büyük yazılımların birden fazla diskette dağıtılabileceğini herkes biliyordu