你最喜歡、熟練的編程語言中最讓你不爽的是什麼東西?
世界上只有兩種語言,一種是沒人用的語言,另一種是被人罵的語言。那麼,你最喜歡/熟練的語言就不可能屬於前者,因為至少你在用。那麼這門語言的哪些方面可以讓你罵呢?或者說,你可以想像到別人會這麼罵你所使用的這門語言嗎?把你的答案寫下來,告訴別人你最喜歡、熟練的語言中,最讓你覺得不爽的特性是什麼呢?
PS:我不是挑起語言之爭,因此懇請大家不要因為別人講了自己喜歡的語言的壞話而去抨擊別人,如果你要發言,希望可以是切合這個問題的回答^_^。
最不爽的是小霸王學習機的 BASIC 對音頻的支持太弱。不支持多音軌、立體聲、效果器迴路這些現代 DAW 必備的元素,更不支持外置錄音設備。否則從八九歲開始用 BASIC 寫音樂的我到現在就是程序員而不是音樂人了。
我最喜歡Ruby,但是我最討厭每次部署Ruby應用,我要精心的給Ruby打GC補丁,調節GC參數,反覆測試和尋找性能最優的補丁,編譯和參數組合。為嘛不能讓人省點心呢?
當你真正深深地理解了一個語言的話你就會明白,這個語言的每一個缺點都是在為你愛上他而做出的讓步。
最熟練的語言 C,最不爽的是沒有泛型和 trait。
以前Java沒有REPL工具,Java 9帶來了JShell,簡直喜大普奔。
Python的Lambda,一條表達式。
先這樣吧...也許自己眼裡的「不爽」卻是別人眼中的「特性」。
Scala沒有差集類型。。。
最熟練的是 Python 。。。
python 的缺點啊。。。算了,不說了。。。
啊。。。我喜歡Python,但是我最討厭Python的縮進規則,因為這讓自動代碼生成器變成了自動Bug生成器;我還喜歡Java,但是我極為討厭Java中無處不在camel,我真心希望這種動物老老實實呆在沙漠里就好,表在我的眼前亂跑;我最喜歡的C++,但是我無時無刻不在希望所有的頭文件和#include趕快追隨恐龍的腳步滅絕吧……
Rust:1.你經常會發現你寫的use比代碼行數還多…2.trait現在不支持屬性,手動寫一大堆get set逼死強迫症。
Golang沒有泛型和構造函數真的挺蛋疼的。雖然有替代方案,但是有時候還是感覺來的不夠自然。
java的泛型
簡直是雞肋
Haskell,太難了,至今還沒到入門水平
Kotlin好像沒有讓我不爽的地方,但是它因為官方多後端導致類型映射坑不少,而且用的tokenizer(就是前端大佬和PLT大佬比賽寫的那個)會把val a:A&=A()這種代碼解析錯誤,當然這些並不是語言特性的問題。你要高級用戶或者寫代碼時給編譯器做壓力測試,那Kotlin還是有蛋疼之處,但是這門語言單純地使用就沒有任何不爽的地方。
它的特性完全符合它的定位,而且不多不少,我覺得好用的特性都有。
非要說的話,由於編譯器是JVM上的,啟動有點慢。。。Python居然沒有block,這很不爽。
Python的lambda用處很小Python2的Ellipsis,也就是 ... ,不能直接寫出來。比如 [ 1, 2, 3, ... ] 這樣的list會報錯。Python的is用作同一性比較。個人認為is的語義應該很豐富才對,要有個__is__的magic method才對。同一性比較可以用===或者其他的什麼。Python沒有dynamic scoping. 有時候有dynamic scoping真的很方便(這條肯定爭議太大)len(u"U00010000") == 2 # 說好的一個字元佔一個位置呢?
未完待續最熟練的是matlab,最不爽的是每次談到編程語言,很少有人知道(並認為)matlab也是一門編程語言
當然,大家都喜歡python,所以matlab的包比python少得多,也是個大問題
而且一般的OJ都不支持matlab,所以matlab真的不是一門編程語言……嗎如果web端的語言也算編程語言的話,那麼我最喜歡css了。一個網頁去掉css太tm難看了,但是加上css,一個網頁可以千變萬化,給你做成扁平化風格,抑或是流式布局,抑或是混搭風格等等。
我講的css範疇絕不僅僅只是css語言本身,css整合好看的字體,圖片,顏色搭配,布局合理甚至響應式。。。計算機世界視覺的千姿百態css功不可沒。
說實話當初我就是css引領我走向計算機行業的。
但是我最討厭的是css 太tm難學了,不提兼容性,它難的原因是很多效果要 你真正動腦筋去想像去嘗試才能做出來, 很多看似簡單的效果要寫一堆css+html代碼。看客們真的不要覺得css簡單,它真的很考驗你的想像力甚至是數學應用能力。如果你有玩過codeopen,抑或是自己嘗試用css實現過各種看似簡單的圖標(曲線啊,三角啊)什麼的,你就會理解我所說的難了。
css又以其巨大的包容性讓你以為它很簡單從而輕視它,甚至認為它算不上一門編程語言,認為它沒有邏輯上的思維過程。有時候很多效果你用另一些css也能實現,但是其中藏著個大地雷,瀏覽器是不會告訴你的,等你頁面寫的差不多的時候,可能那個問題出來了。你又要回去看布局錯亂的原因。它不像編程語言有個編譯器什麼的錯了就給你提示,這讓我想起了早些年的javascript,也是因為包容性太好了,很多錯誤它不算你錯誤,寫起來特別痛苦,後來才有各種規範工具什麼eslint,當然css也有csslint,但是它檢查不了你語義上的錯誤,如果你用你的方式實現了看起來不會有什麼問題,但是也許這是一個地雷,這個地雷在你添加別的元素,改變其他元素,甚至是用戶網路狀態不好的時候出現。最終的結果就是你的網頁布局亂掉了,根本沒法看。Object Pascal 沒有宏。
lua table數組中的洞及各種因此帶來的問題。。
javascriptnpm各種年久失修的輪子太多
php 的 $和-〉符號,真的蛋疼
推薦閱讀:
※Rust 語法很醜陋嗎?如果是,為什麼醜陋呢?為什麼設計成這樣呢?
※最噁心的語言是 Objective-C么?
※Objective-C 語法上有任何的優點嗎?
※有哪些令人拍案叫絕的代碼/優化?
※你見過哪些令你瞠目結舌的C#代碼?
TAG:編程語言 |
