2009-07-18 35 views
6

Sau khi đọc this question Tôi chỉ tự hỏi liệu có nên sử dụng Haskell (hoặc các ngôn ngữ lập trình chức năng khác) trong các ngành công nghiệp quan trọng hay không.Lập trình chức năng trong các nhà máy hạt nhân?

Ngoài Erlang, hầu hết các ngôn ngữ đều theo mô hình bắt buộc/thiết kế theo hợp đồng (Ada, Eiffel, C++).

Nhưng còn những chức năng thì sao?

Mã kết quả sẽ dễ bảo trì, ổn định và rất nhiều lỗi tiềm ẩn có thể bị loại bỏ bởi hệ thống loại nghiêm ngặt của chúng lúc biên dịch. Hoặc là đánh giá lười biếng nguy hiểm hơn hữu ích? Có những hạn chế bảo mật khác không?

Trả lời

10

Tôi nghĩ bạn có thể. Ngôn ngữ có vẻ rất phù hợp với các tình huống như vậy, giả sử bạn tin tưởng trình biên dịch đủ để sử dụng nó trong tình huống nhiệm vụ quan trọng.

Hãy nhớ rằng trong các tình huống quan trọng của sứ mệnh, nó không chỉ là mã của bạn đang được giám sát mà còn cả các thành phần khác nữa. Điều đó bao gồm trình biên dịch (trình biên dịch Haskell không phải là phần mềm dễ nhất để xem xét mã), phần cứng được chứng nhận thích hợp chạy phần mềm, phần cứng thích hợp biên dịch mã của bạn, phần cứng khởi động trình biên dịch sẽ biên dịch mã của bạn. kết nối tất cả với lưới điện và tần số thay đổi điện áp trong ổ cắm.

Nếu bạn quan tâm đến việc xem xét chất lượng phần mềm quan trọng của sứ mệnh, tôi khuyên bạn nên xem NASA software quality procedures. Họ rất nghiêm khắc và chính thức, nhưng những kẻ ném hàng triệu đô la vào không gian với hy vọng nó sẽ tồn tại trong điều kiện khá khắc nghiệt và sẽ biến nó thành sao Hỏa hoặc bất cứ nơi nào và sau đó tự động vận hành và gửi một số bức ảnh đẹp về sao Hỏa.

Vì vậy, có bạn đi: Haskell là tốt cho các tình huống quan trọng nhiệm vụ, nhưng nó sẽ là một quá trình tốn kém để bootstrap sử dụng nó ở đó.

Các vấn đề liên quan