<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 業(yè)界動(dòng)態(tài) > 泛C家族程序語(yǔ)言二十年獨領(lǐng)風(fēng)騷

泛C家族程序語(yǔ)言二十年獨領(lǐng)風(fēng)騷

作者: 時(shí)間:2016-11-14 來(lái)源:ithome 收藏
編者按:程式語(yǔ)言生態(tài)隨時(shí)間而有所變化,以現在來(lái)看,Java、C、C++、C#是最熱門(mén)的語(yǔ)言

  最近應 Jonf Taiwan 2016 技術(shù)研討會(huì )的邀請,做了一場(chǎng)講題訂為“Java 在現今軟體開(kāi)發(fā)的角色及競爭力”的分享。Java 約莫是在 90 年末期開(kāi)始成為主流的程式語(yǔ)言,至今也將近二十年,在這過(guò)程中,整個(gè)程式語(yǔ)言生態(tài)圈隨著(zhù)基礎環(huán)境的變化,也有了不少更迭。

本文引用地址:http://dyxdggzs.com/article/201611/340125.htm

  原先的主流程式語(yǔ)言影響力有所變化、也有不少語(yǔ)言加入,各據山頭、各擁支持者?;仡欉@二十年來(lái)的變化,不難有些觀(guān)察。

  當前4大熱門(mén)的程式語(yǔ)言都有密切關(guān)系

  讓我們先來(lái)看看 TIOBE 在 2016 年十月所做的熱門(mén)語(yǔ)言排行。

  基本上,前五名和去年同期相比,都是相同的。除了遇到了很大的基礎條件變化,否則,程式語(yǔ)言的熱門(mén)程度也不致于突然有很大的變動(dòng)。

  TIOBE 的排名時(shí)常在網(wǎng)路上被引用,常是特定語(yǔ)言的支持者為了引證自己支持的程式語(yǔ)言所用,而 TIOBE 的排名,主要是根據主流搜尋引擎、部落格、維基百科、YouTube 等網(wǎng)路服務(wù)上的搜尋次數綜合起來(lái)的指標計算而成的,所以它反映出來(lái)的是一種熱門(mén)程度。當然,必須要留意的是,熱門(mén)不等同于好,熱門(mén)也不等同于重要,程式語(yǔ)言的好壞、重要與否,或許跟熱門(mén)程度有點(diǎn)相關(guān),但卻無(wú)法直接畫(huà)上等號。

  可以發(fā)現前四名都是血統相近、同一家族的,即:Java、、,以及 C#。

  TIOBE 在 2016 年十月所做的熱門(mén)語(yǔ)言排行,Java、C、、C#名列前4大。

  C、、Java之間的淵源

  C++ 從 C 衍生而來(lái)。歷史上,C++ 以 C 的語(yǔ)法為基礎,發(fā)展出可支援物件導向程式設計的程式語(yǔ)言。一度挾著(zhù)物件導向設計方式所帶來(lái)的生產(chǎn)力,而大大的流行起來(lái),但 C++ 落實(shí)在實(shí)際開(kāi)發(fā)中也被觀(guān)察到一些問(wèn)題,因此有了 Java 的問(wèn)世。

  Java 最早是為了嵌入式系統的需求而設計,真正開(kāi)始大放異彩,卻是從 WWW 的風(fēng)行開(kāi)始。在那個(gè) WWW 只有靜態(tài)網(wǎng)頁(yè)效果的年代,Java Applet 提供了更多動(dòng)態(tài)的可能性,它讓網(wǎng)頁(yè)足以執行程式,不論是計算或是呈現動(dòng)態(tài)視覺(jué)效果,甚至是提供更豐富的使用者操作介面,Applet 都能辦到。這讓 Java 真正的讓更多程式設計者重視,也讓 Java 真正的進(jìn)到了尋常百姓家。一時(shí)之間,想在網(wǎng)頁(yè)上提供更豐富互動(dòng)效果的程式設計者,都紛紛開(kāi)始用起了Java。

  基于種種原因,Java Applet 流行的時(shí)間并不長(cháng)久,但 Java 程式語(yǔ)言并未因此而衰弱,反而在伺服器端找到了更合適的戰場(chǎng),也奠定了接下來(lái)雄霸市場(chǎng)的基礎。當 Sun 推出了以所謂 “Servlet” 為基礎的 Web 伺服器端的架構時(shí),相較于當時(shí)流行的、以 C/C++ 或 Perl 為主要語(yǔ)言寫(xiě)成的 CGI 程式來(lái)說(shuō),在效能及生產(chǎn)力上,都有很好的表現。從此以后,成為一大主流。再加上諸多搭配的因素,使得 Java 不斷的擴增版圖,最后取得了主宰的地位。

 Java與C++的瑜亮情結

  C++ 在很多面向上,和 Java 接近,我常說(shuō),Java 是 C++--,也就是 Java 的設計者試著(zhù)去除他認為 C++ 中需要被簡(jiǎn)化的部份,因為 C++ 相較于 Java 其實(shí)復雜許多。

  但為什么 Java 的出現對 C++ 造成的沖擊,大過(guò)于 C 呢?我認為,就跟現代智人與尼安塔人間的競爭一樣,一個(gè)生物物種最大的威脅,往往就是它在演化上的近親。因為尼安塔人和現代智人在演化上很接近,也因此它們所需的資源及環(huán)境也大幅重疊,當其中之一開(kāi)始壯大時(shí),另一勢必遭殃。因此,尼安塔人滅絕了。而 C++ 就很像尼安塔人,被自己在演化上的近親 Java 掠奪走了許多的資源及根據地,所以受創(chuàng )慘重。

  和 Java 相比,C++ 可以歸類(lèi)在“魔幻語(yǔ)言”,而 Java 卻是典型的“簡(jiǎn)約語(yǔ)言”。我相信 C++ 及 Java 在語(yǔ)言設計上,都是以著(zhù)眼生產(chǎn)力而出發(fā),但 Java 語(yǔ)言舍棄了華麗的表現方式,選擇了“大巧不工”的路線(xiàn)。不留太多取巧的空間、看似笨拙卻避免犯錯。事實(shí)上,避免犯錯也正是提高生產(chǎn)力的重要原因,一個(gè)程式臭蟲(chóng)要花費數倍于撰寫(xiě)程式的時(shí)間,才能予以發(fā)掘、修正。

  除了語(yǔ)言本身以簡(jiǎn)樸為要實(shí)證獲得生產(chǎn)力之外,Java 以一個(gè)設計良好的核心程式庫為基礎,搭配強大活躍的開(kāi)放原始碼社群的貢獻,有著(zhù)充沛的非官方程式庫支援,更使得開(kāi)發(fā)的生產(chǎn)力大為提升,各種工具一應俱全。

  就像著(zhù)名的 Jakarta Apache Project 中的專(zhuān)案一樣,自成一個(gè)生態(tài)圈,而且構成正向的循環(huán)。各專(zhuān)案間彼此相互沿用、沒(méi)有文人相輕的問(wèn)題,你做車(chē)體、我做輪子,彼此可以相互整合,這使得生態(tài)圈中的專(zhuān)案愈來(lái)愈豐富,品質(zhì)也夠好。

  Java 做為 C++ 演化上的近親,即使十分相像,但因為在幾個(gè)關(guān)鍵因素上的不同,就決定了究竟誰(shuí)得遭受到掠奪的命運。

  上圖是 TIOBE 統計十幾年來(lái)的程式語(yǔ)言熱門(mén)程度的消長(cháng),大致可以看出 Java 的熱門(mén)程度,幾乎不衰。而 Java 的祖先 C 語(yǔ)言,也大致維持第二、甚至有時(shí)竄升到第一。而從這張圖上也可以清楚看出來(lái),C++ 整體呈下降的趨勢。

  C#受限于微軟早年固守平臺策略而失去先機

  那么 Java 有沒(méi)有具威脅力的演化近親?有的,正好是 TIOBE 排行里第四名的 C#。

  C# 仿效 Java 再改良是毫無(wú)疑問(wèn)的,部份 C# 先進(jìn)的語(yǔ)法,Java 甚至到了近期才加入。

  和 Java 一樣,C#是采取可跨平臺的虛擬機器架構(雖然 C# 初期只能運行在 Windows 平臺),一樣有著(zhù)記憶體回收機制、單一繼承體系的核心程式庫架構,再怎么看,C# 都是 Java 極具威脅性的演化近親,可惜,微軟自己自廢武功,把 C# 這頭猛獸囚禁在 Windows 的平臺之上。

  微軟大概是想重施舊計,把昔日利用 Windows 作業(yè)系統優(yōu)勢,使得 IE 干掉 Netscape 的劇情,重新在 C# vs. Java 的故事中重新上演,可惜,作業(yè)系統平臺的優(yōu)勢到了 Web 時(shí)代,早就不復存在。即使之后微軟將 .NET 核心開(kāi)放原始碼,也已經(jīng)時(shí)不我予了。因此,C# 和 Java 之間的距離還是夠懸殊。

  Java、C、C++、C# 系出同源,占據了這份排行榜的前四名,它們都是屬于靜態(tài)型別的程式語(yǔ)言,這是個(gè)很有趣的現象,因為前十名中的其余六種程式語(yǔ)言,都是屬于動(dòng)態(tài)型別的程式語(yǔ)言。在下一回中,我會(huì )繼續說(shuō)明之所以會(huì )有這兩大集團,以及靜態(tài)型別程式語(yǔ)言為何領(lǐng)先在前的看法。



關(guān)鍵詞: C C++

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>