轉帖|行業資訊|編輯:陳俊吉|2016-11-25 10:45:43.000|閱讀 1514 次
概述:盡管C++在大數據時代顯得不溫不火,既不像他的小師弟Java那么應用廣泛,又不如后起之秀Python便捷,但在性能和效率方面仍然保持優勢,不少桌面級應用仍然大量采用C++。包括騰訊在內的互聯網企業在招聘大數據工程師時,仍然把C++、java和python作為可選的編程工具之一,可見它在大數據時代仍然有生命力。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
C++語言,已經深深改變我們的世界。
作為一門系統級編程語言,C++語言就像是C語言的超集,支持面向對象程序設計方法的所有概念,擅長面向對象程序設計,還可以進行基于過程的程序設計,具有很強的普適性、移植性和穩定性,對硬件可以直接操控。
包括火星探測器,人類基因組計劃、Google、亞馬遜、Amadeus機票預訂系統、OpenOffice、華爾街投行、交易所大部分交易引擎,背后都是C++語言。巔峰時期,C++語言的使用者以每7.5個月翻一倍的速度增長,程序員隊伍迅速壯大,眾多新興科技公司因此崛起。
它的發明者Bjarne Stroustrup,現任摩根士丹利信息技術部門董事總經理,哥倫比亞大學計算機科學系客座教授。他出生于丹麥,在劍橋讀完博士,1979年,他開始開發一種稱為“C with Classes”的語言,后來演化為C++。
1998年,ANSI/ISO C++標準建立,Bjarne推出了經典著作The C++ Programming Language第三版,C++完成了標準化歷程。
鈦媒體記者在上海見到了C++之父,他66歲依然經常寫代碼,致力于更新C++的標準和體系。
Bjarne在高校從事科研工作多年,為了了解一線程序員的需求,他加入摩根士丹利:“我想看人們怎么開發軟件,遇到什么問題,找到改善C++的方向,我想創造一種更有用的語言。”
C++的崛起史
世界上第一種計算機高級語言是FORTRAN,誕生于1954年,隨后多種計算機高級語言出現,比如BASIC,這是為初學者設計的小型高級語言,以及美國貝爾實驗室在1972年開發出的C語言,應用于大多數系統軟件和應用軟件的程序編寫。
20世紀70年代中期,Bjarne在劍橋大學計算機中心工作,使用過Simula和ALGOL,接觸過C語言。1979年,Bjame進入貝爾實驗室,開始從事將C改良為C with classes的工作,他一心想提高項目的工作效率,希望設計一種能直接操控硬件的更好的計算機語言。他說:
“一個編程語言最大的價值在于應用,IT技術可以被應用到很多行業,從電話到火箭,從小到大的領域,地球上永遠有人對新應用感興趣。”
1983年,改良后的C with classes,被正式命名為C++。作為一個實用主義者,Bjarne認為任何語言的編程,首先需要非常直白,不斷做重復的實驗測試,以及程序員之間的及時溝通、頻繁交流,寫代碼并不是一個單打獨斗的事情。
C++先后經歷了3次修訂,Bjame不斷修改,為其加入新特征。到了20世紀90年代初,人們開始為C++建立一個標準,成立了ANSI和ISO,這是一個聯合標準化委員會。
科學家Alexander stepanov創建了標準模板庫,即STL,它功能強大、設計優雅,委員會將STL包含到C++標準中,擴展了C++的范圍。1997年委員會通過了標準的最終草案,1998年,C++的ANSI/IS0標準被投入使用。
標準C++被確認了,所有主流編譯器,包括微軟的Visual C++和Borland公司的C++Builder,都支持這個版本。之后它不斷迭代完善:
1990年,引入模板和異常處理的概念;
1993年,引入運行時類型識別(RTTI)和命名空間(Name Space)的概念;
1997年,C++語言成為美國國家標準(ANSI);
1998年,C++語言又成為了國際標準(ISO)。
現在它已成為使用最廣泛、面向對象的程序設計語言之一,微軟、Apple的大部分軟件、 騰訊的QQ和微信、Android底層架構、 大部分數據庫的核心代碼……它無處不在。
創新是不斷突破自己
每種成功的編程語言,都有其核心競爭力,有些適合瀏覽器,有些適合專業的應用軟件。在Bjarne看來,編出一種成功的語言,最重要的是保持其核心競爭力。
他經常和一線開發應用的編程人員、系統開發工程師聊天,發現問題,再優化功能。很多人問他:為什么C++不可以將Java Script的優點納入旗下,提高寫入程式時的效率,增強反饋能力?
Java是一門面向對象編程語言,不僅吸收了C++語言的優點,還摒棄了C++里難以理解的多繼承、指針等概念,它可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Bjame的一個學生參考了C++的寫法,創造了Java。 Bjarne說:“我認為Java是自成一體的,只有你想出一種辦法把C++的核心特點和Java的核心特點結合在一起,這兩種語言才能被整合。但事實是,這是不可能的。”
也有人向他反饋:希望C++操作更簡單,再增加幾個新功能。Bjarne嘗試過丟掉一些老舊的功能,為C++瘦身,讓它變得簡單,但是幾乎每次都失敗。
因為C++幾乎每個功能都被使用過,那些用過或開發過這個功能的人,不想舍棄這些代碼,Bjarne希望未來設計一些功能,建構新的分析系統,讓電腦自動篩選出老舊過時的代碼,用戶可以一鍵更新。
Bjarne還在不斷突破:“我一直想打造一個完美的系統,我希望C++更可靠、快捷、簡便,但是我還沒成功,C++是非常大的分布性的系統,未來還會更多版本。”
推動C++不斷發展的動力,來自其背后龐大的應用,硬件正在變得越來越現代化,C++語言的挑戰之一是:如何跟上硬件發展,與時俱進。
他也常常思考:未來5年我能做什么?現在科學家們擁有更多數據,也出現了很多概念,像、人工智能、機器學習……以后概念會更多,Bjarne希望C++可以促進這種變革。這些年他頻繁接觸這些新技術,希望用C++幫助使用者們更好地操作。
他從1965、 1975年就開始聽說“A.I.將要改變世界”的說法,而AlphaGo是第一個真正實現機器自我學習的模型,今年以來,Bjarne看到越來越多自主學習的能模型,他很樂觀,現在的人工智能可能需要1萬臺機器來運算,未來過程會被簡化,新的突破很快就會出現。
詳情請咨詢!
客服熱線:023-66090381
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn