C++和C++程序員誰先完蛋?

做者:聞數起舞來源:今日頭條程序員

 

直到昨天,我還覺得AI永遠不會取代我成爲程序員。編程

好吧,從一開始,編程做爲一種職業就已經陷入了本身的死亡之中。我想,當有人第一次提出彙編程序時,不少人都認爲這就是結局。服務器

什麼?一個能夠將人類可讀的筆跡轉化爲真實機器代碼的程序?那麼每一個經理如今均可以編寫代碼嗎?咱們過期了嗎?咱們已經自動化了嗎?是時候收拾東西走了嗎?網絡

而後很快就出現了足夠多的高級語言,諸如FORTRAN和COBOL之類的語言。如今,這確定使真正的程序員變得沒必要要了,不是嗎?您能夠是機械工程師或業務分析師,而且精通計算機。您再也不須要程序員爲您編寫代碼。併發

而後概括編程來了。具備Haskell的功能或Prolog的邏輯。概括編程的思想是-您無需編寫代碼,只需設置程序應在其中運行的約束條件,而且在可能的狀況下,語言將爲其編寫代碼。函數

隨着語言發展到計算機代數系統,它成爲不可知的語言。如今,您能夠在Python筆記本中編寫一些方程式,並將其解轉換爲其餘任何語言的代碼。所以,不只您不須要程序員來編寫代碼,甚至都不須要本身編寫代碼。性能

儘管全部這些事情都威脅着要終止編程做爲一種職業,可是,卻有大量的程序員崛起,崛起並繼續崛起。指數也是如此。每五年,這個數字就會增加兩倍。比人類增加的速度快得多。以這種速度,到2075年,咱們全部人(約有100億)將各自擁有三個編程工做。優化

固然,這種增加必須在某個時候中止。世界上沒有足夠的可卡因來使咱們全部人日復一日地不停地進行編程。但這不會由於某些顛覆性技術而中止,只有在其餘行業的需求超過程序員的需求時,它纔會中止。人工智能

諸如彙編,高級語言,概括編程或AI之類的破壞性技術只能改變咱們進行編程的方式,而不能殺死編程做爲一種職業。spa

 

仍是我昨天想過。

您可能會認爲,我與GPT-3聊天,它最終說服了我從事男性妓女的光輝事業。但不是。實際上,昨天只是另外一天,我只是在作個人工做。好吧,不是個人工做。我當時正在從事C ++應該爲我完成的工做,但失敗了。我正在將一段高性能代碼從MSVC移植到GCC。

是什麼讓程序在2021年快速運行?內存仍然相對較慢,而且說來話長,所以必須進行顯式內存管理。如今每一個CPU有許多內核,所以咱們須要並行計算。並且,處理器的滴答速度並無比20年前快不少,可是如今它們確實有不少傳送帶,所以,若是咱們要快速編寫代碼,就必須對全部內容進行超標量。

C++糟透了這三個方面。

  • 是的,在C++中有一種分配對齊內存的標準方法,但MSVC不支持。
  • 開箱即用的併發性太糟糕了,您必須依靠第三方庫,例如英特爾的TBB。
  • 編譯器嘗試在可能的狀況下利用SIMD,可是它們沒法有效地利用SIMD,所以您必須使用內部函數編寫代碼才能得到全部好處。

若是您終生堅持使用Microsoft和Intel,那不要緊。可是,當您嘗試將事物從一個平臺移植到另外一個平臺時,您會發現多年來C ++悄然失去了可移植性遊戲。是的,您能夠經過定義來解決對齊不一致的問題。從技術上講,您能夠爲ARM進行TBB克隆,由於英特爾理所固然地不肯意支持他們的競爭對手。可是,有了內在函數,您就有了句號。固有特性是特定於處理器的,所以您的代碼未獲得優化或可導入。

具備諷刺意味的是,因爲C最初是爲了將UNIX從PDP-7移植到PDP-11而發明的。其惟一目的是實現可移植性。50年後的今天,咱們面臨着使人不安的事實。爲了使性能最大化,您必須比編譯器更好地使用處理器指令。所以本質上就像最初的程序員同樣編寫代碼。

> Rainer Gerhards, CC BY-SA 3.0, via Wikimedia Commons

好的,可是它與AI有什麼關係?

很高興你問。我以爲,儘管對程序員的需求仍然追隨全球市場,但對創新的需求卻在70年代急劇上升,並在隨後的幾年中逐漸降低。

概括編程的需求爲零,所以不會有像概括編程甚至高級語言同樣出色的破壞性技術。對於C ++缺少高性能計算方面的開發,我顯然感到不滿意,但您猜怎麼着。我不是不高興去創造另外一個FORTRAN。顯然,沒有人。

C++的做品。這不是理想的,但也沒有那麼糟。這就是爲何它會留下來。

是的,我花了一天的時間將代碼從MSVC C++重寫爲GCC C++,這很無聊,並且我寫了這句話,但這並無改變。一天就是一天。頭就是頭。

如今爲破壞性技術。儘管AI尚沒法知足客戶想要的一切,但它具備完成我無聊的工做的所有能力。它能夠解決交叉編譯器的不一致問題,也能夠在固有級別上優化代碼。甚至用std :: threads從新實現parallel-for看起來也很繁瑣,足以委派給機器。

以後,AI甚至能夠爲我寫書。

對於擁有比我更多的人工智能經驗的人來講,這一切都是可能的,有利可圖的,而且可能頗有趣。咱們已經使用SymPy用C ++編寫代碼,利用AI優化該代碼將只是一步之遙,可是人們很樂意爲此付出代價。它具備啓動潛力,因此我但願它會很快出現

AI頗有可能最終取代我,也許不是以程序員的身份,而是以C ++程序員的身份。可是一些新技術將殺死C ++自己的可能性很小。

 

 

C/C++具備底層操做能力,既適合軟件開發,一樣也適合硬件開發。還可開發Windows操做系統,Linux操做系統,大型遊戲,大型服務器,桌面應用程序等。

 

 

若是你C/C++感興趣,想學編程,小編推薦一個C/C++技術交流羣【點擊進入】!

 

涉及到了:編程入門、遊戲編程、網絡編程、Windows編程、Linux編程、Qt界面開發、黑客等等......

相關文章
相關標籤/搜索