譯後記:C是偉大且垃圾的語言

來源:互聯網
上載者:User

對於每一個C程式員,不論是菜鳥、教師還是資深程式員,Dennis M. Ritchie所寫的The Development of the C Language,應該是必讀的文獻。通過google其中文版(google C語言的發展史),最前面的翻譯的東西令我不爽,所以自己翻譯一下備用。yqj2065的翻譯中,使用了若干你不能夠原封不動抄到你的書籍和文章中的字眼,還添加了一些私活;也沒有推敲文字是否優雅,大致通順即可,關鍵是意思要正確。信雅達——信是第一位的。

C語言的發展史-1 、C語言的發展史-2、C語言的發展史-3

有時間,我還會完善它們,因而轉載請謹慎。

ok,談談C語言。千言萬語一句話:C是偉大且垃圾的語言

看到過一些詩意般的讚美:“在其它語言裡,各種的抽象、甜膩的文法呵護著你的代碼,讓你看不到它的心跳。但C語言裡,就像是足球,在場地上奔跑移動。簡單的文法,淺顯的關鍵詞,這是對通用馮·諾伊曼·約翰機器最精彩的描述。C語言裡,程式的靈魂直接向我們開放。我們看到了、感覺到了,所以我說 C語言,美麗的語言。"

類似這樣的描述,比比皆是。特別是C的簡潔、譚C說”程式設計自由度大“、高效...

1、簡潔。只有初生兒才是簡潔的。如同軟體開發的瀑布模型,C作為廣為人知的程式設計語言,它在C89/90甚至之前才簡潔,只有專註於一個小的應用領域才可能保持自己的簡潔。每增添一個關鍵字,如_Bool、inline、_Static_assert、_Atomic,語言的複雜程度會提高。另外,簡潔的C又擁有明顯冗餘的auto、register。明顯冗餘的原因,是因為編譯器和運行環境做了一些”甜膩的“工作。

2、風格的自由度。這是一個缺點,從任何方面看都是缺點。隨著C的發展,BCPL時代的遺風、K&R1的古老風格都被新標準相容。好的編譯器會警告舊風格,讓追求自由的程式員不時吃癟。

3、高效。這是C最大的優點,但是高效並非程式員的終極目標。C的前身B,是解釋性語言,Dennis M. Ritchie寫道:”使用彙編太讓人鬱悶了,因而即使B有效能問題,B已經有了一個包含有用服務常式的小常式庫,並被越來越多的新程式使用。“,程式員的目標是編寫解決問題的程式。當然,要取代彙編的系統實現語言地位,足夠的高效是一個前提。當有人說:“C比誰誰誰高效,所以xxx” 的時候,我們為什麼不問一問:”那你為什麼不直接使用彙編?“。

4、經久不衰。這是最欺騙人的說法,看見過”C流行了40年,這才是我們需要學習的東西“。這樣半對不對的話,對它的解讀就得看你如何依據這樣半對不對的東西進一步思考。C的經久不衰,我覺得應該給C四個金光大字:積重難返。如果你認為市場總會選擇最佳、最高效率的技術,你錯了。我們為什麼採用QWERTY鍵盤?這是最有效地安排打字機鍵盤的設計嗎?事實上,設計者如此設計的目的是為了放慢打字人的打字速度。當一個設計被成千上萬人使用的時候,它基本上就永久地佔領市場。”C的成功...毫無疑問,Unix本身的成功無疑是最重要的因素;它讓這個語言可以被成千上萬的人使用。"

5、C之所以偉大,是因為它已經佔領了系統實現語言的市場,除非有人使用Go或D實現了一個流行的作業系統;是因為它取代彙編而較其他語言高效;是因為它簡單,它專註自己的領域而非好高騖遠。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.