基本概念
靜態語言(強類型語言)
靜態語言是在編譯時變量的數據類型即可確定的語言,多數靜態類型語言要求在使用變量之前必須聲明數據類型。
例如:C++、Java、Delphi、C#等。
動態語言(弱類型語言)
動態語言是在運行時確定數據類型的語言。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。
例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。
強類型定義語言
強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那么它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變量a,那么程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。
弱類型定義語言
數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值。強類型定義語言在速度上可能略遜色於弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。
兩者區別
特性
強類型語言是一旦變量的類型被確定,就不能轉化的語言。
弱類型語言則反之,一個變量的類型是由其應用上下文確定的。
靜態語言的優勢
- 由於類型的強制聲明,使得IDE有很強的代碼感知能力,故,在實現復雜的業務邏輯、開發大型商業系統、以及那些生命周期很長的應用中,依托IDE對系統的開發很有保障;
- 由於靜態語言相對比較封閉,使得第三方開發包對代碼的侵害性可以降到最低;
動態語言的優勢
- 思維不受束縛,可以任意發揮,把更多的精力放在產品本身上;
- 集中思考業務邏輯實現,思考過程即實現過程;