l

2015年8月7日 星期五

無關廢死

August 04 11:30~12:28

螢幕截圖 2015-08-04 13.36.24

▲蜜蜂算bug嗎?

 

前一陣子在Facebook看到朋友轉貼某人的文章,其中提到(為保護當事人,原文加以改寫):

  • 隨機殺人嫌犯是社會的bug
  • 系統發生了bug會跳出一個錯誤視窗
  • 死刑等於把錯誤視窗給關掉
  • 如果系統發生了bug,我們是反覆關掉錯誤視窗,還是找到發生bug的原因去解決它?

***

朋友轉貼文章,同時評論這個比喻真的是太好了。不過Teddy倒是覺得這個比喻很值得商榷。首先,語意不是很清楚,最有問題的就是第一句「隨機殺人嫌犯是社會的bug」,這句話是說:

  • 隨機殺人嫌犯本身是一個bug,還是說
  • 社會有bug,因而導致隨機殺人事件,但隨機殺人嫌犯本身沒有問題?

如果真的要用bug打比方,Teddy覺得隨機殺人嫌犯並不是社會的bug,而是一隻有bug的程式或是process(行程)。社會就好比作業系統,每個人都是一隻程式,執行在作業系統上,與作業系統以及其他程式互動。

***

程式有bug怎麼辦?從錯誤處理的角度,如果是design fault(programming error),當然要修改程式,找到錯誤發生的根本原因。如果是component fault(環境或程式互動出了問題),要做好錯誤狀態回復然後可以嘗試retry

Teddy認為隨機殺人行為應該屬於design fault,也就是程式本身有邏輯錯誤,所以解決方法要修改程式。但是並非所有的design fault都可以在短時間修復,如果修不好就重新執行,很可能對其他正常執行的程式(社會大眾)以及整個作業系統造成嚴重的傷害。那怎麼辦?沒關係,還有一招叫做隔離。至於要隔離多久請自行判斷。

此外,有bug的程式造成系統狀態不正確,修復錯誤狀態也是需要成本。狀態回復的成本,誰要負擔? 從錯誤處理的角度來看,「終止有問題的程式執行」也是一種選項,為了不讓它造成更大傷害,有時候是不得不的選擇。

***

其實把人比喻成bug或是程式都不太合適,因為bug易修易測,人性難改且難測。Bug修不好還可以選擇整個程式砍掉重練,人可以嗎?!Teddy不是要討論贊成或反對廢死的議題,只是認為要打比喻的時候,應該要評估一下比喻的正確性會比較好一點。

***

友藏內心獨白:二十年後又是一條好漢挑眉質疑

1 則留言:

  1. 我遇到bug應該會先關掉bug視窗,再去看bug造成的原因解決他

    回覆刪除