大話編程語言 - 世界上最好的編程語言

作為 .NET 玩家來講講我對這些語言的感覺
我是自學(xué)的編程, 主要還是玩 C#, 不過 C++/C, Java, Go, Rust, 以及前端的 HTML, CSS, JS 這些都多多少少接觸過
如果是因為興趣而學(xué)習(xí)編程, 例如, 享受編程的過程, 那么 C#, F#, Rust 是我比較喜歡的幾種語言 (嘶, 不過其他的語言也都有自己的魅力, 還真是難選擇
C# 是完全面向?qū)ο蟮囊粋€語言, 因為在 Java 之后誕生, 所以也避免了 Java 的一些弊端, 例如基本類型不是 "類", 以及泛型和反射的拉跨
編寫 C# 的時候, 你能感受到的是, 它真的為你準(zhǔn)備了好多東西, 好多零件, 然后供你組裝, 即便是你自己造一個輪子, 也能和別人造的輪子非常好的配合.
因為 C# 有統(tǒng)一的接口, 類型系統(tǒng), 以及一些可以說是約定俗稱的編程規(guī)范, 只需要參照標(biāo)準(zhǔn)庫進(jìn)行編寫, 你就能寫出來很不錯的東西.
反觀隔壁 C++, 雖然有了類, 但是很多時候也雀食難受, 例如標(biāo)準(zhǔn)庫不夠完善, 或者我想要一個統(tǒng)一的 "可迭代對象" 怎么辦. 盡管 C++ 有了 "類", 但是我認(rèn)為 C++ 還是適合底層的東西, 像是 C# 和 C++ 自帶的字符串分割, 這在 C++ 中, 標(biāo)準(zhǔn)庫是不自帶的,,, 對于從高層語言學(xué)習(xí)的我, 著實是有一些驚訝. 當(dāng)然, 如果拿看待 C++ 的眼光去看待 C#, 你也會發(fā)現(xiàn) C# 非常不可理喻, 畢竟這兩個東西擅長的地方是不一樣的, C++ 一個 #include <Wndows.h> 就能解決各種與 Windows 系統(tǒng)的交互, 但是 C#,,, 你讓他做應(yīng)用級別開發(fā)還行, 做底層開發(fā), 就為難了, DllImport 寫著是有點難受的.
Java 的話, 作為 Java 用戶的 "宿敵", .NET 用戶, 我還是非常非常眼紅 Java 的生態(tài)的. 那么多庫,,, 嘖, 羨慕死了. 不過即便如此我也不想去寫 Java, 之前為了學(xué)習(xí)詞法分析器和語法分析器的簡單原理, 我造了一個 JSON 解析庫, 當(dāng)然, 是在 C# 上寫的, 后來我想移植到 Java, 發(fā)現(xiàn), OMG, Java 的泛型好離譜, 是類型擦除! 我被 rick roll 了! 但是跑去這些高級特性, 在日常的程序編寫中, Java 雀食沒啥問題, 可能只是我胃口怪了.
像是 F#, 第一次接觸的時候, 我也被驚了下, 那是我第一次接觸函數(shù)式編程, 大概就是 "啊嘞??? 這是個啥? 還能這么玩?" 這樣的反應(yīng), 所有東西都好像是函數(shù), 這個函數(shù)他可能需要你傳入一些東西它才會給你東西(我們認(rèn)為的函數(shù)), 也有的是, 你不傳入東西他就能給你東西(我們認(rèn)為的值, 或者變量啥的), 然后函數(shù)還能組合起來, 著實驚到了玩 OOP 的我.
而 Rust 的話, 我只有之前幫朋友優(yōu)化一個 Rust 小程序的經(jīng)歷, 我聽說, 它用 "奇妙的魔法" 完美地解決了內(nèi)存回收問題, 因為我又玩過 C#, 了解過 GC 的可怕, 又玩過 C++, 被野指針?biāo)勰ミ^, 所以深刻的意識到, 這語言, 可能是要顛覆世界的玩意兒. 聽說微軟計劃用 Rust 重寫部分 Windows, 不知道是真是假.
總之, 每個語言都能體會到不同的樂趣[打call]