如何反駁「XX語言是最好的編程語言「這一觀點?
和身邊的接觸編程不深的朋友一起聊天的時候,總是會聽到"XX語言真是最好的編程語言啊",是的xx指的就是Java,為了不讓問題帶有針對性...
而他們用來支持自己的觀點的理由也往往是"Java用的人最多"之類,稍微高級一點也不過是"Java"最面向對象"」,很多理由很讓我覺得哭笑不得,但是苦於自己也不過是小白一個,竟無法找出什麼反駁。請問,這一觀點在哪裡有不妥之處呢?
轉我一篇老的博文翻譯。———————————————————————————————————————————
最近我聽到很多人談論 [X 語言] 和 [Y 語言]。總結起來,這兩種 [平台] 上的 [編程範式] 語言,他們提倡的 [風格] 式編程能讓你在 [寫垃圾代碼] 的時候更加靈活。
在用兩種語言寫出 [很簡單的小應用不超過 10 萬行] 之後我有了自己的感受。考慮一下這個問題:[給北大青鳥程序員當作業的問題],如果用 [Y] 寫出來將會是這樣:
[很垃圾的 Y 代碼]
而用 [X] 寫呢,將會是這樣:
[仔細寫出的 X 代碼,要 show 語法糖!]
高下立判。
再比較下它們的類型系統。[關於動態類型 / 靜態類型的萬用對噴用詞。]沒錯,[Y] 向你提供了 [Y 的類型系統的好處],然而這要付出 [Y 的類型系統的壞處] 這樣慘痛的代價,值得嗎?
此外比較一下構建工具。當 [Y] 還在用 [一眼都沒看過的工具] 的時候,[X] 已經有了更加先進的 [剛剛知道怎麼用的工具],這已經足夠讓你投入 [X] 的懷抱了。
最後,來比較下它們的開發環境。[X] 有 [還在 Pre-Alpha 的 X 專用 IDE],而且還可以和 [已經有 50 年悠久歷史,快捷鍵如拳皇出招表的編輯器]、[某個人人都恨的 IDE] 完美集成。儘管 [Y] 也有類似的東西,但是使用它非常的生澀和痛苦。
總結起來,儘管 [平台] 這山能容二虎,不過若想讓這世界更美好的話,我還是希望 [Y] 程序員可以放棄 [Y] 轉行搞 [X],與我們共同進步。當然 [Y] 也不是那麼不堪,它還是挺贊的不是嗎?
謝邀。面對這種問題我都是說,好好好,XX的確是世界上最好的編程語言。
然後我轉身,繼續寫我的程序。
哪門語言是世界上最好的,與我何干?跟你爭論這些的時間,還不如拿來看幾頁書,寫幾行代碼。毫無意義的討論。對號稱「XX語言最好」的人士我一般是這麼反駁的。
「號稱XX語言最好」的碼農基本上只懂XX語言,並且他的腦容量不能允許他精通另外一門語言。因為他只懂XX且只能懂XX,所以XX必須是最好的,否定了XX就等於否定了他本人的水平以及他的職場前程。其實只要明確一點,自從第二門編程語言出現以來,從來都沒有出現全世界只用一種編程語言的情況。
即使有所謂的最好,那又如何,其他語言又不會消失。
如果你是想嗆他們的話,就是直接問這個語言的好關他屁事?在小說「馬姨」中,有這麼一段:
「關鍵是要交流!你把計算機當作 什麼呢?只要找到了方法,交流不成問題.」
語言只是溝通的一種方式,關鍵在於你想表達什麼。告訴他:「你說的好有道理,我竟無言以對」
你在反駁的同時貌似也陷入了這個問題吧,如果你不在意編程語言又何必問這樣的問題?
我覺得,反問一句:算上html,你用過幾種語言?
ctrl+w或者command+w
武功沒有高下之分,只有習武之人有強弱之別。
告訴他PHP是最好的。
那個語言最好的不是應該看他面向的問題嗎,每個語言都有設計起來的主攻方面,只能說這個語言在這個方面比較有優勢,而這個方面面向的客戶群比較大而已
沒有最好,只有最合適。
我做逆向和破解用彙編,寫驅動C,客戶端用delphi,Web用C#。
找個PHP程序員和他對噴,然後你就學會如何反駁了
哪有什麼最好的語言,不都是看自己和需求么忘了在哪看到的學語言三個階段:知道怎麼用知道什麼時候要用
知道什麼時候不要用
(太久沒見 可能記錯了 :P)為什麼要和這種理由只有人數和面向對象水平的人爭呢,多讀書,少和他們扯,不然你也就是那個水平
不是語言厲害,而是用語言的人可以把語言用的厲害。人臭了,什麼語言都攔不住。
必須是brainfuck或者whitespace
現在人們都學乖了,在這個娛樂至上的時代,前面加個「最」字頂多算一個中級黑,聽著微微一笑就好的了。金同志還掌握宇宙真理呢,幹嘛要這麼認真?
非專業:那你說中文好還是英文好?
專業:哪有什麼最好的語言,準確的來說,應該回到學語言的初衷,應該是完成一個優秀的產品,對未知自豪、對社會有價值的解決方案。
有個朋友告訴我說學了Python感覺PHP渣到不行,那麼另外換個角度思考:
如果有個人小A學習了PHP後有個PHPCMS,或者dedecms的產品,另外一個人小B學了幾年Python還只是個程序員,那麼PHP語言好,還是Python好?
關鍵的問題還是思考問題的角度,思考問題的角度不同,你破解的答案也就不同:
1.我為找一份不錯的工作
這部分應該是初級、中級程序員經常考慮的問題,其實解決的方式也很簡單,在51job或者各種找工作的網站看最需要的是什麼樣語言,那麼對於你找份工作來說,你所找到的就是最好的語言,你認真、刻苦的學習就OK了
2.我想儘快完成工作
這部分應該是高級程序員、項目經理等思考的問題了,那麼你關注的是公司目前程序員團隊的組成,項目的業務,成員中人員共通掌握的知識,進行合理的運用,考慮的不只哪個語言好,而是哪個語言接手、完成項目的更快、你考慮的可能是框架、如果下屬已JAVA程序員居多,那麼你或許會考慮spring boot、Jfinal等快速開發工具
3.我想完成一個不錯的產品,實現人生自己價值
這部分人有部分高級程序員、項目經理,但更多的是產品總監、技術總監、公司領導層考慮的問題。這個時候你考慮的完完全全的不是語言了,而是社會問題,考慮社會有什麼麻煩,我作為個領導能通過手上的資源幫助客戶、同事、社會等解決些什麼。這個時候你看的、學的更多的是非技術書籍,可能是《商戰》可能是《定位》可能是《行為心理學》等其他的橫向知識點。
程序員開始學什麼語言並不重要,重要的是你自己喜歡,你學了任何一門語言能找份工作做了幾年,你完成可以觸類旁通掌握另外一門新的語言,這是對程序員基本的要求。
做了幾年程序員以後,你恰恰應該跳出技術的角度來思考問題,這技術到底是解決了什麼?為什麼需要軟體開發?條條道路通羅馬,不管哪個行業,學到一定程度目的都一樣,解決自己溫飽問題,解決兒女的生活問題,讓自己的父母過個好日子,最後,對這社會完成一丟丟的社會責任,真正實現自己的人生價值。
點個贊表示朕已閱!
喜歡我的回答的戳一戳左上角頭像點擊關注吧!
推薦閱讀:
※對一個忽然對計算機編程感興趣的文科碩士妹子,入門推薦什麼最好呢?
※什麼是Spineless Tagless G-machine?
※成功重構了代碼是種怎樣的體驗?
※如何評價 Emacs 的配置文件 Spacemacs?