最近一個新客戶在買筆電時非常猶豫要用哪一個作業系統,一開始他不想要預載 Ubuntu 的 Dell 筆電,希望改裝 Windows 10,但是因爲要重新購買Win10 授權及安裝費,價錢多了不少。工程師先幫他裝成Win10,測試也沒問題,並告知客戶已經準備好,但前來取貨的前一天晚上突然要求改回Ubuntu Linux,這讓我們非常納悶他是拿筆電來做什麼事?事後了解才知道其實主要就是上網還有文書處理及剪接影片。如果他用了 Windows 後,後續還要買 Office 軟體及之前常用的威力導演軟體。其實我們在 Ubuntu 應用攻略提到這類型應用軟體,Ubuntu 都有而且還很專業,完全不必再花一筆錢買軟體。這個客戶回去後試用了Ubuntu 筆電後告訴我們非常好用,他很滿意。這個案例告訴我們其實轉換作業系統是可行的,如果繼續使用Windows 那就是軟硬體購買成本的堆疊,但使用Ubuntu 筆電來作業,整體擁有成本至少少一半。
接下來我們想要來討論另外一種族群 - 程式開發人員,是否也適用轉換到Linux 環境做開發?
其實在開發環境的這個領域,目前已三分天下。Windows 占比最高,MacOS 及 Linux 幾乎平分秋色。但因爲 MacOS 也是類似 UNIX 的環境,Linux 及 MacOS 加起來占比還贏過Windows。很多公司都配給開發者一台Apple 筆電,主要是為了工作環境及安全考量,但時代在改變,使用Linux 才是最佳開發環境,原因如下:
一、Linux 在 Server 上的市佔率有一個數字可以參考: 世界上前一百萬大的網站有96.3% 使用Linux,另外截至 2021 世界上前五百大超級電腦,100% 使用 Linux,因為Linux 是原生在網路上開發,幾乎涵蓋所有開發工具及應用軟體,所以能夠在開發環境就使用Linux 比起Windows 或是MacOS 更能貼近生產環境。
二、資料科學及機器學習時代的來臨。開發者需要一個模擬的工作環境。眾所皆知現在熱門的人工智慧領域你需要有Nvidia GPU 及程式庫來運算,而這方面就是Linux 工作站的強項。Apple 電腦缺乏這方面的軟硬體環境,而使用Windows 也不太具備軟體運作環境或是需要使用WSL 跑Ubuntu Linux。
三、Linux 在embedded Linux 的應用遍地開花。這些小型的裝置包含 smart TV,router,NAS,智能家庭設備,車用電子設備,太空飛行軟體等都是執行Linux 作業系統。甚至你使用的Android 手機也是Linux 環境。所以如果你是做這方面的開發,最好選擇Linux 開發環境會更適當。
四、Linux 環境高度可客製化。做為一個開發人員你需要一個適合你的開發環境。除了圖型介面可以變更外,你還可以安裝眾多自由軟體來完成你的工作。例如你可以在文字終端機同時觀看系統效能及查看程式執行的錯誤訊息。
五、完美的自動化能力。Linux 在server 端的自動化能力一樣在開發環境用的到。例如你可以定期執行程式抓取資料,並將這些數據畫成統計圖表。Linux 的排程工具如cron,應用相當廣泛,善用這些工具有助開發人員省下許多重複的工作。
六、Linux 有更多指令及文字介面可以使用。熟悉指令及文字介面的操作會讓程式碼的編輯更加迅速。過多的圖型介面反而容易迷失且效率不彰。例如你想要建立一個Ubuntu 18.04 LTS 的容器來測試,就是一行指令即可完成。
七、軟體安裝容易。Linux 雖然有很多版本,但隨者新型應用程式封裝如 flatpak,可以讓你在各種Linux 版本使用,不會有相容的問題。另外安裝軟體時會有完善的相依性處理,節省開發者很多時間。
結論
隨著資料科學及人工智慧的普及,開發的環境需要完美的軟硬體整合。Linux 在 server 及 embedded Linux 幾乎獨佔鰲頭,如果開發環境還停留在Windows 或是 MacOS ,你會發現離生產環境愈來愈遙遠。不如在開發時就熟悉Linux 運作環境,這會對日後上線及除錯會有很大的幫助。