The error-reporting service built into the Windows operating system is a massive global network for speaking truth to power. Be you a lowly clerk of accounts or a mighty captain of industry, when a Windows program crashes, you'll see a pop-up with an offer to 'tell Microsoft about this problem.'
Windows操作系統自帶的錯誤報告機制 成了一個龐大的全球性實情匯報 絡。不管你是名不見經傳的會計師還是呼風喚雨的行業泰斗,每當一個Windows程序無法正常運行時,電腦都會一視同仁地蹦出一條提示:請向微軟(Microsoft)匯報此錯誤。
Enough people around the world choose to do so that on the busiest days, 50 gigabytes of data from these error reports stream into Microsoft. Two dozen programmers are charged with monitoring them. The stories they tell of good computer programs going bad are full of the stuff of opera: pride and sloth, with lots of chaos theory and complexity thrown in.
全世界有不少用戶選擇了把問題匯報給微軟,于是最繁忙的時候會有多達50G的錯誤報告數 從世界各個角落流向微軟。微軟有二三十名程序員專門負責處理這些信息。這些數 反映出的程序毛病真是無奇不有,充滿戲劇色彩:傲慢和怠惰中摻雜著混沌理論和 雜化。
Errors come in two sorts. Kernel errors happen in the inner sanctum of the operating system, which lets in only essential programs -- drivers and the like -- and then gives them free rein. But if, say, a printer driver suddenly erases the kernel code needed to access the disk drive, the operating system will have part of its brain cut out. The result is the 'blue screen of death' in Windows and Mac, or a 'panic' in Unix.
這些錯誤主要有兩類。核心錯誤發生在操作系統內部,這些部分只允許像驅動程序這樣的關鍵程序訪問,并給予這些程序運作的自由。但是,比如一個打印機驅動程序突然把接磁盤驅動所需的核心代碼刪除掉,操作系統就會出現部分停頓。結果,Windows和Mac電腦會出現顯示死機的藍屏,Unix電腦則會表現為黑屏。
The applications we use don't have the same all-access backstage passes as kernel programs. When they crash, the system itself usually stays up. Microsoft lists a dozen reasons for application crashes; my favorite is the absence of 'defensive programming.' Coders, just like freeway drivers, shouldn't assume other people are doing their jobs correctly. If you ask for two bytes of data, count the bytes when they're handed back.
我們平常使用的應用程序不像核心程序那樣能自由進入電腦的深層。當這些應用程序崩潰時,操作系統本身一般還是運作正常的。微軟羅列了十多個應用程序崩潰的可能原因,我最認同的一項是缺乏“防御性編程”,程序編寫員就像是高速公路上的駕駛員,他們不能想當然地認為其他人都能把自己的工作做好。如果你要求得到兩個字節的數 ,那么當它們被交回來的時候就要數一數字節數。
Microsoft folks like Trevor Kurtz, who heads one of the error-checking teams, are proud of their work: how scrupulous they are about respecting user privacy; how freely they share the aggregated data with outside software developers.
正如負責一個錯誤核查小組的特雷福•庫爾茨(Trevor Kurtz)那樣,微軟人為自己的工作感到驕傲:他們小心翼翼地保護用戶的隱私信息,但同時又隨意地把收集到的數 跟外部的軟件開發商共享。
Some things they won't tell you, though: which programs from Microsoft or others crash the most; who is at fault, Windows or the program.
有些事情他們是不會告訴你的:微軟的哪個軟件或哪個公司設計的軟件最容易崩潰;問題到底出在誰身上,是Windows還是那個應用程序。
The Microsoft nominations from my household include Internet Explorer, which regularly stalls, and Windows Explorer, which on full drives can't properly execute the keyboard shortcut for opening all folders and subfolders.
從我在家使用電腦的情況看,經常出問題的微軟程序包括IE瀏覽器和Windows資源管理器,前者間或變得緩慢遲鈍,而后者在機器同時執行好幾項任務時沒辦法正常按照用鍵盤快捷鍵輸入的指令打開所有的文件夾和次級文件夾。
It's far from all bad, though. Word and Excel seem like Gibraltar, and months now go by in-between blue screens.
但這遠不是最糟糕的。Word和Excel似乎冥頑不靈,幾個月以來一直不停地出現藍屏。
The experience of dealing with a software bug can involve an emotional journey that starts with helpless blind rage and ends with, if not a Kubler-Ross style of acceptance, then at least a little empathy.
面對程序崩潰,我們往往要經歷一個情緒變化的過程,先是束手無策的暴怒,最后,即使不是庫伯勒-羅斯模型中(Kubler-Ross)的無奈接受,至少也表示出一點理解。