- Phình to phần mềm là sự thay đổi khiến những ứng dụng từng nằm gọn trên một đĩa mềm nay lại đòi hỏi hàng gigabyte dung lượng lưu trữ và thời gian chờ đợi dài
- Đĩa mềm 1.44MB không phải là một giới hạn mang tính đùa vui mà là thước đo của sự tiết chế, với tiền đề rằng ngay cả các công cụ đơn mục đích cũng có thể được làm đủ nhỏ gọn
- Phần mềm nhỏ gọn hướng đến việc tải xuống nhanh, chạy ngay lập tức, mức sử dụng bộ nhớ·CPU thấp, thời lượng pin dài và hỗ trợ các hệ thống cũ
- Nhấn mạnh nguyên tắc chỉ dùng native, tránh sự phình to từ phụ thuộc, và mọi dòng mã đều phải có lý do để tồn tại
- Floppy badge được gắn cho các ứng dụng có tổng kích thước tải xuống dưới 1.44MB, và cốt lõi không phải là hoài niệm mà là thái độ làm ra sản phẩm coi trọng từng byte
Tiêu chuẩn của phần mềm nhỏ gọn
- Do phình to phần mềm, các ứng dụng từng chứa vừa trên một đĩa mềm đơn lẻ nay đòi hỏi hàng gigabyte dung lượng lưu trữ, thời gian chờ lâu và sự kiên nhẫn quá mức
- Đĩa mềm 1.44MB không phải là một giới hạn vui đùa mà được dùng như một chuẩn mực của sự tiết chế
- Nếu phần mềm từng vận hành cả một doanh nghiệp có thể nằm trong mức dung lượng này, thì các công cụ hiện đại tập trung vào một mục đích duy nhất cũng hoàn toàn có thể nhỏ gọn như vậy
- Phần mềm nhỏ gọn đặt mục tiêu tải xuống nhanh, khởi chạy ngay lập tức và giảm các bước tải không cần thiết
- Nó tôn trọng thiết bị của người dùng bằng cách bao gồm mức sử dụng bộ nhớ và CPU thấp, thời lượng pin dài hơn, cùng khả năng hỗ trợ các hệ thống cũ
- Chỉ dùng native, tránh sự phình to từ phụ thuộc, và mọi dòng mã đều phải có lý do để tồn tại
- Phần mềm làm tốt một việc duy nhất sẽ có tính năng tập trung hơn, ít lỗi hơn và có thể tồn tại bền lâu hơn
Cách đo lường và chủ đích
- Floppy badge được gắn cho các ứng dụng có tổng kích thước tải xuống dưới 1.44MB, tương ứng dung lượng của đĩa mềm 3.5 inch tiêu chuẩn
- Kích thước hiển thị trên đĩa được tính dựa trên kích thước universal binary do nền tảng phân phối của nhà phát triển báo cáo
- Kích thước thực tế tải về thiết bị có thể còn nhỏ hơn kích thước hiển thị, vì platform thinning chỉ phân phối những phần cần thiết cho phần cứng cụ thể
- Trọng tâm không nằm ở sự hoài niệm với đĩa mềm, mà ở thái độ làm ra sản phẩm: từng byte đều quan trọng, ràng buộc tạo ra sáng tạo, và phần mềm nên nhẹ nhàng
- Ví dụ liên quan có liên kết đến bài viết về quá trình tạo ra trò chơi đoạt giải chỉ nặng 39KB YOYOZO
1 bình luận
Ý kiến trên Lobste.rs
Ngược lại, nếu liên kết tĩnh để tăng tính di động hoặc dùng ngôn ngữ có runtime ít phổ biến hơn như Janet thì sẽ dễ dàng vượt xa ngưỡng này
Dự án Decker của tôi cố gắng giảm phụ thuộc bên ngoài, nhưng để đảm bảo tính di động thì vẫn phụ thuộc vào SDL và SDL_image và phát hành kèm theo. Bản phát hành Apple Silicon hiện tại là 6MB khi nén, trong đó khoảng 4.6MB là các dylib của SDL và SDL_image. Bản web bắt đầu ở khoảng 0.5MB nếu giả định người dùng đã có trình duyệt HTML5 tương đối mới, nhưng nếu tính cả trình duyệt thì phụ thuộc đã lên đến hàng trăm MB
Các file deck thô của ứng dụng và thư viện hữu ích có thể chỉ ở mức vài chục KB nếu runtime đã có sẵn. Love2d cũng ở tình huống tương tự, chạy trên SDL và nhiều thành phần tích hợp khác, với kích thước 10MB khi nén và 25MB khi giải nén. Trên Love2d, bạn có thể làm ra ứng dụng hữu ích chỉ vài chục KB bằng script Lua và đồ họa vector, nhưng một lần nữa, đó là khi runtime đã có sẵn
Nếu nguồn lực phát triển là vô hạn thì tránh phụ thuộc SDL là một mục tiêu hay, nhưng với đa số dự án dựa trên SDL, khả năng cao là thay vì tiết kiệm vài MB cho bộ cài, bạn sẽ phải từ bỏ hẳn hỗ trợ cho các hệ điều hành kém phổ biến hơn. Việc xem đó có phải là sự phình to hay không còn tùy góc nhìn
Ngày xưa chỉ có văn bản vẫn là hợp lý, nhưng bây giờ thì hiếm. Trong danh sách động cơ được nêu ra, chỉ điều đầu tiên thực sự liên quan trực tiếp đến kích thước binary thô, còn những điều còn lại giống các lợi ích tách biệt, có thì tốt hơn
Thêm nữa, ngay chính website đó cũng dùng khoảng 200,000 byte để truyền tải một bản tuyên ngôn dài 1,600 byte
https://cdn.fosstodon.org/media_attachments/files/…
Người dùng ngày nay không nhận ra việc tải xuống là 1.44MB hay 2.88MB, hay lớn hơn thế, và cũng không cảm thấy khác biệt khi chạy file thực thi
Đúng là có những ứng dụng vừa một đĩa mềm, nhưng phần lớn phần mềm nghiêm túc trong thập niên 80~90 được phân phối trên nhiều đĩa. Ví dụ như Microsoft Word v2.0 trên 7 đĩa kèm 2 đĩa bổ sung, Lotus 1-2-3 trên 13 đĩa mềm, và ngay cả Doom cũng là 4 đĩa mềm
Ý tưởng vừa trong một đĩa mềm vốn cũng không hề phổ biến ngay cả ở thời đĩa mềm, và ai cũng hiểu rằng phần mềm lớn hơn thì cứ phát hành trên nhiều đĩa là được