為什麼動態型別程式語言會如此流行?

TP_funny發表於2014-12-24


我使用過很多靜態型別的程式語言,也使用過不少動態型別的語言。我發現,當使用靜態型別的語言時,各種的 IDE 給了我巨大的幫助。這些程式語言整合開發環境能讓我的開發極其的高效。程式碼的修改和移動(例如重構程式碼)都非常的方便,不容易出現錯誤。編譯速度通常不是問題。IDE 的自動編譯功能使得在我每敲完幾個程式碼後都能得到編譯好的程式。文件提示和變數、方法、類提示在我輸入變數時會自動彈出。所有的這些都能夠使我把全身心注意力都投入寫程式碼中。

相反,程式語言的型別越動態,我就越無法藉助於 IDE 的幫助,通常在使用動態型別程式語言開發程式時,我只能使用一個文字編輯器。程式設計效率受此的影響而下降很多。程式碼重構變得困難,甚至完全不可能,程式的正確性嚴重的依賴單元測試。但測試程式並非能做到完美。很多時候,一些老的、歷史遺留的專案中的測試程式根本不可信。

在文字編輯器中依靠 grep 來重構,就是個笑話。即費事,又費力,而且效率不高,經常出錯。然而,重構是很多程式設計師經常、大量需要做的事情。

動態型別語言通常會在速度上有些欠缺——因為它的動態屬性。

使用動態程式語言開發的過程中,我通常會嚴重的依賴文件來決定應該使用哪一個方法或提供了哪些方法。如果一個類沒有提供文件說明,我必須開啟原始碼,搜尋整個檔案,來了解它提供的功能。有時,一個程式碼庫裡包含了成百上千的程式碼檔案。很顯然,我是沒法記住在這樣的一個程式碼庫裡哪些檔案包含了哪些方法和類。因此,我不得不頻繁的開啟一個又一個檔案,經常出現找來找去也找不到某個方法究竟是在哪個檔案裡。於是,我只能使用 grep 來搜尋整個專案庫檔案。

我能想出很多的靜態型別語言的優點和好處,但對於動態程式語言,我總結不出多少有點,但很顯然,有很多人非常的喜歡動態程式語言,為什麼?


一個答案就是動態語言通常更方便開發較小的專案,因為可以無需宣告型別而節省了很多麻煩。另外一個答案是,動態型別解除了程式設計師的束縛,可以最大的發揮程式設計師的程式設計技能,能最有效的利用程式語言裡的各種特徵和模式。但這些能力都是一把雙刃劍,更多的依賴於程式設計師的個人才能,如果用不好,或用的過度, 都會產生負面的害處。

你認同我的觀點嗎?

英文原文:Why is dynamic typing so popular?
來自:部落格園
相關閱讀
評論(2)

相關文章