後程式碼時代:不用寫程式的未來

評論
評論

原文為 Coding Is Over,作者 Lauren Mendoza。 INSIDE 編輯 Mia 獲授權編譯。

當眾多產品本質上都只是換了不同主題色的複製品,我們為什麼還要寫程式?

你電腦裡的檔案能以很多方式呈現,大部分的人會用圖形化介面,比如說 Mac Finder 來找他們的檔案,但你也可以透過像終端機一樣的純文字介面辦到。這些都是和資訊互動的眾多方法之一。

網頁程式也可以用很多種方式呈現;架構圖表、對話、模板,而身為一個軟體工程師,我們通常用程式碼來互動。但這真的是最直覺又有生產力的方法嗎?

靈感來源

Photo Via: “Coding Is Over”
▲Reason 的介面,Photo Via: “Coding Is Over”

我以前會用一套叫做 Reason 的軟體來製作電子音樂,我很喜歡的一點是,它能讓你拖放每台機器之間的線路,讓你看到這些東西到底是怎麼連接的。對我而言,看得見的線要比無止盡的清單和下拉選單更好懂,而 2000 年代最尖端的軟體卻常常都塞滿一堆選單。

我從 Reason 的介面能更清楚知道自己在幹嘛,也因此我製作的音樂比做過的 Flash 影片還要多。

我們需要多點樂趣

不知道從何時開始,「IT 人」變成了「開發者」,接著又成了「軟體工程師」。我很樂意被稱為工程師,特別是只花了三個月補習程式碼的那時候。但事實上我們做的事大多稱不上工程,一位工程師要解決新問題,還要做一些深度思考,是一項耗費腦力的工作。

現在已經有成千上萬的 CRUD 應用程式了,我們已經解決過那些問題了。但不知為何,我們還是重複做著相同的 app,而且常常是從頭開始做。

當一項問題解決了以後,相似的問題應該能直接使用同一組解法。就像工廠裡會有既定的模板,讓工人可以依需求複製之前的設計,我們不會叫汽車廠的工人從頭開始打造一輛新車,而且我們還會做好萬全準備讓這些工作非常不容易搞砸。當指令步驟簡單到每個人都能完成,它就成了低階勞動工作,甚至成了機器人的工作。

工程師應該要解決有趣的新問題,而不是一直重複打造一樣的 app,那是機器人的工作。

好網頁依舊,只是多了更多 CSS

你的使用介面愈「原創」,就愈少人能懂得如何使用,這(應該)是確定的事實。重新打造既有的設計語言會嚴重拖累效率,如果我們協定一套通用元素,然後透過重新組合這些元素來表達意義,網路一定能運作得更好。應該只需要鍵入幾個關鍵字就能自動產生新風格,比如「金屬、黑色、邪氣」或者「商務、體面、藍色」還有「文青、有趣、蘋果風」,「可愛而且媽媽們會喜歡」。我們不該為了移動 5 個像素而打程式。

自尊心過剩

寫程式在軟體工程界是被推崇的聖杯,他們說真正的工程師一定會寫程式,而寫程式能讓你成為偉大的工程師。很多人將自尊和自我認同寄託在程式碼上,這些人大概需要諮商。這不是故意引戰,因為我也正漸漸變成這種人。

但是光懂得很炫的語法和程式技巧並不會讓你成為優秀工程師,也不會讓你變聰明。就算程式寫得好,也有可能是很糟的工程師,真正有價值的是提出更好、更快、可行又創新的方法來解決人們真實的問題,而這在接下來幾年將成為趨勢。

寫程式超級蠢的

寫程式會有錯字,甚至還能讓人自由發揮到了會產生「code smells (程式碼異味)」的程度。大多數的程式碼都一團亂,工程師得花上數小時和語法、錯字、縮排、linting 檢查、錯誤、爭辯要用哪種風格和規範,還有忌戀潔淨讓某些程式碼能自動鍵入。這太荒謬了,根本是浪費時間。

後程式碼的時代已經來了

GraphQL 拿掉了後端 route ,並且在接下來幾年完全用 REST 取代。你有沒有想過為什麼在客戶和資料庫中間需要一台伺服器來當中間人?這早就該被抽掉了。

Algolia 讓一堆數據可以搜尋,我不清楚他們是怎麼辦到的,,不過我知道在最佳化資料結構上,電腦是比人類更好、更便宜的選擇。

我們應該只要把資料丟進資料庫,讓電腦用機器學習之類的熱門技術自動整理和最佳化就好。不該讓人類來寫資料庫綱要,因為一定會寫錯。資料庫設計是一種最佳化的演算法,不是工程的領域。

世界各地的工程師都在重寫驗證、購物車、訊息和各種常見的功能,而且還有不少人覺得這樣很酷。

以上只是一些工程師浪費時間在重製一樣的功能的範例。

解決方案

產品經理應該要能在不懂寫程式的狀況下,讓軟體自己做該做的事。公司的唯一任務就是創造能讓他們的產品更獨特的東西,其他別的 app 已經做過的,久應該重複使用。

儘管大家對開源擁有大量熱情和忠誠,很多專案還是缺乏維護,而且很少在企業應用。大部分的公司還是得自食其力,並且不斷重複現有的工作成果。

我現在想到的解法是打造一個容易使用的拖放式介面,讓任何人都不用寫程式就能做出有完整功能和結構的 app。目前我還沒想好該怎麼做,可能會用之前提到的  Adobe Flash CS3 Professional  技術。開玩笑的啦,我應該會用 React。

利益在哪?

若能降低進入軟體工程的門檻,公司在人員的選擇就更多了,也能減少為了推出新功能和達到成長而雇用的人數。一旦製作網頁程式變得更簡單,符合職位的人就會增加,薪水就能降低。

正面影響工程圈文化

有不少軟體工程師拿到過高的薪水,並且覺得自己就是應該拿這麼多(包括我自己),但事實上,軟體工程師並沒有比其他勞工高尚或聰明。隨著程式編寫消逝,反而會增進多元性,工程也能反映出社會其他領域,而非只限於一小撮社經群體。

魔球

基本上魔球是部好電影,雖然算是部老片,但我昨晚才剛看過。本來想在這篇文章做點和電影相關的連結,最後卻沒有,不過也沒關係啦。

未來還有什麼很酷的東西?

創造 VR 相關的東西,就像我最近剛買了一台 VIVE,它真的是很炫。


精選熱門好工作

外場服務人員

Sugar Pea
臺北市.台灣

獎勵 NT$4,000

產品經理 / Product Manager

奔騰網路科技有限公司
臺北市.台灣

獎勵 NT$20,000

行銷企劃主管

安力國際開發股份有限公司
臺北市.台灣

獎勵 NT$20,000

評論