我記得早在2006年的時候就開始頻繁使用awk做文本處理方面的工作,07年的時候周圍有人用perl,我還感到很不解,覺得寫得很復雜,沒有awk one liner 那么方便和神奇。一直在了解awk的具體使用方法。在積累的一定時間之后,感覺到很自豪終於算是比較精通了。今天是2016年X月X日,10年后,我突然翻到《UNIX編程藝術》awk那章的時候:書中內容,簡要說----
“在1990年代后,awk就已經很少被使用了,原因在於,awk分為兩部分,前半部分是面向特定場景的范式,后半部分是無限外延的動作。兩部分的結合,非常bad。現代的小語言要么普遍適用但不很緊致;要么面向特定場景,而且非常緊致。而awk這種specialized but non compact,非常沒有競爭力,awk學習成本過高,但帶來的收益非常小。”
注:compact 我翻譯為緊致,是數學拓撲學上一個詞語,不過本人數學能力有限,只能理解到(不緊致,緊致)為(開,閉區間)的程度。
假如10年前我學的是perl,那么我今天可能不是僅僅會處理簡單文本的input和output,而二進制處理,浮點數計算我也會了。
突然感慨於小公司工程上落后大公司和業界許多。如果我早點看到這部書,我可能不會在一門小眾語言里浸淫這么許久。