如果讓你來考慮一下,這個問題似乎有點諷刺。新的創(chuàng)造者-(人工智能)是否會在將來替換或替代其創(chuàng)作者(程序員)?聽起來像是科幻電影的情節(jié),不是嗎?不過,更重要的問題是:這是真的嗎?
近期的就業(yè)研究報告預測,到2030年,美國將有近50%的工作崗位實現(xiàn)自動化。如果我們將這一發(fā)現(xiàn)作為事實,那么不久的將來的確有些黯淡。但是,在考慮“厄運與失敗”場景之前(機器人負責我們的所有工作),讓我們首先了解一下AI如何使程序員受益。
AI如何幫助程序員?
甚至在傳統(tǒng)的軟件開發(fā)周期開始之前,程序員就已經(jīng)需要確定他們要創(chuàng)建的產(chǎn)品的技術(shù)規(guī)格或功能特性。只有這樣,他們才能開始實際的設(shè)計和開發(fā),然后進行測試,部署和維護。
當然,從一個步驟過渡到另一個步驟,會發(fā)現(xiàn)需要修復的錯誤和需要解決的漏洞。任何軟件在發(fā)布之前都需要經(jīng)過幾輪測試和增強。軟件開發(fā)過程可能很繁瑣,昂貴且耗時。對于人類來說,這可能令人沮喪。程序員需要幫助,請輸入AI。
1.程序編寫協(xié)助
AI技術(shù)允許程序員在編寫代碼時確定其錯誤。法國軟件開發(fā)商Ubisoft是該領(lǐng)域的先驅(qū)。它創(chuàng)建了AI工具Commit Assistant,以使用以前項目中遇到的常見編碼錯誤的軟件庫來檢查錯誤代碼。因此,Commit Assistant可以防止程序員犯下曾經(jīng)犯過的同樣的錯誤,從而節(jié)省了他們在稍后的過程中糾正錯誤所花費的時間和精力。
簡化程序員生活的AI工具的其他示例包括智能編程助手,該助手可在程序員編寫代碼時為他們提供自動完成的建議。程序員為什么不使用它們呢?面對現(xiàn)實吧,閱讀數(shù)百頁的文檔可能很累。
2.錯誤修復
軟件中的許多弱點只有在已經(jīng)被使用時才會出現(xiàn)。這很正常,因為制造商通常需要趕緊進入市場以擊敗競爭對手。因此,幾乎沒有任何程序沒有可利用的漏洞。
AI和機器學習(ML)算法可以解決這個問題。他們可以配置計算機以分析程序中的錯誤,并在上市之前進行相應(yīng)的修復。
3.準確的項目交付估算
軟件開發(fā)項目甚至在開始之前就幾乎沒有達到為其設(shè)置的時間表和預算。
但是,在AI的幫助下,使用以前項目的歷史數(shù)據(jù)可以使程序員(或更準確地說,其項目經(jīng)理)在考慮所有可能的情況和潛在挑戰(zhàn)的同時,為管理人員提供更準確的進度表和資金需求。
AI系統(tǒng)能否取代程序員的位置?
軟件開發(fā)人員現(xiàn)在可以輕松呼吸,因為對更重要問題的答案是(我們最初問的問題):不一定。盡管已經(jīng)存在可以編寫簡單代碼的AI工具,但是它們無法確定要優(yōu)先考慮的功能或開發(fā)中的軟件要解決的問題。
目前只有精明的程序員才能基于對精確規(guī)范和要求的理解來編寫代碼。程序員仍然需要幫助AI系統(tǒng)理解他們需要集成到開發(fā)中的軟件中的復雜應(yīng)用程序編程接口(API)。
實際上,研究人員認為,隨著AI系統(tǒng)的進一步改進,程序員的角色可能只會發(fā)生變化。他們將不負責編寫實際代碼,而是負責分析和整理數(shù)據(jù),以用作AI算法的輸入,然后AI軟件將創(chuàng)建軟件。
程序員應(yīng)該畫出AI提供的好處,而不是描繪出令人沮喪的場景。各個行業(yè)已經(jīng)在采用該技術(shù)來提高生產(chǎn)率和降低成本。這種趨勢是不可避免的,因此與其害怕它,不如更好地增強他們的技能以適應(yīng)不斷變化的形勢。