Monday, September 7, 2015

Phần mềm: Nó là Gas

Nathan Myhrvold, cựu giám đốc công nghệ của Microsoft, là một nhà vật lý thực sự. Ông có bằng vật lý từ hai trường đại học UCLA và Princeton. Ông thậm chí đã có một học bổng sau tiến sĩ dưới sự hướng dẫn của nhà khoa học nổi tiếng Stephen Hawking. Vì vậy, như bạn có thể hiểu được, trong bài phát biểu của ông tại hội nghị ACM 1997 có tên là “50 Năm tiếp theo của phần mềm” chứa rất nhiều những ẩn dụ về lĩnh vực vật lý và khoa học.

Phát triển phần mềm là công việc rất phức tạp.

Bài thuyết trình bắt đầu với 4 luật của Nathan về phần mềm như sau:

Phần mềm là một chất khí hóa lỏng (Gas)
Phần mềm luôn luôn mở rộng để vừa khít vào bất cứ thùng chứa nào mà nó được lưu trữ trong đó.
Phần mềm phát triển cho đến khi nó bị giới hạn bởi luật định luật Moore
Sự phát triển ban đầu của phần mềm là rất nhanh, giống như là khí gas đang mở rộng vậy, nhưng nó không thể tránh khỏi việc bị giới hạn bởi tỉ lệ tăng của tốc độ phần cứng.
Phần mềm phát triển khiến cho định luật Moore tồn tại
Người ta mua phần cứng mới, bởi vì phần mềm đòi hỏi điều đó.
Phần mềm chỉ bị giới hạn bởi các tham vọng và mong đợi của con người
Chúng ta sẽ luôn tìm thấy các thuật toán mới, các ứng dụng mới, và người sử dụng mới.
Myhrvold tiếp tục mô tả sự phát triển phần mềm như là một trạng thái của Cuộc Khủng Hoảng Vĩnh Cửu. Kích thước và độ phức tạp của phần mềm là không ngừng tăng lên, và không có giới hạn trong tầm nhìn. Khi chúng ta phát triển nhiều phần mềm cao cấp hơn — và chúng ta phát triển các giải pháp để quản lý sự phức tạp ngày càng gia tăng của phần mềm này — thì những lợi ích của phần mềm mới đó được hấp thụ bởi những nhu cầu và mong đợi ngày càng tăng của khách hàng. Phát triển phần mềm sẽ chẳng bao giờ là việc dễ dàng cả; phần mềm mới luôn phải chống lại các ranh giới phức tạp hiện tại nếu nó muốn thành công về mặt thương mại.

Tất cả những điều này được viết vào năm 1997. Gần 10 năm sau đó, liệu những quan điểm của ông ta vẫn còn hiệu lực? Phần mềm thì chắc chắn vẫn là thứ khí gas hóa lỏng. Giờ đây chúng ta đang tiến vào kỷ nguyên đa nhân (multi-core), có một sự khác biệt rất quan trọng. Trong lịch sử thì phần cứng phải trở nên phức tạp hơn do những hạn chế trong việc đáp ứng khả năng mở rộng của phần mềm; giờ đây phần mềm cần phải trở nên phức tạp hơn bởi vì phải chạy theo những giới hạn trong khả năng mở rộng của phần cứng. Gánh nặng của việc mở rộng bây giờ rơi vào phần mềm.

Myhrvold sau đó đã đưa ra một quan điểm thú vị về số lượng lưu trữ cần thiết để nắm bắt sự đa dạng của loài người. Nếu …

bộ gen của con người xấp xỉ khoảng 1 Gigabyte dữ liệu;
sự khác biệt giữa 2 người bất kỳ là 0,25% bộ gen của họ;
chúng ta giả định một tỷ lệ thất thoát khi nén là 2:1;
Phần riêng độc đáo của bộ gen con người có thể được lưu trữ trong khoảng ~1.2 megabytes. Vì vậy, bạn vừa khít vào một đĩa mềm 3.5”.

Trong thực tế, toàn bộ sự đa dạng di truyền của tất cả loài người có thể được lưu trữ trong một mảng ổ đĩa có dung lượng 3.7 terabyte. Và toàn bộ sự đa dạng di truyền của mọi sinh vật sống trên trái đất này có thể được lưu trữ xấp xỉ bằng kích thước của Internet vào khoảng năm 2001.

Tôi không biết chính xác điều đó có nghĩa là gì, nhưng tôi thích ý tưởng rằng tôi có thể nhét bản thân mình vào một cái đĩa mềm 3.5”.

Về tác giả bài viết:
Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack Exchangevà Discourse.

Bài Viết Liên Quan