一說起機器編程,給人的感覺往往是為了讓計算機自己編程從而取代程式設計師的意思,不過機器編程的誕生初衷,完全不是為了取代程式設計師編程這麼簡單粗暴的緣故,而是為了解決現有的問題:計算機資源愈發異構化,需要更多硬體領域的專家級程式設計師VS軟體開發人員更青睞抽象高效的程式語言,導致硬體性能得不到充分發揮。
機器編程早在2018年就由英特爾研究院和麻省理工學院聯合發布的《機器編程的三大支柱》論文中提出了,而且英特爾也一直在研發這個系統。之後,這個公司已經通過實驗證實了機器編程的可行性,程式設計師的工作效率和軟體質量都有明顯改善的地方。而在最近,英特爾推出了可自主檢測代碼中的錯誤機器編程研究系統 ControlFlag。在初步的測試中,ControlFlag 就利用超過 10 億行未標記的產品級別的代碼進行了訓練並學習了新的缺陷,使這個自我監督系統有望成為一個強大的生產力工具。它,依然是個人工智慧AI工具。
據悉,ControlFlag是通過被稱為異常檢測(anomaly detection)的功能進行運轉的,也就是說,它能通過學習檢測到開發者寫的代碼是否異常。而這個異常的特別則在於,不僅可以發現程式設計師代碼中易見的異常,還能檢測出被開發者審核過並且廣泛使用的產品級別代碼中隱藏的Bug。這就有意思了。
也許隨著科技的發展,人工智慧和大數據逐步推進,傳統的編程和工作都難以面對時代的進步,可能機器自動化的工作會進一步提上日程。機智客覺得,機器自動化不僅包含人工用寫好的代碼去完成機器自動化這種情況,而且還有這種教機器編程,機器自動化編程這種新情況。
那麼一個很自然的問題就會浮現出來,機器編程會取代程式設計師嗎?英特爾首席科學家、英特爾研究院機器編程研究主任及創始人Justin Gottschlich已經多次表示,機器編程如果成功,那未來只會創造數千萬甚至數億個就業機會,而非取代專業程式設計師使其失業。
正如AI技術機器學習需要大量數據來訓練一樣,現在的機器編程系統也需要大量數據。而這裡的數據則是專業程式設計師寫好的程序。這是第一,其二,則是機器編程本身會降低編程門檻,讓更多的人甚至是所有的人參與進來,讓用戶向機器表達自己的想法和創意,就能讓機器自動編程,從而把設想、創意和想像力實現出來。不知道親愛的朋友們你們怎麼想?