為什麼 2010 年前後誕生的語言 如 Golang, Rust, Swift 都是強型別 靜態

時間 2021-05-10 03:13:08

1樓:wangyongyue

弱型別就是在外邊包了一層,對我們是隱藏型別的,只有在執行時才會解開面紗,知道是哪種型別。但是萬一型別不一致就會崩潰。這個問題需要程式設計師一直判斷,許多隱藏bug產生。

對於乙個大型專案是致命的,維護和擴充套件只能更多的依賴測試,是降低生產力的。強型別語言就沒有這些問題,會在編譯時就會暴露問題,強型別語言要求程式眼更好的能力。

2樓:oneMortale

靜態強型別的結果是、這門語言是乙個基於compile time的語言,所有的東西在編譯的時候都已經確定,就像單反所見即所得、這裡是所寫即所得。任何錯誤都無法通過編譯,相比較動態語言很多錯誤都只有在run time的時候才能被發現,靜態語言更安全明了、對入門程式設計師也更友善。

3樓:

動態語言已經把業務做的差不多了,效能問題始終無法解決,傳統的靜態語言不足以支撐快速迭代和網際網路行業的高速發展,於是出現了新型的靜態語言,借鑑了動態語言的快速開發的特點,又不失靜態語言越過虛擬機器直接操作CPU和記憶體的特點。

這是複雜的網際網路產品發展至今的必然產物。如今的網際網路不是CGI不是ISAPI/NSAPI,也不是PHP弄個MVC框架寫幾個頁面就可以了的。

4樓:

呵呵當你部署到不同版本作業系統的伺服器上時,得花上半天裝依賴

當你改了個定義,然後重編得乙個鐘頭你就會想著動態語言的好處了

5樓:fleuria

在生產工具極大豐富的現在,語言的演進並不是乙個換代的過程,而是乙個補充的過程。微服務等實戰,允許線上不同的業務型別選用更豐富的語言工具箱,拆服務的話,可以在必要時發揮靜態語言的效能優勢或者工程優勢。

然而 web 的話,對付兩下 json / orm / html 就能想起來動態語言的好。

6樓:曹嚴明

首先是強型別靜態語言的執行效率,以及穩定性,這是動態語言無法超越的。其次,在設計開發階段,強型別靜態語言的程式看上去越來越像是用動態語言寫的,加上工具鏈的成熟,動態語言在開發階段的優勢在減小。其三,新的靜態語言在支援分布式、大併發、函式式程式設計、描述式程式設計方面有很大的進步,而動態語言在這些方面凸顯其不足。

開發人員由於具體專案需求的原因越來越多的選擇靜態語言就不足為奇了。

7樓:

沒有強型別,沒有函式正規化指標(這個術語叫什麼?),乙個大型專案,甚至中型專案,就全靠程式猿的規範約束,相當不靠譜

還有由於是動態型別,IDE不僅沒法做檢查,而且連基本的查詢和重構都很難保證,隱含的bug發現不了,實際上相當耽誤開發進度

8樓:

其實弱型別的做小型短平快的專案還挺好的,到了大型系統上,尤其是若干個版本迭代後,各種隱含的bug,會導致整體結構混亂不堪,難以維護。

所以,對於大型系統來說,強型別至少是比弱型別要合適的。

9樓:luikore

感覺這些靜態語言扎堆出現最主要原因是: 碰巧另外和 CPU 主頻達到瓶頸有點關係

還有就是這個時間點有很多人玩膩了動態語言和虛擬機器, 過幾年玩膩了靜態語言說不定又跑去玩動態語言和虛擬機器

現在不管動靜態都是強型別,除了彙編已經基本沒有弱型別語言了, 而這個時間點附近誕生的新語言也有很多動態的啊: CoffeeScript, Elixir, Dart 等 Timeline of programming languages

為什麼 1968 年前後,中法美日捷等多國年輕人都陷入了狂熱 造反 激進當中?

季退思 因為當時已經距離二戰結束二十多年了,第三次世界大戰居然還沒打起來,而且很有可能以後也打不起來了。各國為應對第三次世界大戰,而產生的重稅 兵役 管制,也就在戰後新一代人眼裡,全都變得面目可憎起來了。實際上80年代末的蘇東波,本質上也是這個問題。辛辛苦苦遵紀備戰,究竟是為了什麼啊,為了根本不會發...

為什麼2023年前清華北大錄取分數線這麼低

喵圈轉圈喵 個人覺得主要有兩點原因 1 社會的高速發展帶來的教育資源的獲取難度相對於10年前要低很多。這個難度對比是同乙個地區按時間維度進行的對比,非橫向對比。2 家庭對孩子的教育投入力度在不斷的加大,孩子逐漸開始在很早期就開始接受高質量高強度的教育培訓。就試卷難度來講,其實我們在讀研的時候大概看過...

2023年前後單機遊戲的機械人用的什麼演算法?

汐晶少女伊薩卡 首先cs的ai真的很容易做。因為電腦自動瞄準真是很準,其實不准才難。樓主說魔獸的ai很難,完全不覺得,魔獸的ai就是簡單的調整數值,採錢更快,生產更快之類的。其實魔獸的中高低難度ai只有數值的區別 目測 早年做單機遊戲 我們是大致1990年開始編商業遊戲 先說2000比較時髦的 紅色...