編程之魂

出版時(shí)間:2010-04  出版社:電子工業(yè)出版社  作者:Federico Biancuzzi,Shane Warden  頁數(shù):376  譯者:閆懷志  
Tag標(biāo)簽:無  

前言

編寫軟件是件難事——最起碼,編出來的軟件如果要經(jīng)得住測試、時(shí)間和不同環(huán)境的考驗(yàn),確實(shí)很難。在過去的50多年里,為了讓編寫軟件變得更容易一些,不僅軟件工程領(lǐng)域?yàn)榇嗽诓恍概?,編程語言也被賦以重任。但是,真正的困難究竟是什么呢?大多數(shù)書籍和論文在回答這個(gè)問題時(shí),都將焦點(diǎn)集中在軟件體系結(jié)構(gòu)、需求之類的話題上。不過,如果困難在于編寫程序本身,又會怎么樣呢?換句話說,如果我們把自己當(dāng)成是更具交流(語言)色彩的程序員,而不是更具工程色彩的程序員,又該如何呢?小孩子兩三歲學(xué)說話,五六歲學(xué)讀書寫字。我從來沒見過哪個(gè)大作家是成年以后才學(xué)習(xí)讀書和寫字的。

內(nèi)容概要

  《編程之魂:與27位編程語言創(chuàng)始人對話》是27位杰出的設(shè)計(jì)師與你分享他們的智慧和經(jīng)驗(yàn)。書中以問答方式告訴為什么要?jiǎng)?chuàng)建某種編程語言、它在技術(shù)上如何開發(fā)、如何教授和學(xué)習(xí),以及它如何順應(yīng)時(shí)代發(fā)展等。你會發(fā)現(xiàn)構(gòu)建成功編程語言所需的思想和步驟,它廣受歡迎的原因,以及如何處理程序員常見的問題。因此,如果你想深入學(xué)習(xí)設(shè)計(jì)成功編程語言的思想,《編程之魂:與27位編程語言創(chuàng)始人對話》會對你大有幫助。

作者簡介

Federico Biancuzzi,是位自由職業(yè)采訪者(freelance interviewer),他的采訪在ONLamp、NewsForge、TheRegister、ArsTechniea等很多網(wǎng)站上在線出版。Shane Warden,是位對編程語言設(shè)計(jì)和虛擬機(jī)感興趣的自由軟件開發(fā)者。他在業(yè)余時(shí)間經(jīng)營獨(dú)立出版商Onyx Neon。Press的小說分部。他是《T'he Art 0f Agile:Development》(O’Reilly)的合著者。

書籍目錄

推薦序 前言1 C++ Bjarne Stroustrup1.1 設(shè)計(jì)決策 1.2 使用語言 1.3 OOP和并發(fā) 1.4 關(guān)于未來 1.5 有關(guān)教學(xué) 2 Python Guido van Rossum2.1 Python方式 2.2 優(yōu)秀的程序員 2.3 多種Python 2.4 權(quán)宜之計(jì)和經(jīng)驗(yàn) 3 APL Adin Falkoff3.1 紙筆方式 3.2 基本原理 3.3 并行 3.4 遺留 4 Forth Chuck Moore4.1 Forth語言與語言設(shè)計(jì) 4.2 硬件 4.3 應(yīng)用程序設(shè)計(jì) 5 BASIC Tom Kurtz5.1 BASIC背后的目標(biāo) 5.2 編譯器設(shè)計(jì) 5.3 語言和編程實(shí)踐 5.4 語言設(shè)計(jì) 5.5 工作目標(biāo) 6 AWK Al Aho6.1 算法生命周期 6.2 語言設(shè)計(jì) 6.3 Unix及其文化 6.4 文檔的作用 6.5 計(jì)算機(jī)科學(xué) 6.6 培育小語言 6.7 設(shè)計(jì)一種新語言 6.8 遺留文化 6.9 變革性技術(shù) 6.10 改變世界的“位” 6.11 理論和實(shí)踐 6.12 等待突破 6.13 通過實(shí)例來編程 7 Lua Luiz Henrique de Figueiredo and Roberto Ierusalimschy7.1 腳本的功能 7.2 經(jīng)驗(yàn) 7.3 語言設(shè)計(jì) 8 Haskell Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes 8.1 功能性團(tuán)隊(duì) 8.2 函數(shù)式編程之路 8.3 Haskell語言 8.4 傳播(函數(shù)式)教育 8.5 形式體系和發(fā)展 9 ML Robin Milner9.1 可靠性定理 9.2 意義理論(譯注) 9.3 超越信息學(xué) 10 SQL Don Chamberlin10.1 一篇開創(chuàng)性的有重大影響的根本性的論文 10.2 語言 10.3 反饋和演進(jìn) 10.4 XQuery和XML 11 Objective-C Brad Cox and Tom Love11.1 Objective-C工程 11.2 培育一種語言 11.3 教育和培訓(xùn) 11.4 項(xiàng)目管理和遺留軟件 11.5 Objective-C和其它語言 11.6 組件、沙子和磚 11.7 作為經(jīng)濟(jì)現(xiàn)象的質(zhì)量 11.8 教育 12 Java James Gosling12.1 功能或者簡單性 12.2 品味的問題 12.3 并發(fā)性 12.4 設(shè)計(jì)一種語言 12.5 反饋循環(huán) 13 C# Anders Hejlsberg13.1 語言和設(shè)計(jì) 13.2 培育一種語言 13.3 C# 23813.4 計(jì)算機(jī)科學(xué)的未來 14 UML Ivar Jacobson, James Rumbaugh, and Grady Booch14.1 學(xué)習(xí)和教學(xué) 14.2 人們的角色 14.3 UML 14.4 知識 14.5 作好變革準(zhǔn)備 14.6 使用UML 14.7 層和語言 14.8 一點(diǎn)可復(fù)用性 14.9 對稱關(guān)系 14.10 UML 14.11 語言設(shè)計(jì) 14.12 培訓(xùn)開發(fā)者 14.13 創(chuàng)新、改進(jìn)和模式 15 Perl Larry Wall15.1 革命性的語言 15.2 語言 15.3 社區(qū) 15.4 改進(jìn)和革命 16 PostScript Charles Geschke and John Warnock16.1 為永恒而設(shè)計(jì) 16.2 研究和教育 16.3 長壽命接口 16.4 標(biāo)準(zhǔn)愿望 17 Eiffel Bertrand Meyer17.1 一個(gè)充滿靈感的下午 17.2 可復(fù)用性和泛型 17.3 校對語言 17.4 管理成長和演進(jìn) 后記 受訪嘉賓 索引

章節(jié)摘錄

2 Python Guido van Rossum2.1 Python方式 開發(fā)編程語言和開發(fā)“普通的”軟件項(xiàng)目有什么區(qū)別?Guido van Rossum:除了與大多數(shù)軟件項(xiàng)目打交道以外,你最重要的用戶還是程序員自己。這給語言項(xiàng)目提供了高級別的“元”內(nèi)容。在軟件項(xiàng)目的依存關(guān)系樹中,編程語言差不多處于最底層:其他的所有東西都依賴于一種或多種語言。這也使得很難修改一種語言:不兼容的修改會影響很多“依存物”,以至于這樣做通常并不可行。換句話說,一旦發(fā)布之后,所有的錯(cuò)誤都會固定不變。C++很可能就是這種情況最極端的例子,它必須滿足兼容性的需求,事實(shí)上,這種需求也許會要求20年前編寫的代碼仍然有效。您如何調(diào)試一種語言呢?Guido:你不用調(diào)試它。在語言設(shè)計(jì)領(lǐng)域中,敏捷開發(fā)方法學(xué)并沒有什么意義:在該語言穩(wěn)定之前,很少有人會用它,而且你在語言定義中找不著bug,直到你已經(jīng)有很多的用戶為止,而此時(shí)你要修改已經(jīng)為時(shí)太晚。當(dāng)然,實(shí)現(xiàn)中可能會有很多內(nèi)容需要調(diào)試,比如所有老程序,不過語言設(shè)計(jì)自身大多要求提前仔細(xì)設(shè)計(jì),因?yàn)閎ug的成本極高。對于應(yīng)該何時(shí)將某個(gè)特性擴(kuò)展到庫中,或者它何時(shí)需要核心語言的支持.您是如何做出決定的?Guido:從歷史來看,我對此已經(jīng)有一個(gè)很好的答案。我很早就注意到,每個(gè)人都想把自己喜歡的特性添加到語言中,而且大多數(shù)人都對語言設(shè)計(jì)相對沒有經(jīng)驗(yàn)。每個(gè)人都在提議“把這個(gè)加到語言中”,“加一條實(shí)現(xiàn)某種功能的語句”在很多情況下,答案是“好的,通過編寫這樣的兩、三行代碼,你就可以實(shí)現(xiàn)那種功能或者極為類似的功能,而且它也沒那么難”。你可以使用詞典,也可以將列表、元組數(shù)組和正則表達(dá)式組合起來,或者是編寫一些元類——等等這一切事情。我對這個(gè)問題的最初答案甚至可能是來自Linus,他好像也有類似的理念。

后記

只有一個(gè)詞能形容我從這次采訪中獲得的感受——狂熱。每一位受訪嘉賓都會給出你所期望的回報(bào)——深層次知識、歷史性發(fā)現(xiàn)及實(shí)踐洞察力——不過正是他們對于語言設(shè)計(jì)、實(shí)現(xiàn)與發(fā)展的狂熱方才顯示出了巨大的感染力。例如,Anders Hejlsberg和James Gosling再次喚起了我對c#和Java的興趣。Chuck Moore和Adin Falkoff說服我去研究Forth和APL,而這兩種語言在我出生前就已經(jīng)發(fā)明出來了。AIAho通過描述他的編譯器類來誘惑我。我們采訪的每個(gè)人都給我提供了很多想法,我真希望有時(shí)間來研究它們!承蒙各位幫助,我對此感激不盡,不僅僅是因?yàn)槟銈兘o予了我和Federico時(shí)間來采訪,還因?yàn)槟銈冮_辟了許多豐富多彩的創(chuàng)新領(lǐng)域。我從這次經(jīng)歷中獲得的最佳經(jīng)驗(yàn)是:  永遠(yuǎn)不要低估設(shè)計(jì)或?qū)崿F(xiàn)簡單性的價(jià)值。人們可以一直增加復(fù)雜性。而大師會力圖消除復(fù)雜性。  充滿熱情來努力滿足你的求知欲。很多最佳的發(fā)明創(chuàng)新和發(fā)現(xiàn)都是在正確的時(shí)間正確的位置追求正確的答案時(shí)完成的。  了解一個(gè)領(lǐng)域的過去和現(xiàn)在。每一位受訪嘉賓都是和其他聰明的、努力工作的人們一起工作的。我們的領(lǐng)域取決于這種信息共享。語言可能會持續(xù)不斷地修改,不過這些宗師們面臨的問題仍然會困擾我們——而他們的答案仍然適用。諸如如何維護(hù)軟件?如何找到一個(gè)問題的最佳解決方案?如何令用戶驚奇并贊賞?如何在要處理不可避免的修改要求而又不能中斷必須繼續(xù)工作的情況下獲得解決方案?這次采訪對這些問題提供了很好的答案。我希望本書在你自己尋找靈感時(shí)會對你有所幫助?!猄hane Warden

編輯推薦

《編程之魂:與27位編程語言創(chuàng)始人對話》:Adin D.Falkoff:APL;Thomas E.Kurtz:BASlC;Charles H.Moore:FORTH;Robin Milner:ML. ;Donald D.Chamberlin:SQL;Alfred Aho.Peter Weinberger DBrian Kernighan:AWK;Charles Geschke和lJohn Warnock:PostScript;Biarne Stroustrup:C++;Bertrand Meyer:Eiffel;Brad Cox and T0m Love:Objective·C;Larrv Wall:Perl;Simon Peyton Jones,Paul Hudak,Philip Wadlerl:]John Hughes:Haskell;Guido van Rossum:python;Luiz Henrique de Figueiredot和Roberto lerusalimschy:Lua;James Goslinq:Java;Grady Booch.Ivar Jacobson31:1James Rumbaugh:UML;Anders Hejlsberg:Delphi的發(fā)明者和C#的主要開發(fā)者。《編程之魂》采訪了數(shù)位極具影響力的編程語言創(chuàng)建者。在這本獨(dú)一無二的采訪集中,您會了解具體設(shè)計(jì)決策的過程,包括這些前輩必須作出的折中平衡,以及他們的經(jīng)歷對于今天編程的影響。受訪嘉賓包括:如果您對那些具有遠(yuǎn)見卓識并為計(jì)算機(jī)行業(yè)的發(fā)展殫精竭慮的人感興趣,您會發(fā)現(xiàn)《編程之魂》有著無窮的魅力。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    編程之魂 PDF格式下載


用戶評論 (總計(jì)10條)

 
 

  •   這書不錯(cuò). 開闊眼界. 不過覺得, 講的那么多語言, 可能真正學(xué)過用過再看收獲才會更大. 就比如講 python 那一章吧, 要不是學(xué)過 python, 只看那一章是不可能能明白他說的 zen of python (python 之禪) 是什么意思的.
  •   書本身介紹到很多種語言及一些語言的思想,覺得泛泛的了解一下,可以收藏
  •   很多觀點(diǎn)對編程有幫助
  •   程序員是一種職業(yè)的話,這些人無疑給你的職業(yè)發(fā)展提供了方向。從“技術(shù)”到“大道”的轉(zhuǎn)變,提供認(rèn)識的思想深度。
  •   我最感興趣的是java篇的詹姆斯高斯林 從他的說話 談吐來看 無疑充滿著霸氣 每一篇專訪都可以讀兩遍
  •   學(xué)習(xí)到了許多超乎編程語言以外的東西,值得一讀
  •   比如multiprocessing這樣的模塊名稱,就不必翻譯成“多重處理”了吧,翻譯了反而難懂。
  •   有一些需要對照著英文版看,要不意思會弄反
  •   高手和專家的對話,非常值得一看,譯者也非常給力
  •   "vector<xxx>" 這樣的就沒有必要翻譯成 "向量<xxxx>"了吧?不過內(nèi)容還是蠻有啟發(fā)性的
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7