好書短評之《七週七語言》

Tony Bai發表於2012-03-20
“參照國外讀者的評價,找到你需要的書。”在你決定購買本書之前,本欄目將努力向讀者朋友們呈現公正客觀的評價。如果你發現這是本好書,請不要忘記收藏。

5星評價,程式語言愛好者的第七天堂
by tony cappellini (Milpitas, 美國加州)

這本書首先吸引我的是它涵蓋了幾種我知之甚少或一無所知的語言。在我的職業生涯中,主要由於機會的原因,我只是接觸到了少數幾種知名的程式語言。最近,我十分好奇於Erlang的併發模型以及魯棒性,即便在我每天的工作當中沒有使用它的地方。能有機會了解Erang與其他語言的異同正是我所期望的。因此,我選擇繼續去深入瞭解真相,看看這個兔子洞究竟有多深。

《七週七語言》一書涵蓋了Ruby、Io、Prolog、Scala、Erlang、Clojure以及Haskell。這些語言作為一次調查的結果而被選中。到資料統計時,仍然剩下8門候選語言。考慮到有這麼多語言入圍,我對最初的那份名單如此之小感到非常驚奇。這也就是說很多語言最終被寫入書中。

首先,我十分喜歡這本書。對於每門語言,它總是以一段簡潔的描述作為開始,並且提供了足夠的資訊讓你知道在每一章節裡會有哪些內容。整本書自始自終遵循了這種實用的一致性。

每個章節的結構都十分簡潔,具有較強的邏輯性,這使得它非常便於讀者對每一種語言進行對比。我也非常喜歡書中關於程式語言發展與歷史以及那些對語言開發者進行訪談的章節。每章以"趁熱打鐵"作為結尾,總結了每門語言的關鍵點,諸如效能、易變性、不足、優勢、可讀性等等。事實上,最後一章是對整本書的"總結"。我不知道還有什麼比這更好的方式來結束本書。

這本書雖然僅有317頁,但對書中的每門語言都提供了豐富而簡明的說明。對於引發讀者興趣、介紹語言基本特性與樂趣來說,這本書的"規模"可謂是恰到好處。

我不禁想知道是否還會有後續的標題用於比較和對比另一組語言。如果是這樣,他們會是哪些語言呢?

本書簡介以下面的這句話作為結尾:

"當你讀完此書,你無法成為書中任何一門語言的專家,但你將知道每門語言所提供的獨特的東西"

我十分贊同。

關於這本書,我已經說了足夠多的好了。如果你在工作中使用了書中的語言,你可能不會像我這樣對此書如此感興趣。不過,如果你像我一樣,在職業生涯中尚未接觸過以上幾種語言,這本書是將成為您必備的收藏。在我瞭解了Erlang以及函數語言程式設計的概念後,它甚至可以激發我鑽研另外一種語言。

5星評價,無論你是初學者還是有經驗的開發者,這都是一本非常好的書。
By Gary F. Pollice (Shirley, 美國 麻薩諸塞州)

當我收到Bruce Tate寫的這本《七週七語言》(Pragmatic Programmers, 2011)時,我沒有期望它能給我留下什麼深刻印象。首先,Tate的書,從Java到Ruby的我都讀過,這些書都沒有給我留下什麼深刻印象。我不是經常讀那些寫給管理者的書,這也許可以解釋我的失望。此外,像這樣一本用不足350頁卻涵蓋了七門語言的書到底能有多少實質的內容呢?為什麼大多數講解一門語言的書卻經常能達到1000頁 -- 為什麼實際上那些頭腦清醒的人很少會讀完這樣的鉅著?

出乎我意料的是,這本書居然給我帶來了愉悅。這本書沒有為每門語言提供擁有多道主菜的大餐,而是提供了一些餐前小吃,讓你通過試吃樣品來確定你是否喜歡這門語言。如果你確實喜歡這門語言,它將提供足夠的讓你繼續深入下去的內容,直到你預訂了其他書籍或課程所提供的有關這門語言的大餐。更有趣的是Tate是如何選擇這些味道可口的語言的,每門語言都可以從不同角度調足你的胃口。

這本書中沒有大眾"快餐"語言,諸如C,Basic,甚至Java。相反,Tate提供了一些廣受青睞的或被重新探索的先鋒語言,因為這些語言提供了我們在未來應用和計算機系統開發中所需要的新的程式設計正規化以及更高的開發效率。Tate的選擇是Ruby、Io、Prolog、Scala、Erlang、Closure以及Haskell。幾乎沒有人能充分地瞭解所有這些語言,即使你對所有這些語言都有一些瞭解,這也是一個讓你獲得一些額外的見解的機會。

Tate將大家在學習任何新語言時所常問的問題彙總,並通過這種方式幫助大家學習新語言,這些問題包括:

這門語言的型別模型是什麼? 這門語言的程式設計模型是什麼? 你如何與這門語言互動? 這門語言都有哪些決策構造與核心資料結構? 這門語言都有哪些獨特的核心特性?

最近,我使用本書中Ruby章節將Ruby語言介紹給一些高中學生,效果非常好。一些學生在學完這一章後決定在他們的專案中使用Ruby並且在短短的五天時間裡做了一些非常不錯的工作。

你可以在週末舒服地閱讀本書,這就像是品酒,將眼前的一切緩緩放下。花些時間學習這些語言吧。使用七個星期,或至少花幾個星期。深入體味這些語言,並決定你要繼續深入瞭解哪些語言。這將是一個有趣的旅程,當然值得你花時間。

5星評價 語言變化等同於思維變化
By Craig Riecke (East Syracuse, 美國紐約)

如果你認同Sapir-Whorf的理論,你會相信語言的選擇會影響你對這個世界的看法。如果你是一個認同這一理論的計算機程式設計師,那麼這門書絕對適合你。

我讀了這門書的早期草稿,並且我想我肯定可以使用Scala實現併發或使用Prolog進行邏輯程式設計。不過,即使事實上我沒有真正地使用這些語言,我發現他也影響了我使用Java的方式。因為事情是這樣的。就像所有的語言都是圖靈完備一樣,理論上,所有語言都可以用來表達同樣的想法。但是如果你發現對於某件事,某門外語中有一個更為優雅的表達方法,你會在你的母語中接受同樣的表達方式。這樣我每天所編寫的Java程式碼開始變得不同- 更好,更整潔,更易理解,更接近於領域語言。

在某個時刻你可能會接納Ruby或Scala,但首先你應該為這些新語言而感到興奮,duck typing,充滿活力等等。這本書會為你提供這些。它會以你無法預料的方式推動你前進,或大面積地簡化你的母語。想象一下"百年孤獨"地程式設計,這本書正是為了避免這一切的。

5星評價 一個軟體的假期
By Harold Johnson (Los Angeles, 美國加州)

我不確定我的期望是什麼,但結果卻遠比我期望的要多。積累了30多年的編碼經驗後,我發現現在的自己正盲目地徘徊在計算機世界中。當我開始程式設計時,只有兩門語言:Cobol和Fortran。語言的參考手冊只有區區數百頁,Fortran也是如此。那時有門叫作Algol的語言試圖統一計算機世界,但它沒能做到。在過去的十年中,我一直為一個無知的組織工作,這個組織只對當前的事情感興趣。不幸地是,他們永遠也不會懂得缺乏遠見常常會將你帶到技術懸崖的邊上。無論如何,我看到了這本書的標題,並且我很好奇。讀完這本書後,我現在才知道我已經錯過了許多。雖然我已經花了很多時間,試圖在某個方向上加快速度,但世界已經走向了多個不同的方向。同時,一些非常聰明的人嘗試教授計算機如何應對這個現代的世界。Bruce的書既描述了它們的成功,也描述了其中的挫折。

我猜想Bruce將會被證明是利潤的代名詞。早在這本書中,他就提出了猜測:他的書將掀起了圖書銷售狂潮。我猜這將成為現實。我已經預訂了三門語言的參考手冊,其中有兩門語言我壓根兒就不知道它們的存在。我為另外一門我在若干年前接觸過的語言預訂了一本手冊,不過這門語言近幾年得到了迅速地發展,面貌早已不同於以往了。

促使我寫下這段書評的是Bruce書中的最後一段文字:"尋找你自己的聲音"。最終,我明白了我為什麼過去花了30年時間進行計算機程式設計。雖然那是一條漫長而曲折的道路,但最終我還是明白了為什麼我不得不這樣做。謝謝布魯斯!!

相關文章