摘要:Big Data , A.I., Machine Learning……新概念正在出現(xiàn),Bjarne希望C++可以促進(jìn)這種變革。這些年他頻繁接觸A.I.,希望用C++幫助A.I.系統(tǒng)的使用者們更好地運(yùn)作。
C++之父Bjarne Stroustrup
C++語(yǔ)言,已經(jīng)深深改變我們的世界。
作為一門(mén)系統(tǒng)級(jí)編程語(yǔ)言,C++語(yǔ)言就像是C語(yǔ)言的超集,支持面向?qū)ο蟪绦蛟O(shè)計(jì)方法的所有概念,擅長(zhǎng)面向?qū)ο蟪绦蛟O(shè)計(jì),還可以進(jìn)行基于過(guò)程的程序設(shè)計(jì),具有很強(qiáng)的普適性、移植性和穩(wěn)定性,對(duì)硬件可以直接操控。
包括火星探測(cè)器,人類(lèi)基因組計(jì)劃、Google、亞馬遜、Amadeus機(jī)票預(yù)訂系統(tǒng)、OpenOffice、華爾街投行、交易所大部分交易引擎,背后都是C++語(yǔ)言。巔峰時(shí)期,C++語(yǔ)言的使用者以每7.5個(gè)月翻一倍的速度增長(zhǎng),程序員隊(duì)伍迅速壯大,眾多新興科技公司因此崛起。
它的發(fā)明者Bjarne Stroustrup,現(xiàn)任摩根士丹利信息技術(shù)部門(mén)董事總經(jīng)理,哥倫比亞大學(xué)計(jì)算機(jī)科學(xué)系客座教授。他出生于丹麥,在劍橋讀完博士,1979年,他開(kāi)始開(kāi)發(fā)一種稱(chēng)為“C with Classes”的語(yǔ)言,后來(lái)演化為C++。
1998年,ANSI/ISO C++標(biāo)準(zhǔn)建立,Bjarne推出了經(jīng)典著作The C++ Programming Language第三版,C++完成了標(biāo)準(zhǔn)化歷程。
鈦媒體記者在上海見(jiàn)到了C++之父,他66歲依然經(jīng)常寫(xiě)代碼,致力于更新C++的標(biāo)準(zhǔn)和體系。
Bjarne在高校從事科研工作多年,為了了解一線程序員的需求,他加入摩根士丹利:“我想看人們?cè)趺撮_(kāi)發(fā)軟件,遇到什么問(wèn)題,找到改善C++的方向,我想創(chuàng)造一種更有用的語(yǔ)言。”
C++的崛起史
世界上第一種計(jì)算機(jī)高級(jí)語(yǔ)言是FORTRAN,誕生于1954年,隨后多種計(jì)算機(jī)高級(jí)語(yǔ)言出現(xiàn),比如BASIC,這是為初學(xué)者設(shè)計(jì)的小型高級(jí)語(yǔ)言,以及美國(guó)貝爾實(shí)驗(yàn)室在1972年開(kāi)發(fā)出的C語(yǔ)言,應(yīng)用于大多數(shù)系統(tǒng)軟件和應(yīng)用軟件的程序編寫(xiě)。
20世紀(jì)70年代中期,Bjarne在劍橋大學(xué)計(jì)算機(jī)中心工作,使用過(guò)Simula和ALGOL,接觸過(guò)C語(yǔ)言。1979年,Bjame進(jìn)入貝爾實(shí)驗(yàn)室,開(kāi)始從事將C改良為C with classes的工作,他一心想提高項(xiàng)目的工作效率,希望設(shè)計(jì)一種能直接操控硬件的更好的計(jì)算機(jī)語(yǔ)言。他說(shuō):
“一個(gè)編程語(yǔ)言最大的價(jià)值在于應(yīng)用,IT技術(shù)可以被應(yīng)用到很多行業(yè),從電話到火箭,從小到大的領(lǐng)域,地球上永遠(yuǎn)有人對(duì)新應(yīng)用感興趣。”
1983年,改良后的C with classes,被正式命名為C++。作為一個(gè)實(shí)用主義者,Bjarne認(rèn)為任何語(yǔ)言的編程,首先需要非常直白,不斷做重復(fù)的實(shí)驗(yàn)測(cè)試,以及程序員之間的及時(shí)溝通、頻繁交流,寫(xiě)代碼并不是一個(gè)單打獨(dú)斗的事情。
C++先后經(jīng)歷了3次修訂,Bjame不斷修改,為其加入新特征。到了20世紀(jì)90年代初,人們開(kāi)始為C++建立一個(gè)標(biāo)準(zhǔn),成立了ANSI和ISO,這是一個(gè)聯(lián)合標(biāo)準(zhǔn)化委員會(huì)。
科學(xué)家Alexander stepanov創(chuàng)建了標(biāo)準(zhǔn)模板庫(kù),即STL,它功能強(qiáng)大、設(shè)計(jì)優(yōu)雅,委員會(huì)將STL包含到C++標(biāo)準(zhǔn)中,擴(kuò)展了C++的范圍。1997年委員會(huì)通過(guò)了標(biāo)準(zhǔn)的最終草案,1998年,C++的ANSI/IS0標(biāo)準(zhǔn)被投入使用。
標(biāo)準(zhǔn)C++被確認(rèn)了,所有主流編譯器,包括微軟的Visual C++和Borland公司的C++Builder,都支持這個(gè)版本。之后它不斷迭代完善:
1990年,引入模板和異常處理的概念;
1993年,引入運(yùn)行時(shí)類(lèi)型識(shí)別(RTTI)和命名空間(Name Space)的概念;
1997年,C++語(yǔ)言成為美國(guó)國(guó)家標(biāo)準(zhǔn)(ANSI);
1998年,C++語(yǔ)言又成為了國(guó)際標(biāo)準(zhǔn)(ISO)。
現(xiàn)在它已成為使用最廣泛、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言之一,微軟、Apple的大部分軟件、 騰訊的QQ和微信、Android底層架構(gòu)、 大部分?jǐn)?shù)據(jù)庫(kù)的核心代碼……它無(wú)處不在。
創(chuàng)新是不斷突破自己
每種成功的編程語(yǔ)言,都有其核心競(jìng)爭(zhēng)力,有些適合瀏覽器,有些適合專(zhuān)業(yè)的應(yīng)用軟件。在Bjarne看來(lái),編出一種成功的語(yǔ)言,最重要的是保持其核心競(jìng)爭(zhēng)力。
他經(jīng)常和一線開(kāi)發(fā)應(yīng)用的編程人員、系統(tǒng)開(kāi)發(fā)工程師聊天,發(fā)現(xiàn)問(wèn)題,再優(yōu)化功能。很多人問(wèn)他:為什么C++不可以將Java Script的優(yōu)點(diǎn)納入旗下,提高寫(xiě)入程式時(shí)的效率,增強(qiáng)反饋能力?
Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,它可以編寫(xiě)桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。Bjame的一個(gè)學(xué)生參考了C++的寫(xiě)法,創(chuàng)造了Java。
Bjarne說(shuō):“我認(rèn)為Java是自成一體的,只有你想出一種辦法把C++的核心特點(diǎn)和Java的核心特點(diǎn)結(jié)合在一起,這兩種語(yǔ)言才能被整合。但事實(shí)是,這是不可能的。”
也有人向他反饋:希望C++操作更簡(jiǎn)單,再增加幾個(gè)新功能。Bjarne嘗試過(guò)丟掉一些老舊的功能,為C++瘦身,讓它變得簡(jiǎn)單,但是幾乎每次都失敗。
因?yàn)镃++幾乎每個(gè)功能都被使用過(guò),那些用過(guò)或開(kāi)發(fā)過(guò)這個(gè)功能的人,不想舍棄這些代碼,Bjarne希望未來(lái)設(shè)計(jì)一些功能,建構(gòu)新的分析系統(tǒng),讓電腦自動(dòng)篩選出老舊過(guò)時(shí)的代碼,用戶(hù)可以一鍵更新。
Bjarne還在不斷突破:“我一直想打造一個(gè)完美的系統(tǒng),我希望C++更可靠、快捷、簡(jiǎn)便,但是我還沒(méi)成功,C++是非常大的分布性的系統(tǒng),未來(lái)還會(huì)更多版本。”
推動(dòng)C++不斷發(fā)展的動(dòng)力,來(lái)自其背后龐大的應(yīng)用,硬件正在變得越來(lái)越現(xiàn)代化,C++語(yǔ)言的挑戰(zhàn)之一是:如何跟上硬件發(fā)展,與時(shí)俱進(jìn)。
-
編譯器
+關(guān)注
關(guān)注
1文章
1654瀏覽量
49885 -
C++語(yǔ)言
+關(guān)注
關(guān)注
0文章
147瀏覽量
7222
原文標(biāo)題:C++改變了世界,未來(lái)還要助力人工智能、大數(shù)據(jù)、機(jī)器學(xué)習(xí)的研發(fā)
文章出處:【微信號(hào):C_Expert,微信公眾號(hào):C語(yǔ)言專(zhuān)家集中營(yíng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言和C++中那些不同的地方

C語(yǔ)言C++運(yùn)用
C++編程語(yǔ)言的應(yīng)用領(lǐng)域有哪些
c++程序設(shè)計(jì)語(yǔ)言題解

嵌入式C/C++語(yǔ)言精華文章集錦
CodeWarrior C and C++ and Assembly 語(yǔ)言參考設(shè)計(jì)
從C++的“深度”與“廣度”來(lái)探究其復(fù)雜程度
C語(yǔ)言與C++相互調(diào)用

C語(yǔ)言和C++到底是什么關(guān)系
C++語(yǔ)言的發(fā)展
C語(yǔ)言 / C++基礎(chǔ)面試知識(shí)大集合

評(píng)論