C++和C++程序員誰先完蛋?
直到昨天,我還以為AI永遠不會取代我成為程序員。
好吧,從一開始,編程作為一種職業就已經陷入了自己的死亡之中。我想,當有人第一次提出匯編程序時,很多人都認為這就是結局。
什么?一個可以將人類可讀的筆跡轉化為真實機器代碼的程序?那么每個經理現在都可以編寫代碼嗎?我們過時了嗎?我們已經自動化了嗎?是時候收拾東西走了嗎?
然后很快就出現了足夠多的高級語言。諸如FORTRAN和COBOL之類的語言。現在,這肯定使真正的程序員變得不必要了,不是嗎?您可以是機械工程師或業務分析師,并且精通計算機。您不再需要程序員為您編寫代碼。
然后歸納編程來了。具有Haskell的功能或Prolog的邏輯。歸納編程的思想是-您無需編寫代碼,只需設置程序應在其中運行的約束條件,并且在可能的情況下,語言將為其編寫代碼。
隨著語言發展到計算機代數系統,它成為不可知的語言。現在,您可以在Python筆記本中編寫一些方程式,并將其解轉換為其他任何語言的代碼。因此,不僅您不需要程序員來編寫代碼,甚至都不需要自己編寫代碼。
盡管所有這些事情都威脅著要終止編程作為一種職業,但是,卻有大量的程序員崛起,崛起并繼續崛起。指數也是如此。每五年,這個數字就會增長兩倍。比人類增長的速度快得多。以這種速度,到2075年,我們所有人(約有100億)將各自擁有三個編程工作。
當然,這種增長必須在某個時候停止。世界上沒有足夠的可卡因來使我們所有人日復一日地不停地進行編程。但這不會因為某些顛覆性技術而停止,只有在其他行業的需求超過程序員的需求時,它才會停止。
諸如匯編,高級語言,歸納編程或AI之類的破壞性技術只能改變我們進行編程的方式,而不能殺死編程作為一種職業。
還是我昨天想過。
您可能會認為,我與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 ++本身的可能性很小。
原文鏈接:https://medium.com/swlh/what-will-die-out-sooner-c-or-c-programmers-f4659dc243c0