當前位置: 華文問答 > 數位

編程那麽難,為什麽不弄一個大眾一學就會的電腦語言呢?

2021-11-20數位

軟體裏沒有模糊的空間。

每一種行為,均需定義;每一種情況,均需處理。沒有大概如此,沒有差不多就行。高屋建瓴式的意見,領導藝術般的發言,皆無效果。每一個指令,都要落在實處,沒有模糊的空間。

一個使用者眼中的軟體,只是他常走的那幾條路,而對於系統構建者,他要寫出整個城市,要造出所有人可能要走的所有的路,且並列不悖,沒有沖突。哪怕只有一個人走這裏,也要寫出所有的可能。這其中的復雜度遠超普通使用者的想象,也常超出專業人士的預期。

此復雜度是系統的固有內容,與語言無關。

做個實驗,不考慮程式語言,就用中文,你能不能說出你想要的軟體?去想每一個頁面,每一個流程,你會發現大量的思維空白。普通人只能說出幾個痛點,說不出整個軟體系統。

這毫不奇怪,寫功能文件對於專業人士來說也是極痛苦的事。即便是個登陸頁,對使用者來說,密碼能填對已是非常給系統面子了;而作為系統的構建者,你要考慮忘密碼,重設,發信件,還要防惡意重設,要有效期,要驗證碼,要發簡訊,還要防惡意發簡訊,要考慮外國手機發簡訊,要新使用者註冊,使用者名稱要唯一,密碼必須包含各種符號,好麻煩!算了,只支持電話號碼註冊,你要處理使用者換號,要處理各種信箱好友驗證...

這些都與技術無關,不論什麽語言,都要說清楚該怎麽處理。以前會有人換個新號碼,開啟微信,發現還附贈了一堆好友,也是這個原因。

這還沒到軟體裏面,單單是註冊登陸,絕大多數的人,包括我,都不能輕易描述出模組的功能,更不必說整個系統,這與語言無關,亦不可透過語言解決。

系統固有的復雜度不可消除,使用者也不知道自己想要什麽,這兩點為軟體系統的構建定下了基調。這麽多年的軟體工程,無非是在隔離復雜性和加快使用者反饋上做文章。

現在卻被濫用在 app 上,各種莫名其妙的功能堆在一起,互不幹擾,也沒有聯系,想想也是讓人啼笑皆非。