記得以前瞭解動態語言和靜態語言的時候,經常搞不清兩者之間的區別和效能原理。
雖然現在完全明白,但是瞭解的過程很久,而且容易迷茫。
就在剛才打字的時候,靈感突現,搜狗拼音輸入法可以很清晰明瞭的解釋兩者的區別。
\
\
原理大白話:
動態語言、解釋型語言、指令碼語言 就好比搜狗拼音輸入法,輸入快捷,方便,容錯率高,可能幾個首字母就會打出一連串的漢子。"wanzg"就會打出"我愛你中國" ,還有各種表情也能打出來,缺點就是顯示的速度慢,因為搜狗需要聯網查詢資源,然後智慧化處理返回結果。
靜態語言、編譯型語言 就好比智慧ABC輸入法,輸入需要嚴謹,不能出錯,但是顯示的速度很快,基本是肉眼感覺不到的速度顯示文字,搜狗甚至會反應幾秒鐘才顯示(雲表情/雲詞)。缺點就是必須輸入正確嚴謹,打字速度相對要慢。
細分本質:
動態語言(弱型別語言)容錯率高,1既能表示int,也能表示float。好比輸入"couwu"也能打出"錯誤"兩字。
靜態語言(強型別語言)嚴謹,1是int就是int,輸入"couwu"絕對打不出"錯誤"兩字。
解釋性語言 顧名思義是要解釋的。什麼意思呢?就是解釋性語言的程式碼不能直接編譯成機器語言,需要通過直譯器來轉換成機器程式碼。而且還是一邊執行,一邊解釋,這麼一來,執行速度肯定要慢很多。相當於現吃現做。
指令碼語言屬於解釋性語言,但指令碼語言有自身的一些特點:文字型。最初是為了縮短傳統的“編寫、編譯、連結、執行”過程而建立的計算機程式語言。然而,在指令碼和傳統程式語言之間的界限越來越模糊,尤其是在一系列新語言及其整合常出現時。我們不妨將指令碼語言歸類為解釋性語言也可以。
編譯型語言 是直接編譯成機器語言,直接放到伺服器執行,相當於做好等著吃。
看到這裡你應該明白,為什麼有的語言又叫動態語言,又叫解釋性語言,又叫指令碼語言了。。。希望可以幫助你有個清晰的瞭解。如果想了解具體的特性和好處壞處,單獨搜尋百度很詳細。這裡就主要幫助大家理清思路。\
以上是程式語言型別解釋。總歸一句話:開發快,效能慢。 效能快,開發慢。 那麼有沒有兩者相容的語言呢?還真有,golang,你值得擁有,本人正在學習中。。。