向C語言致敬

來源:互聯網
上載者:User

  在Cloudmetrx 公司,我們大量的使用C語言。鑒於不久前,UNIX傳奇人物、C語言的創始人Dennis Ritchie 的過世,我們向C語言表示致敬是再合適不過的了。

  考慮到我們還使用了其它的語言——Clojure,Node.js和其它很流行的平台,這種大量的依賴C語言的現象更顯得不平常。並不是這種語言更古老,更“受人尊敬”,我們才會傾向於使用這種語言和技術。只是因為當面對高效能的計算時,沒有任何語言能跟C語言相比。有人提出了Java,但這些人錯了。沒有什麼語言能跟C語言相比。

  以我的觀點,C語言這麼多年來依舊保持流行的原因在於它的相對自由的編程範式。大多數的語言,無論是好的還是差的,都生來伴隨著一些鼓勵使用的編程範式——物件導向的,函數式的,等。於是硬體的設計就趨向對這種範式進行最好的支援。

  而C語言,並不去逼迫硬體進行改造。它提供了你對硬體進行粗放型訪問的能力。你可以對硬體做你任何想做的操作。沒有任何什麼編程範式帶來的約束——你也可以強制自己使用任何範式。

  在邱奇-圖靈論題(Church–Turing thesis)中,C語言就是圖靈機(Turing)。C語言基本上就是數學加上你可以在上面書寫的紙帶。所有的演算法都是跟兩種基本操作有關:對紙帶的讀和寫,然後做小型的演算法操作。

  當時,世界上所有參考這個理論生產的計算裝置看起來都類似圖靈機,但卻經常被按照Church形式使用。Church論述中的lambda運算考慮的是將計算行為做有意義的優雅的表現,這是面向人類的;而圖靈機考慮的計算行為是面向基於晶體管和電子管的機器的。這是兩種自然的方向;C語言更傾向於追求駕馭真實硬體的能力,代價是損失可讀性和優雅性。

  從誕生到流行,並持續數十年保持活躍,創造這樣的一種技術是何等的豐功偉績。我不認為C語言的自由範式是成功的唯一理由。它的文法也是同樣的精彩 ——儘管這種語言是複雜的,儘管記憶體管理是複雜的,C語言使這些變得極其的清晰,讓你知道事情是如何的進行的。C語言的文法還影響了其它很多種語言——從 Perl到Java到Javascript——這都是它的文法的清晰和實用的證明。

  雖然C語言很強大,但不失編寫的樂趣。坐下來花5個小時用vim編寫C程式對我來說是一件很享受的事。就像是你在駕駛一輛手動檔的汽車,你感覺它跑的越來越快。經過一個月的使用Python比較,C語言駕駛起來就像帶有噴氣機引擎的寶馬。它的速度是風馳電掣的;你可以運行time計算,結果會讓你張大嘴巴——百萬分之一秒!驚奇。

  但C語言並不是一直這樣可贊。C語言有時會變成淘氣使壞的女孩,讓你絕望,困惑,不得不使用gdb。但是在一天的最後,你還是會回來擁抱C——它的速度太誘人了。

  在Cloudmetrx公司,我們所有的金融相關的邏輯處理都是使用的C語言,除bootstrapping。沒有C語言這樣驚人的處理速度,我們即時運算的產品是不可能實現的,我們不可能去處理這樣大規模的負載。事實上,我們的一個用C寫的標價的模組和一個用Java寫的模組的速度差別是明顯的。雖然不是很大,但足夠明顯;明顯得對於即時金融分析來說顯得太明顯。

  這就是C語言,一個淘氣的女孩,一個速度妖姬。向你致敬!

  文章來源:外刊IT評論 轉載請註明出處連結。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.