Khủng hoảng phần mềm
(wryl.tech)Khủng hoảng phần mềm
-
Khủng hoảng phần mềm là gì?
- Thuật ngữ "khủng hoảng phần mềm" lần đầu được sử dụng tại hội nghị kỹ nghệ phần mềm NATO đầu tiên năm 1968
- Các hội nghị này là một trong những nỗ lực ban đầu nhằm định nghĩa và hệ thống hóa các thực hành lập trình
- Hội nghị kỹ nghệ phần mềm NATO cuối cùng được tổ chức vào cùng thời điểm với vụ phóng Apollo 11 năm 1969
-
Nguyên nhân của khủng hoảng phần mềm
- Edsger Dijkstra, người đoạt giải Turing năm 1972, giải thích nguyên nhân của khủng hoảng phần mềm là do độ phức tạp và tốc độ ngày càng tăng của phần cứng
- "Máy móc càng mạnh hơn thì vấn đề lập trình cũng càng lớn hơn" - Edsger Dijkstra
-
Khủng hoảng phần mềm hiện nay
- Hiện nay, người ta không còn nhắc nhiều đến khủng hoảng phần mềm
- Mọi người cho rằng vấn đề đã được giải quyết nhờ sự phát triển của các ngôn ngữ mới và các phương thức tổ chức mới
- Tuy nhiên, điều này có thể xuất phát từ cảm giác thất bại và chấp nhận hơn là sự an tâm thực sự
-
Vấn đề của trừu tượng hóa
- Đã có nhiều nỗ lực nhằm giải quyết khủng hoảng phần mềm, nhưng phần lớn đều cố gắng xử lý vấn đề thông qua "trừu tượng hóa"
- Trừu tượng hóa mang lại một mức độ độc lập nhất định nhưng phải đánh đổi bằng hiệu năng
- Kể từ khi máy tính cá nhân được thương mại hóa, trừu tượng hóa đã trở thành cách tư duy cơ bản
-
Khoảng cách giữa nhà phát triển và người dùng
- Khủng hoảng phần mềm không chỉ ảnh hưởng đến những người tạo ra phần mềm mà còn cả những người sử dụng nó
- Người dùng hầu như không thể kiểm soát điều gì ngoài những gì tác giả cung cấp
- Alan Perlis: "Nếu bạn có một ý tưởng hay, bạn phải sẵn sàng chịu trách nhiệm về nó"
-
Sự thiếu vắng trách nhiệm
- Những người tạo ra phần mềm đang thoát khỏi trách nhiệm đối với các công cụ mà họ tạo ra
- Xu hướng này càng được củng cố khi quá trình thương mại hóa diễn ra
- Trừu tượng hóa được dùng như một công cụ để né tránh việc suy nghĩ về những vấn đề khó
-
Giải pháp
- Giải pháp cho khủng hoảng phần mềm không phải là quay lại các nền tảng bị hạn chế hơn, mà là giới hạn số lượng lớp trừu tượng và yêu cầu bảo toàn thông tin
- Mô hình lập trình, giao diện người dùng và phần cứng nền tảng cần phải nông và có thể cấu thành
- Cần trao quyền cho người sử dụng công cụ
-
Những chuyển động hiện nay
- Có những phong trào như Handmade, Permacomputing, retro computing nhằm nâng cao nhận thức về khủng hoảng phần mềm
- Những phong trào phản văn hóa này là tín hiệu lành mạnh và cho thấy tình hình có thể trở nên tốt hơn
Tóm tắt của GN⁺
- Khủng hoảng phần mềm là vấn đề phát sinh do độ phức tạp và tốc độ ngày càng tăng của phần cứng
- Hiện nay người ta cố gắng giải quyết vấn đề bằng trừu tượng hóa, nhưng điều đó phải đánh đổi bằng hiệu năng
- Những người tạo ra phần mềm đang thoát khỏi trách nhiệm đối với các công cụ họ tạo ra, và điều này càng mạnh hơn do thương mại hóa
- Giải pháp là giới hạn số lớp trừu tượng và yêu cầu bảo toàn thông tin
- Những phong trào như Handmade và Permacomputing đang nâng cao nhận thức về khủng hoảng phần mềm
1 bình luận
Ý kiến trên Hacker News
Ý kiến của tác giả
Khủng hoảng phần mềm
Phát triển phần mềm và lãnh đạo
Sự cần thiết của trừu tượng hóa
Công cụ và thông tin
GUI và khả năng kết hợp
Tầm quan trọng của phần mềm
Tính mô-đun và trừu tượng hóa
Khủng hoảng quản lý dự án