2014/07/01

Why not Surface OS ?

微軟在 Windows 8 強推 Metro UI,卻因為使用者無法適應而導致 Windows 8 評價不高。而 Google 即將推出的 Android L 在我眼裡,卻是真正實踐 Windows 8 人機互動願景的作業環境。簡潔,專注,資訊能夠有效傳達的順暢使用體驗。

Google 讓大家慢慢接受 Android,一路從手機平板慢慢進擊到桌面運算設備。微軟卻仍得不斷挑戰自己一手建立的,怠惰、安於現狀、自我滿足、不敢跳出舒適圈的廣大 Windows 用戶。Windows Vista 想大跳躍卻跌得重重的,Windows 8 也被認為即將步上 Vista 的後塵。

其實,Windows 8 的失策,是沒有殺手級裝置搭配。這也一直是 PC 市場會萎縮的原因。整個 PC 市場都以製造業的角度在做電腦,Apple 卻從 iPod、iPhone、iPad 一路為使用者對於運算裝置帶來不同以往的使用體驗。

在我眼裡,Surface Pro 是市面上最能完整提供 Windows 8 使用體驗的裝置,若時光倒移,我覺得微軟該直接發表 Surface Pro 產品,並且將 OS 名稱定為 Surface OS。而 Surface OS 中有一個可以執行完整 Windows 7 App 的 Desktop 的環境。然後,下一個 Windows 版本推出的時候,同步免費提供新版 Surface OS。

並且,暫時不要讓 PC 用戶使用 Surface OS。直到哪些沒有創新力的 PC 廠商,終於也想要認真做觸控裝置的時候,推行 "微軟觸控裝置認證" ,通過認證的電腦,才可以安裝 Surface OS。以避免一堆觸控導向的程式,在鍵盤滑鼠的傳統操作方式下,顯得格格不入,而敗壞 Surface OS 的名聲。

微軟抱著 Windows 太久了,腦袋也和不能接受 "Windows 長的不像 Windows" 的客戶一樣,同樣的東西,換個名字,轉個角度,就能變成美好的生活體驗。

2014/05/27

程式錯誤經驗談:產生列表項目時,每一筆都向 Database 取時間

今天犯了個錯誤,在 ListView 填入資料時,因為要檢查資料日期是否逾時,必須以 Database 的時間為基準,所以在產生每一個 ListVieweItem 的時候,都向 Database 取時間,使得畫面顯示列表的時間拖得非常久。

最初,程式裡面使用 DateTime.Now 為基準,但客戶要求不可以使用 client 電腦的時間,以免 user 自己改到電腦時間。因此,我寫了一個全域的 ServerDate 方法向 Database 取得時間,然後把程式裡面所有 DateTime.Now 取代成 ServerDate 方法。當然包含了產生列表這一段,小小的災難就這樣發生了。

主管安慰我,說一定是後來因為客戶要求,臨時改掉原來的程式,才會令人疏忽,發生這樣的問題。的確,這是個無心之過。但! 身為一個程式設計師,應該對使用 Database 的資源充滿警覺性。

後來,小小改了一下,程式效能變得 40 幾倍快。哀~ 要小心。