我的原則很簡單,開發給什麼系統用的就盡量用什麼系統開發。
舉個例子,工作上用的伺服器基本都是用 Linux。偶爾會需要自己寫 Apache module 來幹些奇怪的事,用的是 C 語言。如果你要在 Windows 上面開發的話,還得搞定那一堆 header、環境、編譯等等的事情,尤其是用到系統呼叫的話還不如直接在 Linux 上面開發就好了...沒事找自己麻煩。
有些技術是可以跨平台的,但是有些平台之間的差異是你不跑看看不會發現的。例如寫個 p2p 程式在 Linux 一次可以發起幾十幾百個網路連線,但是在 XP 就被安全性限制在個位數。你只會看到流量異常的少,抓這問題的時候能夠有個 XP 開發環境跑 Debug 會更方便。還好 XP 已經死了所以漸漸不用再面對他的問題了 xD
微軟樣樣都要錢=老闆不肯花=叫你找盜版來用用就好
Linux不用錢的都比要錢的好用=老闆愛=你要學會用
以上打哈哈…
安全性(以前而言相對較安全、現在則不一定)
穩定性(相對而言)
入手成本較低(指的是軟體的使用權,不過若加上技術諮詢則未必)
我常常就是 windows 和linux 兩邊都要做測試
我覺得差別最大就是在建立環境的地方
windows 要建立的流程比linux多,相對要花比較久的時間
不過我不會在 windows(linux)裡把東西做完拿去 linux(windows)用
Windows 跟 Linux 的分別,可以打個比方:
電腦可以視為一個"國家",Windows 或 Linux 這些作業系統就是"政府",也就是掌握這個國家資源的單位。你安裝 W 就是由 W黨執政,你安裝 L 就是由 L黨執政。你要在這個政府體制下辦事(執行程式),就得按它的規矩(可執行檔規格、接口API)。
有的政府(作業系統)精簡、安全、開放,所以辦事(寫程式)就輕鬆愉快;有的政府(作業系統)複雜、不夠安全、封閉,所以辦事(寫程式)就比較累。但是也有仲介公司(跨平台程式語言)提供你門路,可以用同樣的方式辦事(寫一次程式就可以在多種作業系統下跑)。
希望以上的比喻有幫到你更瞭解 Windows, Linux 等等作業系統的分別。
不過 Linux 是個統稱,它只是 OS kernel 的稱呼,要搭配眾多工用程式、驅動程式,及作業系統運作程序,才能叫一個完整的作業系統(distribution)。有很多公司、組織在做 Linux 作業系統包裝(distributing)的事,所以以 Linux 為基礎的作業系統有上百種,最常見的比如 Ubuntu, Redhat, ... 當然還有世界上最龐大的 embeded device 及 Android 手機,都是以 Linux 運作。Windows 跟 Linux 的使用數量比起來是小小小小小.......巫而已。