大家如果有Programmer 的朋友,你應該早就發現他們使用的軟件與平常電腦使用者很不同,其中最引人注目的就是一個黑底淺色字、無任何圖案的軟件,而你的Programmer 朋友在上面飛速打字,然後密密麻麻的文字就慢慢向上褪出螢幕,大家總會忍唔住補上一句:「嘩!好似Matrix啊!」 或者「你係Hacker嚟架?」
https://www.indiewire.com/2017/10/the-matrix-code-digital-rain-meaning-1201891684/
這個軟件其實是Command Line Interface(命令列介面),,簡稱CLI。大家常用的界面是Graphical User Interface(圖形使用者介面),簡稱GUI。問題來了,為何時至2018年,在touchscreen都已經廣為使用的年代,programmers 還會使用CLI呢?
CLI同GUI 兩者本質上皆是為了向電腦下達命令,因而需要一個人機界面(Human-Computer-interface)而成的,CLI 出現年份較早,早於電腦出現初期已經發明。GUI 則約於上世紀八十年代開始廣泛使用。 使用難度方面,GUI 非常直覺好用:君不見現在五歲小孩用iphone比大人還熟手嗎?
https://www.guitricks.com/2015/07/how-to-download-or-get-windows-10.html
使用難度方面,CLI 則需要重新學習,很多我們的同學第一次使用CLI 都會有手足無措的感覺。但熟練的CLI使用者用起來卻如自然反應一樣。
箇中原因,其實在於GUI 其實是以圖案為基礎的使用者介面,CLI卻是以文字為基礎的使用者介面。 常言道:「一幅圖勝過千言萬語」,那麼使用GUI 一定比CLI方便敏捷吧? 其實不然。 圖案長於展示(Demonstration)的場合,拙於描述(Description)的場合; 相反文字長於描述,拙於展示。 試比較以下兩件事用文字或圖案的解答難度:
顯而易見的是,要解答 1.
,貼Google Map就可以了。
2.
則明顯困難得多,由你家往Tecky Academy 可以用路線代替,那如何要圖案表達「上課兩小時」呢? 就顯然不是那麼簡單了。
相反文字在解答 1.
則是非常困難,可能要以在「有線電視大廈旁」等的提示才能準確表達海盛路11號到底是在那兒。 而2.
的解答,本身就是文
字啦。
電腦方面亦有一樣的現象,要展示一個資料夾裏面有甚麼,使用檔案管理員的Tree view 就方便不過了。
但想像一下你有一堆檔案要重新改名,要由原本以tecky 開頭改為以teckyAcademy開頭
用GUI 的話,不使用額外的工具的話,需要逐一改名,有一百個檔案,就要自己改一百次。 但是使用CLI的話, 只需要打以下這段command 就一舉完成了。
find . -iname "tecky*" | awk -F'[/_]' '{print "mv",$1"/tecky_"$3,$1"/teckyAcademy_"$3}' | sh
當然大家如果未學過Command line的話,此段文字基本上是外星語言。但由描述的角度看,卻完全一步一步解釋了做甚麼:
Programmer 工作中經常會遇到如上面一類大量描述的任務,如以GUI一一解決的話,除非安裝額外軟件,不然會相當費時失事。因此,很多Programmer都練就了一身良好的command line 技術,當遇到此類問題,自然迎刃而解。 而 Programming本身,每一行代碼也是對電腦描述想做的命令,因此就更需要大量的keyword或 method call 了。
講開又講, 雖然其實真正的Hacker都一定會是Command Line高手的,所以其實不知道你的programmer朋友是否真正的hacker 哦!
大家如果有Programmer 的朋友,你應該早就發現他們使用的軟件與平常電腦使用者很不同,其中最引人注目的就是一個黑底淺色字、無任何圖案的軟件,而你的Programmer 朋友在上面飛速打字,然後密密麻麻的文字就慢慢向上褪出螢幕,大家總會忍唔住補上一句:「嘩!好似Matrix啊!」 或者「你係Hacker嚟架?」
有人看到這些故事,結論就是Programmer 做到30歲就好,要盡快升遷到不用再寫Code的位置,才會穩妥,不然一遇上經濟轉差,就會面臨裁員的可能性。其實不只香港,外國亦有人有類似看法,彷彿三十歲是一條無形死線。過了三十歲,還在前線寫Code,未來就會一片暗淡無光。
在Tecky Academy教學中,間中會有同學問:「點解唔用Microsoft Windows做Server?用Linux有咩好處?」 誠然,於消費者電腦(不計算智能電話) 市場中,Windows有七成市佔率,Mac佔了一成,Linux只有可憐的一個百分比。為何在伺服器的市場上,卻是反而Linux占有約六成,擁有最大的市場份額呢?