2019年3月4日星期一

開發者就該學 Linux!

事先聲明,我不是 Windows 愛好者,只是世界上太多開發人員愛用 Linux  做開發。

為甚麼突然有這個「開發就該用 Linux」想法?


跟開發路線有關,試用雲端技術,或多或少接觸到伺服器、Virtual Machine 等等,例如︰
  • minikube
  • Docker
  • git
  • Raspberry Pi
用 Windows 版本不是不行,只是安裝及部署上有各式各樣麻煩問題,尤其雲端技術。IoT 方面,Windows 也有 Raspberry Pi 版本,但限制很多,不能當電腦用。

Windows 10 IoT
https://docs.microsoft.com/en-us/windows/iot-core/downloads

最近重灌 Windows 10 Pro,更新到 10586,開啟 Hyper-V,然後安裝 Docker。


第一步已跌倒,回去舊版本 Docker。到安裝 minikube……


是我錯,要 Docker 跟 minikube 共存,首先在 Hyper-V 起一個 virtual switch,要對外連線,如下圖︰



然後指定 minikube 用 hyperv VM 及特定 switch,指令如下︰

  • minikube start -p "HyperV-minikube" --vm-driver hyperv --hyperv-virtual-switch "minikubeNAT"

成功?不,成功關機才算。


卡死!等半小時也關不到機,怎樣的!我不玩了,回去用 Linux!

反正去到 Google Cloud Platform,最後還要用 command,而且 docker image 大多數都是 linux 做底層,逐層疊上去,不了解 linux 系統及檔案配置,很難明白在做甚麼。

很多概念與 linux 近似,例如 mount 之類,有 Linux 底的人,把觀念轉一轉,很快上手。然後到 config file,Windows 給你在 GUI 上設定,其實背後是修改 config,倒不如直接改 config 來得方便,也可弄一些 bat 把事情自動化,但是!Linux 更靈活,更多 command,編寫 sh 有更多可能性。

系統結構、檔案配置、指令、設定檔編寫……都了解到這種程度,乾脆用 Linux 吧!


Raspberry Pi


minikube 這部份抱怨完畢,到 Raspberry Pi,其實不太關 Windows 事,是關 Windows 生態事。

CPU 有分 x86 及 ARM 架構,在 x86 能運行的程式,不能在 ARM 上跑,所以要自己拿去 ARM 的電腦 build 過 source code 才能運行程式。

問題來了,怎取得 MS Office source code?不能取得吧?那是 close source 産品,Mircosoft 不開發適合 ARM 電腦的 Office,ARM 電腦就不會有 MS Office 可用,同樣道理,廠商 close code 又不放出 ARM 版本軟件……

因為 Linux 有大量 Open source 軟件能拿到 source code,所以拿到 source 後,能自己 build一個 ARM 版本軟件用,所以請習慣用 Linux。Raspberry Pi 官方版本都是 Linux,網上大部份資訊真是 Linux 作底,不可能完全不知道 Linux 做甚麼。

就算這樣,也不足以「用 Linux !」


也是呢……用慣 Windows,不會說放棄就放棄,有問題就解決問題,解決不了就轉方法……
所謂轉方法,就是轉用 Linux,在 Windows 上安裝不成功,自然會試在 Linux 上安裝可否成功。

被 Windows 坑得多,自然想轉投 Linux,轉用不習慣的系統,雖然痛苦,但那是值得。

有對比有優劣,Windows 贏在有 GUI 操作,GUI 上沒有的選項就沒法弄出來,又不確定可不可以直接改 config,更不用說能不能用 command line。

文檔方面,Linux 那邊比 Windows 多,開發及測試上,多數以 Linux 為先,總言之,開發者多數以 Linux 作靠山,迫使其他人跟大隊。

Windows 系統跟 Linux 系統差別很大,在 Windows 模擬 Linux 也像隔重山一樣,涉及到網路、伺服器之類技術,難度更上升一個層次,我只是個打字文員,寫程式也要學足全套網路及伺服器設定嗎?

快去學 Linux


還堅持不用 Linux,那是沒可能! Docker 到現在這一刻,骨子裡都是建立在 Linux ( MobyLinux ) 上,到 DockerHub 找 image,大部份是 Linux 作底層。要裝 minikube,在 Windows 先要裝 Virtual Box / Hyper-V,為甚麼?因為行 Linux。

放棄吧!開發人員就該學 Linux!不用 Linux 也好,學習 Linux 也是必經之路。

沒有留言:

發佈留言

設有留言驗證及審查,檢閱後,才會顯示留言。
本人惰性很高,留言或許會石沉大海。