2016年2月2日 星期二

C++ 簡介:百科全書式的程式語言

 

再寫演算法題的時候嘗試用python、java等語言,雖然大家都讚不絕口,但我還是比較喜歡C++這個「母語」,有種我手寫我口的感覺,雖然他被嫌棄「大而怪」,但我還是不離不棄,想好好了解他呀(淚

p.s. 按下存檔之前blogger把我的文章整個刷掉是哪招,超級不爽... 害我全部重打...



一、 C++ 簡介


1980 年代 Bjarne Stroustrup 於貝爾實驗室發明 C++ ,目的是將將 C 語言實現物件導向的程式語言,早期被稱為 C with Classes 的語言,後來不斷的增加新特性,時至今日, C++ 已經是功能強大而且複雜的程式語言。


看了一下2016最新程式語言排名, C++ 應該可以再戰10年XD





一、 C++ 語言特性



1. 百科全書式的程式語言


在《C++語言的設計和演化》(1994)中,Bjarne Stroustrup描述了他在設計C++時,所使用的一些原則。知道這些原則有助於理解C++為何會是現在這個樣子。以下總結了一些原則,詳盡的內容可參閱《C++語言的設計和演化》:

  1. C++設計成直接的和廣泛的支援多種程式設計風格(程序化程式設計、資料抽象化、物件導向程式設計、泛型程式設計)。
  2. C++設計成給程式設計者更多的選擇,即使可能導致程式設計者選擇錯誤。
  3. C++設計成儘可能與C相容,藉此提供一個從C到C++的平滑過渡。
  4. C++避免平台限定或沒有普遍用途的特性。
  5. C++不使用會帶來額外開銷的特性。
  6. C++設計成無需複雜的程式設計環境。

Bjarne不希望把個人任何的喜惡加在語言上,希望programmer自己去判定;所以C++優點就是其擁有的多種可能性,但是這同樣也是缺點,代表她具有太多誘惑,需要極度的克制力才不會迷失其中。


2. 體現 Programmer 智商的語言


C++特性多,可以逼著你不斷學習;想使用 class,又想用 pointer,偶爾還用Assembly,喜歡一切都掌握在手裡的感覺,優化的時候很痛快,沒有垃圾回收在作怪,那就非C++莫屬了。C++更接近於底層,又具備C沒有的OO,可以追求速度、更小的 memory 消耗,因此最能顯示 Programmer 透徹了解計算機程式設計的睿智。

本質上講,C++是為那種超大型項目而存在的。當某項目處於中小規模的時候,很多語言同樣可以勝任,甚至比C++做得更好。但是當規模到了一定的水平,目前現有的語言裡基本上除了C++,很少有這樣的駕馭能力。




三:結語:C++的吐槽


看到眾網友對 C++ 的評價真的是非常好笑,不過也反映出了 C++ 過度設計而十分龐雜的本質吧。

「抬高門檻,提高程序員收入。」
「優點在於能夠輕易造坑,然後就需要很多人來填坑,如此往復,創造了大量的就業崗位。」
「c++ 就是高考的數學,純粹是為了過濾低智商的。」

最後,不免俗的來一段 Hello World! 作結吧 : )






References


wiki - c++
https://zh.wikipedia.org/wiki/C%2B%2B

C++ 這門語言的優點體現在哪裡?
https://www.zhihu.com/question/22295800






技術提供:Blogger.