Mac VS Windows
Mac電腦,喜歡的人特別喜歡,不喜歡的人都說不好用,軟件都是付費的軟件。Windows電腦,用的人更多,用非正版軟件的也大有人在,簡單易用,缺點是彈窗軟件太多,各種廣告鋪天蓋地,很多軟件自動安裝全家桶,教人難以忍受。所以,筆者在Windows和Mac的對決中,選擇了Linux。
sed與awk
這兩款程序是合作的關系。使用正則表達式來處理文件。在Linux系統構建之初,發揮重要作用。然后保留下來,成為系統工具。筆者偶爾會用grep作為它們的補充。
lex與yacc
這兩個程序可以看作編譯器的編譯器。有的Linux下用bison代替lex。也是構建系統用的工具。屬于合作關系。一個斷句用,一個重新組合語句。
tar與gz
命令行工具。一個打包文件,一個壓縮文件。有令人眼花繚亂的選項。也屬于合作關系。
make與m4
make可以根據文件運行命令,進行自動的編譯,拷貝,移動文件等操作。m4是一種復雜的編程語言,使用宏替代,可以自動生成配置腳本。
sh與bash
都屬于console。Linux下的terminal不止這兩種。而是有很多種。這兩種很有代表性。都可以用來接受命令,或者運行腳本。不同的是各種終端接受的命令稍有不同,或者格式存在某些差異。
cat與echo
這是兩個命令。前者原樣輸出文件,后者原樣輸出命令行參數。用途不同??雌饋聿恢匾?,但實際上很重要。
vi與Emacs
這是兩款文本編輯器。都有不同的方式擴展自己的功能。vi的體型相對小一些,是某些linux自帶的默認的編輯器。emacs則需要用戶自己安裝。emacs的功能越來越龐雜,甚至連煮咖啡這種事情也能完成。這兩者之間的關系是競爭關系。關于兩者的爭論,已有圣戰發生,沒有結論。
Perl與Python
這是兩種編程語言。盡管無意競爭,但Python誕生之初就被拿來與perl比較。且它們的格言是針鋒相對的。Perl說,做事的方式不止一種,也就是說條條大路通羅馬。Python說,有一種最好的方式來做事,也就是說,有條康莊大道,就問你要不要走。
在構建linux這事上,perl占了先行的優勢,很多腳本都是perl寫的。很多人準備用python來替換perl,于是,系統中也有很多python腳本。老腳本perl多,新腳本python多。替代沒有完成,系統中必然有這兩種語言。將來,完全的替代也不會發生。因為Perl早已在某些系統中扎了根。于是,這兩種語言在各自的領域發揮作用。
編程語言之間很容易引發圣戰。得益于Python的大度,Perl與Python之間的圣戰不那么激烈。
Delphi與VB
TuborC與VisualC++
Netscape與IE
等
以上列表之間的戰斗是生死之戰。但隨著歷史的進步,即使勝者,也漸漸被淘汰或替代,敗者則消失在歷史的長河中。有公司的軟件和開源軟件是如此的不同。競爭失敗,開源軟件可以茍活,有公司的軟件只能消失。
Windows與Intel
曾經無敵天下的組合。Intel負責讓處理器更快更強,Windows負責吃掉和壓榨這些性能。逼迫用戶不斷的升級硬件和軟件。