如果用編程語(yǔ)言參加戰(zhàn)爭(zhēng),哪門語(yǔ)言才是程序員的最強(qiáng)武器?

自從計(jì)算機(jī)問(wèn)世,各種編程言語(yǔ)也隨之降生,作爲(wèi)程序猿,Java、Python和C++是必學(xué)的三種編程言語(yǔ),但有時(shí)難免疑惑:這三種言語(yǔ)終究孰優(yōu)孰劣?

那麼無(wú)妨讀一讀這篇文章,用一種別開(kāi)生面的方式爲(wèi)你解答

Java:輕巧靈便的多面手

戰(zhàn)場(chǎng)上的Java語(yǔ)言就像美國(guó)陸戰(zhàn)隊(duì)標(biāo)配M4A1步槍

這種輕巧靈便的武器十分貼合Java容易上手的特性,而且威力強(qiáng)勁,在各種戰(zhàn)場(chǎng)上都能發(fā)揮效用(平臺(tái)獨(dú)立和可跨平臺(tái)賦予Java一次編譯、到處執(zhí)行的特性)各大軍隊(duì)都有配備(是當(dāng)今應(yīng)用最廣泛的語(yǔ)言之一)還有一個(gè)誰(shuí)也不能比擬的優(yōu)勢(shì)(庫(kù)多!庫(kù)多!就是庫(kù)多?。?/p>

不過(guò)射程和殺傷力偏弱,雖然靈活,但是論攻城掠地還是飛機(jī)大炮來(lái)的省事兒。

Python:高性能的重武器

Python被昵稱為膠水語(yǔ)言,能夠把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起,是一種高性能的重武器。

Python具有豐富和強(qiáng)大的庫(kù)。應(yīng)用領(lǐng)域也是非常廣泛。而且語(yǔ)言簡(jiǎn)潔,便于讀懂,開(kāi)發(fā)速度快,但因?yàn)閜ython屬于解釋性語(yǔ)言,使用時(shí)由解釋器解釋執(zhí)行,效率會(huì)相對(duì)低。

這玩意兒威力強(qiáng)勁,面對(duì)大型的物體的修整也是游刃有余,不過(guò)對(duì)于一些精細(xì)的調(diào)優(yōu)工作,反倒是力有余而心不足。

所以常見(jiàn)的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫。

比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫(kù)

C++:功能齊全的大殺器

其實(shí)C++很像瑞士軍刀,而且是其中的巨人軍刀。

這把刀什么都有,說(shuō)明C++是一種功能繁多的語(yǔ)言,能應(yīng)付各種情況;細(xì)致齊全,說(shuō)明C++是能做細(xì)活的語(yǔ)言,但相應(yīng)過(guò)多的工具,也意味著操作更為復(fù)雜。

要是換成戰(zhàn)場(chǎng)上的武器,C++估計(jì)長(zhǎng)這樣——

一看這只在科幻電影里面出現(xiàn)過(guò)的造型就知道威力不一般了。C++真的是一種很強(qiáng)大的語(yǔ)言,高性能且靈活(指針,地址,二維指針,指針數(shù)組),而C++繼承C的簡(jiǎn)潔、高效的特點(diǎn)。

提到C++就不能不提到C,C是C++的基礎(chǔ),C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。

C語(yǔ)言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問(wèn)內(nèi)存的物理地址,進(jìn)行位(bit)一級(jí)的操作,當(dāng)然編譯效率高也是它的一大優(yōu)點(diǎn)。

C++對(duì)C的類型系統(tǒng)進(jìn)改革擴(kuò)充,更加安全也能檢查出更多類型錯(cuò)誤。更重要的是C++支持面向?qū)ο蟮姆椒?,它所支持的這些面向?qū)ο蟮母拍钊菀讓?wèn)題空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方式和編程方法。因而也增加了整個(gè)語(yǔ)言的復(fù)雜性,掌握起來(lái)有一定難度。

而這種強(qiáng)大的語(yǔ)言,確實(shí)已經(jīng)在軍用領(lǐng)域運(yùn)用——譬如美國(guó)F-35戰(zhàn)機(jī)的戰(zhàn)斗系統(tǒng)

我們可以看一組數(shù)據(jù):

△ 7% 匯編、5% Ada83、35% C++、53% C

wikipedia 詞條中也有關(guān)于 F-35 軟件所用編程語(yǔ)言的介紹:

可以看到,F(xiàn)-35 用到的編程語(yǔ)言,C/C++占了相當(dāng)大的比重。


其實(shí)無(wú)論武器有多么強(qiáng)大,決定戰(zhàn)爭(zhēng)勝敗的還是使用武器的人;無(wú)論編程語(yǔ)言多么的強(qiáng)大,決定程序好壞的也是編程的人。也只有不斷強(qiáng)化自身水平,才能更好的駕馭這些的編程武器。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容