1 puan yazan GN⁺ 2 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2 시간 전
Lobste.rs yorumları
  • Genel olarak katılıyorum, ama bu büyük ölçüde sistemde zaten nelerin kurulu olduğuna bağlı. C ile yazılmış dinamik bağlantılı ikili dosyalar ya da Python betikleri, çalışma zamanı neredeyse her bilgisayarda bulunduğu için bu sınıra kolayca sığabilir
    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
    • Ben de buna katılıyorum. Hedef işletim sisteminde zaten bulunduğunu varsayabileceğiniz bir UI toolkit gibi makul bağımlılıkların üzerinde yerel uygulamalar geliştirmiyorsanız, bu boyut ölçütünü tutturmak zor. “Küçük” bir libc bile genelde 0.5MB’tan büyük; ağ isteği yapmak istiyorsanız LibCURL yüzlerce KB, BearSSL de benzer görünüyor
      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ı
  • Yazılımın büyümesini önlemek iyi, ama büyük uygulamaların çoğu yazılımın kendisinden çok varlık dosyaları yüzünden büyük. Ekran çözünürlükleri yükseldi ve artık kullanıcı deneyimine eskisinden daha fazla önem veriyoruz
    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
  • 4’ten fazla disketle gelen oyunlar oynadım ve yanında bütün diyalogların yer aldığı 100 sayfalık basılı kılavuzların verildiği dönemi yaşadım; o yöntemin geri dönmesine hiç gerek yok
    • Oyunu üç farklı ortamdan zihninde birleştirmen gerekiyor olması kulağa biraz havalı geliyor :-) O dönemde en sevdiğin oyun neydi?
  • Tanıdık geliyor https://fosstodon.org/@dillo/113913161923323567
    https://cdn.fosstodon.org/media_attachments/files/…
  • Çocukken oyunları disketten kurarak zaman geçirmiş biri olarak nostalji var, ama bu sadece katıksız nostalji
    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
  • “Eskiden tek bir diskete sığan uygulamalar şimdi birkaç GB depolama alanı, birkaç dakikalık zaman ve fazla miktarda sabır istiyor” sözü abartı
    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
  • Linux dağıtımlarının tek bir diskete sığabildiği zamanı hatırlıyorum. Tom's RootBoot Disk bir kurtarma sistemi olarak harikaydı
  • Bir dakika, yani tüm ikili dosyalara 2KB’lık Lovecraft alıntısı koymaktan kaçınmamız mı gerekiyor?
  • Bu ekran koruyucuyu 1-2 haftadır kullanıyorum ve çok keyifli. Yarısı uçan tost makineleri, yarısı da “aa, ben o diski biliyorum” hissi
  • Geçenlerde ailem bir bilgi yarışması izliyordu; soru standart bir disketin ne kadar veri saklayabildiğiydi. 23 yaşındaki çocuk hayatında hiç disket görmemişti ama yaşıtlarına göre bilgisayar bilgisi çok daha iyiydi