編程從來都不是個容易的事兒
操作系統開發工程師mdmstudios曾發表過一篇博文《Programming will never be “easy”》,文中他表示,有些人做不了編程的工作,就抱怨編程語言不夠好,更有甚者說是因為開發人員把編程語言設計的太難,以便使開發人員的飯碗更安全。而mdmstudios表示真正的原因是:編程本來就是很難。外刊IT評論對本文進行了翻譯,現轉載于此。全文如下:
網上似乎流行著這樣一種說法,認為有些人之所以做不了編程,是因為編程語言不夠好。我還看到有一部分人更甚,拐彎抹角的暗示說,編程之所以對大多數人而言很困難,是因為我們把編程語言設計的太難,讓人們敬而遠之,讓我們這部分的人的飯碗更安全。事實上,程序員可并不想讓自己的工作變的更困難,他們一直在想辦法讓工作更簡單。事情的真正原因是,編程本來就是很難。
有些人議論說現在的編程語言太晦澀難懂,另外一些人說我們應該完全拋棄文本形式的語言,而采用GUI語言(可視化編程語言)。可是人們需要明白,如果GUI語言真的這么簡單易懂,那是否人們都懂得GUI的電子工程技術呢?大多數人都不懂電子工程技術,這并不是因為他們不懂得如何去接線,而是因為他們不懂得邏輯,數學,和其中的基本工程技術。
至于有人說編程語言過于晦澀難懂,這是因為我們誤解了他們真正想要的東西,他們真正想要的其實是:變戲法。那么,一種簡單的語言是不可能存在嗎?不。我們的編程語言還有很大的改進空間,需要去進化,然而不論編程語言自身如何改進,編程永遠不會是一個簡單工作,除非你只做一些最基礎的任務。
讓我們來增加一點娛樂效果,最簡單的編程語言應該是什么樣的?打個比喻,我們需要創建一個windows窗口,里面有張表單,當有人點擊按鈕時,表單里就會增加一條記錄。人們想要的就是一種能夠理解像這種信息的語言:
創建一個帶有表單的窗口,當有人點擊按鈕時,往表單里增加一個條目
雖然理論上完全存在對人類語言進行完整分析的可能,而且以此能立即產生相應的編碼,但現實中,我們還沒有這種技術,而且,我們也沒有獲得足夠的信息支持。什么樣的窗口?初始位置在哪?顏色?什么樣的表單?里面保存什么樣的數據?用戶如何跟這個表單直接交互?菜單條目有哪些?
同樣,如果創建了兩個這樣的窗口又該怎樣?如何去定位***個,如何去定位第二個?而且,我們需要有某種的變量命名規范,例如“創建一個叫窗口1的窗口”,等一下,這會讓語法解析器產生困惑,究竟是要創建一個標題為窗口1的窗口呢,還是要命名窗口變量為窗口1呢?讓我們來重新定義一下我們的變量定義句法。“創建一個標題為‘窗口1’的窗口,并把變量名定義為“窗1”。很咬文嚼字吧,事情已經開始變的復雜了。
如果我們需要去做一個工程上更復雜的,例如創建一個作業調度程序,情況又會怎樣?我們不能只是簡單的說“創建一個作業調度器”,我們需要指出它是如何跟系統結合起來的,完全掌握程序的輸出結果,包括內部代碼。我們必須描述每個變量、每個行為如何產生,深入細節。說實話,用現在的標準編程語言更容易實現這些,
所有的這些并不是用來說明不需要提升我們的編程語言,我只是想試圖說明,無論編程語言如何的簡化,如果你不懂得代碼背后的邏輯,用任何語言都不可能編出程序。
【編輯推薦】