為什么35歲的C++依然能主導編程世界

早在1979年,Bjarne Stroustrup設計了C++編程語言,并且C++很快成為了無處不在的通用系統編程語言。現在盡管有Java、Javascript、Python、Go,甚至是蘋果的Swift和它競爭,但C++依然處于主導編程世界的地位。

今天在Morgan Stanley的科技訪談會上,InfoWorld的編輯和Stroustrup暢聊了很多關于C++的問題,還談及了其他的編程語言,包括Google的Go語言和蘋果的Swift語言。以下是我們的訪談記錄。

InfoWorld:

您是怎么看C++的未來的?現在有很多流行的腳本語言,像Python和Javascript,當然還有很受歡迎的Java,甚至是Google的Go語言,C++如何從這么多編程語言中存活下來,并且發展壯大?

Stroustrup:

這是個很棒的問題。在這20年時間里,人們一直在預測C++將會滅亡,但是很高興的是它一直在成長和壯大。如果你進入到嵌入式領域,如果你想做一些復雜的圖像處理,如果你需要實現一些微電子應用,如果你要開發一些金融管理系統,那么C++是你的首選。也許你很少能看到C++的身影,但是在那些應用的底層,C++依然是撐起整個應用的頂梁柱。比如Google、Amazon、搜索引擎等那些需要高性能的地方,C++就成了不可或缺的重要角色了。

InfoWorld:

Google的Go語言越來越被受到關注,您對Go語言的前景怎么看?

Stroustrup:

當然這些編程語言可以非常優雅地實現一些功能,但是這些編程語言關注的是如何讓寫代碼變得便捷和優雅,卻損失不少性能。當然,這些編程語言所做的貢獻我們也是有目共睹的。

InfoWorld:

一些腳本語言的宗旨是解放程序員的雙手,那么C++是否也會逐漸傾向于這個目標?

Stroustrup:

Oh,當然了。C++主要是為一些相當底層核心的應用設計的,它也經常會和其他的腳本語言結合使用。一開始的時候,我是用C++來實現任何的應用,然后我就在Unix上使用shell作為腳本語言設計一些底層應用。C++涵蓋了以下優秀的特性:高性能、易伸縮、占用空間小、占用資源少等等。

InfoWorld:

蘋果在今年6月份發布了Swift語言,您是否認為由于蘋果公司的支持,Swift將越來越受到開發者的關注?

Stroustrup:

我認為是的,之前他們關注Objective-C,這回Swift真正進入了這些開發者的領域了。

InfoWorld:

C++面臨兩大挑戰:一方面要滿足開發者實現高性能、可擴展、搞可靠性的應用程序,另一方面又需要能夠幫助開發者實現可維護的代碼。關于這兩個問題您怎么看?

Stroustrup:

我正要解釋這兩個問題,第一個問題是要盡可能的抽象和更高效地利用硬件資源,而后者則需要能盡可能簡化代碼的編寫過程,從C++ 11到C++ 14,已經具備這樣的兼顧能力了。

今年我們會發布一個新的C++版本,它參考了C++ 14的標準。當你在研發大型的產品時,也許C++ 11在某些方面已經無法滿足你的需求,但當出現C++ 14時,情況就會完全改變了,C++總是在不停地進步著。

InfoWorld:

關于程序的安全性問題,您怎么看?程序員是否需要關注所有的安全問題?C++是否比其他編程語言安全呢?

Stroustrup:

我非常熱衷于解決硬件的安全問題。在編程語言方面,如果你想編寫優秀的程序,那么你的代碼一定要確保類型安全。你可以在C++中實現這一要求。不要總是圍繞著一些低效的功能轉,總的來說,安全問題是系統問題。

InfoWorld:

您是否還要探討關于C++或者軟件開發的其他任何問題?

Stroustrup:

我們的目標是讓軟件開發更加專業化。我們的社會中很多事情都是不能被打破的,其中大部分都需要依賴軟件。作為開發者,我們需要整體考慮到我們的系統,編程語言和開發工具只是其中的一部分,我們需要探究如何培養開發者,以及如何將重點放在程序的可靠性上。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447353.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447353.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447353.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot整合JPA

添加依賴 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId&…

為什么說選擇正確的編程語言很重要,以及如何正確的選擇

幾個月前&#xff0c;一個同事問我&#xff0c;應該如何選擇編程語言&#xff0c;或者有沒有什么固定的選擇模式&#xff0c;當時我便打算寫點什么。上周在硅谷開會&#xff0c;這我是第一次跟“hack3rs”的創業狂以及技術狂們打交道。我學會了很多前所未聞的臟話&#xff0c;也…

細數開源歷史上的十個重大事件

開放源碼&#xff08;開源&#xff09;的精神在于使用者可以使用、復制、散布、研究和改進軟件。這可以追溯到20世紀60年代&#xff0c;至今已有半個世紀了。雖然下面所列舉的不都是專門的開源產品&#xff0c;但還是在開源發展的進程中有著巨大的影響。開放源碼&#xff08;開…

科研必備學士搜索引擎推薦

綜合性學術搜索引擎 中國知網萬方數據百度學術谷歌學術谷歌學術鏡像Web of ScienceEiVillage2EIsevier電子期刊SpringerSemanticScholar 圖片文獻檢索方法 CNKI 期刊查詢 DOAJSocolarOpenDOAROALIB開放存取圖書館 碩博論文搜索下載 上海交大鏡像網站歐洲學位論文庫 國外電子…

如何寫一篇論文

文獻綜述的地位 體現了學術研究的繼承性 文獻綜述的寫作是由學術研究的繼承性決定的&#xff0c;因為繼承是創新的基礎和前提。文獻綜述部分要澄清所研究問題“從哪里來&#xff0c;到哪里去” 。這部分主要是繼承&#xff0c;是梳理前人的成果并找出其內在的邏輯關系和演進的規…

深度卷積神經網絡CNNs的多GPU并行框架及其應用

摘要&#xff1a;本文是騰訊深度學習系列文章之一&#xff0c;主要聚焦于騰訊深度學習平臺&#xff08;Tencent Deep Learning Platform&#xff09;中深度卷積神經網絡Deep CNNs的多GPU模型并行和數據并行框架。 【編者按】深度卷積神經網絡有著廣泛的應用場景&#xff0c;本…

如果誤刪谷歌瀏覽器的書簽,怎么恢復

如果是Mac用戶&#xff0c;command和z一直恢復就可以 同理&#xff0c;windows用戶&#xff0c;也可以使用撤銷鍵&#xff0c;ctrlz即可

55分鐘學會正則表達式

正則表達式是一種查找以及字符串替換操作。正則表達式在文本編輯器中廣泛使用&#xff0c;比如正則表達式被用于&#xff1a; 檢查文本中是否含有指定的特征詞找出文中匹配特征詞的位置從文本中提取信息&#xff0c;比如&#xff1a;字符串的子串修改文本 與文本編輯器相似&a…

線程安全和對應的核心概念

線程安全 線程安全的概念&#xff1a;當多個線程訪問某一個類&#xff08;對象和方法&#xff09;時&#xff0c;這個類始終都能表現出正確的行為&#xff0c;那么這個類&#xff08;對象或者方法&#xff09;就是線程安全的synchronized&#xff1a;可以在任意對象及方法上加…

JDK Unsafe類的使用與CAS原子特性

JDK Unsafe類的使用與CAS原子特性 Java.util.concurrent.atomic包&#xff0c;其中包含了大量使用到Unsafe這個類Java不能直接訪問操作系統的底層&#xff0c;而是通過本地方法來訪問。 Unsafe類提供了硬件級別的原子操作&#xff0c;主要提供了以下功能 內存操作字段的定位和…

寫軟件不是造汽車

寫軟件和做其他事情是不一樣的。當我們制造別的東西的時候——像汽車、玩具、椅子、畫作、甚至包括數字產品如平面圖片和3D模型——我們做出來的成品就是最終的結果。而開發軟件則不是&#xff0c;我們做出來的產品永遠不可能有最終的結果——我們需要向計算機解釋如何根據任意…

線程池核心概述

線程池核心概述 Executors工廠類使用 Executors工廠類底層源碼分析詳解 ThreadPoolExecutor自定義線程池 ThreadPoolExecutor拒絕策略詳解 計算機密集型與IO密集型詳解 如何正確的使用線程池…

網站盈利的10種方式

如果你有自己的網站&#xff0c;而且已經有了不少的流量&#xff0c;你肯定會開始考慮如何通過這個網站來掙一些錢。 在這篇文章中&#xff0c;我會向大家介紹網站最常見的10種盈利方式。 1.按點擊付費廣告 在網站上展示一個按點擊付費的廣告橫幅是最簡單的盈利方式&#xff…

程序員如何創業?

摘要&#xff1a;工作機會減少&#xff0c;讀大學也不是保障。大公司亦不再是構筑職業生涯的安全港灣。透過媒體的鏡頭&#xff0c;創業似乎成了沙漠中唯一的綠洲。然而關于創業&#xff0c;或許少有人給你建議&#xff0c;這里所列出的一些因素都是你可以考慮的。 如果你的年…

Redis數據的類型

Redis一共分為五種基本數據類型&#xff1a;String、Hash、List、Set、Zset. string 內部編碼有三種&#xff0c;raw&#xff0c;embstr&#xff0c;int String 是二進制的。可以存儲序列化對象&#xff0c;圖片&#xff0c;字符串&#xff0c;數值等 set和get方法 &#x…

Redis高級命令與特性以及單點模式的介紹

高級命令 keys * 返回滿足條件的所有key&#xff0c;可以模糊匹配exists 是否存在指定的keypersist 取消過期時間select 選擇數據庫 &#xff08;0-15&#xff0c;總共16個數據庫&#xff09;move key index 將當前數據庫的 key 移動到給定的數據庫 db 當中randomkey 隨機返回…

華為副總裁徐家駿離職:年薪千萬工作感悟十二條

從普通的公司職員&#xff0c;到年薪千萬的華為副總裁&#xff0c;再到離開華為轉戰百度&#xff0c;徐家駿的十年從業經歷和經驗可資借鑒&#xff0c;我們從中也可以一窺華為的運作過程。徐家駿是華為數據中心的頭&#xff0c;技術超級牛人&#xff0c;一級部門總監&#xff0…

Redis持久化之RDB和AOF

Redis持久化之RDB和AOF Redis 有兩種持久化方案&#xff0c;RDB &#xff08;Redis DataBase&#xff09;和 AOF &#xff08;Append Only File&#xff09;&#xff1b; RDB 詳解 RDB 是 Redis 默認的持久化方案。在指定的時間間隔內&#xff0c;執行指定次數的寫操作&#…

同為程序員 為什么我的工資最低

我看著工資單上每一個開發團隊成員的薪水&#xff0c;慢慢地我不能保持淡定了。 而當我看到我的工資排名是倒數的時候——靠近最后一名——我不由得倒抽一口冷氣。就像圣誕故事中的那個可愛的小男孩Ralphie &#xff0c;想買氣槍卻被忽悠會有危險一樣&#xff0c;我也不斷忽悠…

Docker安裝Redis以及配置Redis環境

1&#xff0c;下載Redis鏡像 首先拉取 Redis 鏡像, 這里我選擇的是 redis:alpine 輕量級鏡像版本 docker pull redis:alpine 下載完成后&#xff0c;通過 docker images 查看我們已經下載的鏡像&#xff0c;看看是否已經下載到本地 2&#xff0c;運行 Redis 容器 docker run …