Category Archives: 書評

知識看過很容易忘記﹐要寫出來才會留下深刻印象。我希望能夠把知識與讀者分享﹐刺激他們閱讀那些書的興趣。

Literary Theory, A Very Short Introduction – Jonathan Culler

早陣子我有幸參與王偉雄與鄧小樺在面書上關於文學的筆戰,於留言中在教授旁搖旗吶喊,質疑對家提出無理的論點。可是我是讀哲學出身,完沒有修讀過文學課,對家拋出幾個文學理論的名堂,我不明所以無力反駁只好收聲。面對日後關於文學的討論,我多少也要懂得那些專有名詞,才不至於這樣輕易地被拋窒,就算是用Google找資料支持,也要懂在何處開始搜查。這本《文學理論簡介》是牛津出版社的簡介系列之一,我很喜歡看這系列的書,細細本百來頁,內容深入淺出,讓讀者在腦海建立該題目的地圖,是非常合適用的入門導讀。

很多人講文學理論,喜歡亂拋書包講乜乜主義物物學派,為自己的意見背書。一般人聽見那些名堂,只覺得那不是人說的火星話。這本書並沒有俗套地逐一講解每個學派,只是把常見的主義和學派放在附錄。它從最文學基本的提問開始說起,讓讀者有系統地掌握文學各方面的切入點,那些主義學派的分歧,只不過是在不同切入點所持不同的立場。文學理論最基本的起源,就是要回答一件文學作品有什麼意義,為什麼會有這些意義。文學研究的方法,從傳統上注重的文本解讀,到現代喜歡借用語言學,歷史和文化等,其他學科的理論,去解釋文作作品的意義。

什麼是文學?數學課本不是,食譜也不是。但什麼才是文學,從來沒有統一的定論。同一篇文章,在不同年代也有不同的解讀。很多經典名著,從前學生只會拿當範文來模彷學習寫作,而非像今天般拿來作文學分析,去深究文章中想表達的真正意思。有一個說法,文學是把文字作特定的編排,具備所謂的文學質素,但不論如何詳細去分類,都必定出現有例外的情況。另一個說法,文學之所以是文學,並不是因為作品本身的內在條件,而是視乎社會如何解讀該作品,問題變成了在什麼文化背景下才是文學。傳統理論認為文學有其社會功用,凝聚社會各階層的共同文化,其中對美的追求更具教化功效。另一邊廂質疑文學功用論,他們否定文學服務社會既有架構,認為文學應該解放民眾思想。說到底什麼是文學的提問,並非因為文學批論者分不出文學與非文學,而他們借用重新審視文學的定義,來帶出他們分析文學背後的觀點。

文化研究與文學研究。原本是文學研究的一個分支,把文學研究的分析理論,應用於流行文化之上,產生很多題目古怪但吸引的學術論文。文化研究把文學研究普及化面向大眾,不再研究一般人不會根本讀的文學作品,研究普羅大眾都有接觸有興趣的事物。文化研究的主體是社會上的文化,被研究的事件只是把文化反映出來,有別於傳統文學研究強調作品本身的重要性。有些新派的文學研究,反過來借用文化研究的方法,把文學視為眾多媒體之一,不再把文本放在中心的位置。文學研究從此有兩種方法學,由內至外從文本為出發點,還是由外至內從社會文化出發點。

文字的意義。文學作品最基本單元由文字組成,文字組合成句子,句子組合成文章,文學研究就是從零到整,去解釋每層的意義。文字的意義建基於文字與文字之間的不同,為什麼作者選擇用這個字而非另一個意義相近的字呢?語言學家Saussure提出文字的意義,來自它與其他內容的關係,在語言中文字本身只是隨意性的符號,作者與讀者同意使用同一套語言標準,才令文字產生特定的意義。另一語言學Sapir-Whorf學派反過來認為語言只是表達思想的媒介,而不同語言之間的不同,是源於不同文化思想上的差別。文學研究分析作品的意義有兩個進路,傳統上是基於語言學的詮釋學,從文字的組合去推敲作品的意義,新派則反過來先有主觀解讀,然後才研究作品的文字如何構成這個解讀。語言既然是溝通的媒介,那麼作者與讀者共同構建作品的意義,讀者如何去理解作品才是主體。於是很多新派文學研究,不論給他什麼作品去解讀,總就是得出同一既定答案,例如馬克思學派就一定是階級鬥爭,女性主義就一定講父權迫壓。到底最後由誰去決定文學作品的意義呢,作者寫文章的原意,文字本身語理上的意思,該作品在社會默絡中的意思,還是讀者領悟到的意思呢?

修辭學與詩意。傳統上文學研究分為修辭學和詩意兩類,修辭學關於文字有效地去說服讀者,而詩意是比修辭學更高深的技巧,不像修辭學般有規則可尋,如何用文字去表達作者的情感。修辭學有四種主要手法,比喻(metaphor),轉喻(metonymy),提喻(synecdoche)和諷刺(irony)。一篇文學作品,可以按文學類別去分類,讓讀者容易閱讀。文學類別源於希臘,傳統上有三個類別,詩詞,史詩,話劇,現代文學加入小說為第四類別。詩是一種特別的文體,除了文字本身的意思構成內容外,文字意思以外(如讀音,押韻等)亦是內容重要的組成,所以詩是必需要朗讀出來才能理解。就算讀者閱讀寫在紙上詩,讀者腦海中仍然要把詩朗讀出來,而不似其他文學般可以直接用眼看就解理。詩很多時候刻意不遵守文法,甚至文字字面意義的規則,如何解讀一首詩就是從轉化了文字中還原作者的本意。

敘事。曾幾何時文學研究的主流是詩,不過現代文學主要研究小說和短篇故事。現代人讀詩者少,但看小說者眾。小說其實是在說故事,而說故事本身,是人類理解世間萬物的主要途徑。一個故事合不合理,是否完滿,在於其敘事手法。阿里士多德說過,敘事是根本在於主線,一個好的故事要有起承轉合。單單把先後發生的事件例出來並不構成一個故事,每個事件之間要有連貫性,環繞著一個主題。詩不能翻譯成其他文字,翻譯後其詩意盡失,但故事卻沒有這個限制,可以釋譯成不同語言甚至不同媒體,而同時保留故事的精髓。從一個角度去看,不同事件串連成一條主線,從另一個角度去看,同一條主線,用不同的敘事角度,可以衍生出不同的故事。敘事角度千變萬法,例如:用第一身還是第三者角度,預設目標讀者(作者可以省略重覆讀者先經知道的預設),敘述發生的時間(與事件同時進行,還是事後敘述),用什麼語言(如用兒童的語言,還用是成人語言講述兒時回憶),敘述的可信性(用神視角,還是角色受限制的視角)等等。到底敘事手法是通過故事去傳遞知識,還是把原本在故事中的知識,無可避免地扭曲掉呢?

語言即行動。語言哲學家Austin提出,一句說話除了是說話外,有時候還是一個行動,例如婚禮上答「我願意」又或者應承下星期還錢。一件文學作品,除了被動地被解讀的意義以外,還可以是作者主動地透過出版作品,從而改變社會而構成一個實質行為。Derrida認為語言如何構成行為,本身是基於社會上對該語言的共同認知。語言和文字不只是單向的表達溝通,而是雙方共同重覆慨定的語言儀式。美國哲學家Butler將語言即行為套用在女性主義和同志文學上,他認為性別和性取向並不是天生,而是通過語言和行為去塑造,他的理論影響後現代文學。Austin的理論是社會文化在影響文學,如何重覆語言才構成行為。Bulter的理論則是文學在影響社會文化,把語言不停重覆能改寫社文對該詞語的認知。

文學中的身份。 「我是誰?」是文學中最常見的提問,從文學中尋找角色或作者的身份,可以個人的層面去解讀,亦可以從社會層面去解讀。一個人與何構成他的身份,到底是他主動發現尋找到自已是誰,還是被動地從種族姓別性取向等繼承身份。長久以來,文學是年青人藉書中角色,去尋找身份認同的途徑。除了個人身份外,還在社群身份,到底社群身份是與生俱來,還是個人的選擇呢?

文學研究各大門派

  • 俄國形式主義 (Russian Formalism) – 比較傳統的門派,研究文學中的文學性,文字的表達技巧。
  • 新批評 (New Criticism) – 鄧小樺最愛的新批評一點也不新,差不多也有一百年歷史了。重著整件文學作品的評價,從美學角度去閘明作品的意義,認為詩意才是文學的最高境界。
  • 現像學 (Phenomenology) – 不去探問客觀真實的世界,只看作者意識中反映出來的世界。另一個版本是讀者現像學,看讀者意識中感受到的作品。
  • 結構主義 (Structualism) – 著重解釋如何文學作品如何構成它的意義,最初從反對現像學開始,解釋文字結構如何讀讀者產生經驗。結構主義不為作品找出新意義,而是去研究什麼文學規則會有什麼意義,很多時與符號學有所關連
  • 後結構主義 (Post-Structualism) – 很多後結構主義的名家,如Foucault最初是結構主義者,越研究越發現結構主義的極限,很多文學意義是從打破既定的文學規則而產生,找出一套完整的文學規則是不可能的任務。後結構主義者沒有推翻結構主義者,只是他們認為結構與文學的主體無法分辨,不是一種客觀的知識,而受作者身處的社會文化所影響。
  • 解構主義 (Deconstruction) – Derrida是最出名的解構學家,從西方哲學傳統的二分法入手,他認為語言文字本身沒有意義,要在語境下對證不同文字的差異,先明白它不是說什麼,才能明白它在說什麼的意義,
  • 心理分析 (Pyschoanalysis) – 借用佛洛依德的心理學去分析文學,可以分析書中角色或作者本人
  • 馬克思主義 (Marxism) – 什麼文學作品都關階級鬥爭的事
  • 新歷史主義/文化物質主義 (New Historicism/Cultural Materialism) – 偵探不同文學作品之間的關係
  • 後殖民主義 (Post-Colonial Theory) – 俗稱解殖,西方殖民時代把世界各地的文化改寫了,獨立後的殖民地把其文化環原本來面貌
  • 女性主義 (Feminist Theory) – 認為所有傳統文學理論都是男性為中心,女性有另一套思考模式,所以要發展另一套理論
  • 少數族裔(Minority Discourse) – 與女性主義類似,只是把男人換成白人。
  • 同性主義 (Queer Theory) – 同上,把白人換成雙性戀者。

書中分別提出七個角度去分析研究文學作品,而每個角度到有正反雙方一套截然不同的理論,這解釋為什麼理科人對文學感到無從入手。理科人習慣科學性的世界觀,任何是都有一套公認客觀真理的準則,就算理科人讀哲學,有些題目正反雙方的理論不分高下,但至少可以從正反合中更加接近真相。文學理論沒有像哲學般的正反合,只有很多兩個不同方向,完全無法融和的切入點,最大問題是很多時候寫文學研究的人,為找文學理論支持自己的文場,把互相矛盾的理論組合來使用而不自覺,所以略有理科訓練的人讀來,完全看不明白他們何以推論出其立場的結局。

The Politics of Design – Ruben Pater

我有一個習慣,每個學期開始之時,會找個時間去逛逛大學書店,看看有什麼有趣的課本。今個學期有一本小書吸引我的目光,這本《設計的政治》是傳理系其中一門課的指定讀物。細細本二百頁都不到,內容圖畫多過文字,我拿上手翻了幾頁,覺得本書有趣便買回來。這本書的序言中開宗開義說,沒有絕對客觀中立的設計,很多我們覺得沒有問題的設計,只是在我們的文化背景下沒有問題,換轉另一個文化背景可能產生歧義。世上不存在絕對客觀的溝通,講者和聽眾不一定對同一事物有相同的解讀。這本書圖文並茂地羅列五十多個例子,去說明文化因素或政治理念,如何隱藏在我們日常的接觸的設計之中。

書中例子分成五大類,有文字與語言,顏色與對比,形像與影像,符號與圖標,資料圖素。每個例子只有短短一頁簡介,文字頂多只有兩三段,圖畫佔了大半版面。好處是例子介紹很淺白易明,缺點是沒有深入討論,不過勝在題材多元化。作為一本入門書籍,對這方便沒有認知的讀者,會有耳目一新的感覺。不過我讀了哲學多年,平時又留意開社會學派的新聞,很多例子都略有所聞。不過眾多例子結集於一本書內,倒有其方便閱讀的價值,亦把我從很多不同渠道得來的知識,很有系列地串連起來。

書中有很多很有趣的例子,甚至可以說是很偏門的冷知識,在此我轉述幾個有趣的例子。為什麼有些文字書寫的方向從左到右,有些則從右到左?原因是與最初書寫媒介有很大關係,用泥板寫的文字從左寫到右,因右手不會弄花寫好的文字,刻在石板上的從右寫到左,因為右手拿著鎚仔向左鑿。歌德式粗黑字體,被欽定納萃德國的官方字體,從此這類字體同極右思想扯上關係,不過原來希特拉不喜歡粗黑體,他偏好簡潔的未來體,即近年Google轉新招牌那種無邊字體。嬰兒用品的顏色,現代人很理所當然地男仔買粉藍色,女仔買粉紅色,原來性別有分顏色源於二十年代的廣告,而最初是主打男仔用粉紅色,後來才反轉了過來。

簿簿的一本小書,一個多小時便看完了。書中除了一些例子我覺得只左膠才會覺得有問題,其餘部份我認為這本書寫算寫得中立客觀,只是如實地報導那些例子有什麼問題。其中一個原因是篇幅實在太短,只夠講述某個設計帶出什麼文化或政治問題,並沒有再申延下去評論那些問題是否合理。作為一本入門級的小書,這樣輕輕地介紹就足夠了,讀書感興趣的議題,可以自行再深入研究。

Head First Python

說到要學電腦程式語言,Python相信是近年最炙手可熱的語言了,一來Syntax易學易用,二來library支援眾多,更是近期最熱門人工智能的主要語言,我最近因工作需要也要學Python。以前我讀大學時程式入門課教C,然後過幾了年進化為教Java,不過最近陸續轉為教Python了。公司新請回來的大學生個個都懂Python,吾等老海鮮也要與時並進才不會被淘汰。

原本公司內部個兩不同部門使用不同語言,chip testing和apps那邊以前用tcl,貪tcl不用compile方便操作,我們software testing那邊則以C++為主,因為需要OOP和static type來架構軟件測試系統。兩個部門有很多基礎的應用程式功能重壘,不過因為使用不同語言,同一個功能需要寫兩次。高層認為一code兩寫很沒有效率,下令我們統一使用同一語言,在雙方列出對語言的要求後,Python成為很自然的選擇。Python是interpreter language不用compile,同時又支援OOP和type checking,一次過滿足我們兩個部門的願望。

學習新程式語言,很多人喜歡讀網上課程,不過我比較傳統喜歡看書,我嫌網上課程看影片太嘥時間,看書容易明的部份可以速讀,難明的部份可以花多此時間重看幾遍。學習寫程式最重要是落手落腳寫code,跟課本的練習做同做網上課程的功課分別不大,反正程式寫得好就work有bug就唔work,沒有需要改功課對答案的問題。在芸芸眾多本Python書中,我挑選了這本《Head First Python》,看電腦書不是大大本很厚多字就好,最重要是把應用慨念解釋清楚,有時一張圖或一個例子可以抵得上三版紙枯燥的文字。這本書開宗明義不是教寫程式,而是寫給已懂其他語言的人學習Python語法。這本書最優勝之處的單元的編排,整本書就是寫一個有趣的小小網上應用程式,每章都教一些新東西為程式加上新功能,看書就好似一路做project咁不會悶。最怕有些程式書只是把語法由頭到尾列出來,再口水多過茶地加鹽加醋地長篇大論講解。

最初看Python很不習慣那個indent style,寫了咁多年程式都係用curly bracket, 唯有Python別樹一格強迫indent,不過寫幾個星期習慣了就不再覺得礙眼。同C++或Java比,Python同Ruby算是第四代的程式語言,去年學過Ruby所以Python很快上手,兩者的設計理念不同,不過最核心的本質其實一樣,明白了個背後用C寫的Ruby/Python個interpreter,睇埋個interpreter入面的internal data-structure,咁成個語言就一理通百理明。Ruby就乜都係object,Python雖然有人都係咁講,但我認為Python的真蒂其實乜都係callable,連class declaration都係一個function。明白了這一點後,Python所有新feature concept,如generator,declaration,context manager,future, asyncio等等就能清楚理解明白。

睇完本書跟住它做完個project仔,再上Python官網看一次官方tutorial,把standard library的所有API係咁意睇一次,大慨知道有乜function乜library可以用,遇到問題就問stack overflow大神求救,還有功能強大的PyCharm相助,其實Python很容易上手。越寫越覺得Python好使好用,大有相逢恨夜的感覺。現在學了用了Python兩個多月,自問至少追上公司新仔的水平,review佢地寫的code也不會失禮問白痴問題。

Embedded Linux Primer 2nd Edition – Christopher Hallinan

在PC上安裝Linux很簡單,上網下載個今期最新最流行的distribution,然後跟著畫面步驟照做就可以,基本上與安裝Windows同樣方便快捷。在embedded system上安裝Linux,就沒有這樣簡單了,embedded system規格千萬化,就算是使用同一塊晶片做CPU,不同的開發板也有不同設備。若果是熱門多人用的開發板(如Raspberry Pi, BeagleBoard等)還好,用家社群可以找到不同package的Linux系統,有些冷門的開發板就只有廠家提供的package,若果不適合或廠家不再更新,就要自已落手落腳去compile合用的Linux。

這本書2011年出版,當年Linux kernel版本還是2.6,現在已經去到4.14。在科技日新月異的電腦界,三四年已經面目全非,看這本六年前出版的「舊書」,內容會不會過時?其實作業系統的轉變非常緩慢,雖然每個版本的Linux也有新功能,但始終都是建立在UNIX架構基礎上,所有接近CPU硬件的低階知識都是累進的,畢竟CPU架構十多年來也沒有大變化呀。說到要從source code開始去compile Linux,網上料資一是太零碎一是太深,除非付費報名上堂去學,否則要靠這本書當指路明燈。不過這本書並非入門書,對讀者程度有頗高的要求,一是要對Linux作業環境有一定認識,二是要有寫程式和搞硬件的經驗,除非是工作需要或電腦科的學生,應該沒有人會自己compile Linux。

這本書的內容比之前看那本How Linux Works更低階,首兩章講什麼是embedded system,其實會看這本書又怎會不知道,不過開場白總不能避免。第三章正式進入戲肉,講解kernel的source code的架構,粗略介紹如何config。這本不是講kernel的專題書,大部份compile Linux的人都不會改動個kernel,所以不用講太深入。之後兩章分別講kernel init同user space init,平時開機見kernel印一大堆message出來,終於知道那些message是什麼。這本書解釋root file system十分好,之前看其他地方了幾次解釋都看不明白,今次終於睇得明。另一章是教寫device driver亦是本書重點,用一個dummy drive做例子,可以跟著書照做自己試下寫。

之後的章節很有系統介紹整個embedded Linux需要用到的各種工具,從compiler到debugger到build system,讓讀者知道有什麼東西可供使用,然後可以自己google更進一步的資料,如何連名稱也不知道,想google也無從查起。原本我打算用Yocto去compile,不過經這本書提醒,再看看網上的比較資料,初學者還是用Buildroot較容易上手。

之前只是跑其他人寫落的script去compile kernel,感覺很不實在,完全不知道自己在做什麼,如果有什麼事唔work,只能叫人幫手整,自己完全幫不上忙。睇完這本書,我才覺得有足夠的知識,去應付工作上可能遇到問題。我有自知之明,我還未夠料親自落手落腳去fix問題,不過至少填寫bug report時,不用好白癡咁乜都只係識話唔work,至少識話俾人邊度唔work有乜野要fix。

How Linux Works – Brian Ward

接觸Linux大大話話都有廿幾年,從最初唔知買乜鬼雜誌送CD,自已裝來裝去到搞唔掂個graphics driver,到後來Linux一統江湖,日日返工都在Linux上寫code,到最近因工作需要自己compile Linux,才發覺我從來沒有認真學習過Linux。日常使用Linux跑程式,砌機灌OS裝Linux那些手板眼見功夫,遇到難題上網Google答案輕易過關,基礎打不好,現在書到用時方恨少,要有系統地重新認識Linux。

這本《How Linux Works》雖然美其名是入門書藉,不過除了第一章的Linux簡介,第二章日常使用的commands外,第三章打後難度三級跳,從Filesystems,到Kernel Bootup,systemd執行先後次序,每一個題目都超過一般用家要知道的知識,可以說是Linux admin的指南索引。這本書不太厚只有不到四百頁,所以每個題目都不會講得太深入,反而是系統化地把Linux的內容例出來,讀者大約知道有什麼題目,然後自己再找上網找資料。

這本書的內容,大慨有八成我以前看過,所以看過本書非常快,很多章節只是粗略翻看。剩下來的兩成新知識非常有用,補完我對Linux認知的缺漏,有些很簡單的基礎慨念,一般網上速食解答沒有講解,例如/usr其實同user無關,新process如何fork出來,shell script可以開subshell,X系統server同client的分功等等。很多東西我懂得用但不求甚解,現在學好了基本知識,開始看通Linux的設計邏輯,很多疑問便一理通百理明。

不過看完這本書,雖然對Linux的認識是完整了,對於compile Linux的幫助不大,頂多在我執package時至少知道放了什麼入去個build度,但解決不了kernel開不到機的燃眉之急,還要繼續找其他書看。