如果程序員是士兵,那 C、C++、匯編、PHP、Perl、Python、JavaScript、Java、Scala、ActionScript、Objective-C、Swift、Go、Ruby 等編程語言 會是什么樣的武器呢?本文摘編自 Chandra Penke 在 Quora 同名問答貼中的分享,3200+ 頂。
自我防御能力很好,堅固,并能確保摧毀你的目標。如果你是初學(xué)者你通常可以瞄準射擊(經(jīng)過一定的訓(xùn)練后)。如果你是一個專家,你可以有條不紊地部署征服你的領(lǐng)域。盡管它很有效,但有可能很慢。不過有了揮舞著的武士刀(C拓展)的超級士兵的支持,你可以選擇解決任何潛在的緩慢問題。
JavaScript經(jīng)歷了好長時間才成為導(dǎo)彈。它最初只是一個炸彈,僅僅發(fā)出惱人而巨大的聲音,但是多年來(尤其發(fā)布了V8,加上巨大的社區(qū)和一些非常棒的框架,又稱真正可怕的戰(zhàn)斗機技術(shù))它演變成了一個不那么優(yōu)雅但能快速解決問題的導(dǎo)彈。
Java 原本是從槍(JVM)里發(fā)出的子彈,然而槍支制造商決定去造不同的槍,所以很不幸,出現(xiàn)了外形類似子彈的輕微變種。然而,這使得 Java 的使用效率更高。
Scala 是來自火影忍者的分身影術(shù),允許你創(chuàng)造自己的分身,可以完全壓垮敵人。
想像一下,它雖然使用起來簡單,看起來也很有吸引力,但移動速度很慢,并且擊中目標的速度甚至更慢。如果你有更好的選擇,你為什么還用它?
有些類似 C,但似乎有更多的樣式,和一些額外的功能。你的敵人會認為你要么很傻,要么很酷(如果你有 Xcode 和其他開發(fā)者工具,你的敵人更有可能會認為你很酷)。
盾(OOP / RAII功能、模板等)可以幫助你遠離一些危險,但如果沒有明智使用,它也可以成為累贅。你可以甩掉盾,只帶著劍沖刺(因為 C++ 是 C 的一個拓展集),但有經(jīng)驗的士兵知道如何帶著盾和劍沖刺。
C 是武士刀,致命且光滑,它激勵精通它的人擁有超越現(xiàn)實的力量。但要注意,如果你和很多武士擠在一個房間訓(xùn)練,你可能會意外地被傷到。(有編譯器的幫助,C 最接近匯編語言,最有潛力編寫高性能的代碼。然而,注意那些可能不小心釋放你的指針的初學(xué)者士兵。)
如果你是李小龍或者超人,它就是你想要的全部。但是除非你出生在另一個星球擁有超人的力量,不是的話,就好好磨練你的身體和心靈來完善技藝,這樣才能用好你的武器(編譯器/解釋器)。
你現(xiàn)在可以在不接觸它們的情況下偏轉(zhuǎn)爆破槍,移動對象,并讓你的敵人徹底屈服對你敬畏。但是額外的力量也會伴隨著一些黑暗面。(相比較于 Objective-C ,Swift 帶來很多自由和能力,但增加的流動性有可能導(dǎo)致代碼很難去理解和維護)
具有未來色彩,圓滑,非常小,不需太多裝飾就可以完成工作。要擊敗那些更強硬更有經(jīng)驗的敵人,你現(xiàn)在也許還需要使用另一個武器。(GO 仍然在改進,發(fā)展成為武器所需要的社區(qū)和支持基地,雖然這似乎在很快進行)。船長 Jean Luc Picard(谷歌)魅力超凡,領(lǐng)導(dǎo)能力出眾,你保證可以重拳出擊,很快擁有超越“擊暈”和“殺死”敵人的設(shè)置(強大的庫,工具,支持等)
當它擊中目標時非常令人滿意,彰顯著能力,但是有時操作慢很費力。(Ruby 有很多吸引人的優(yōu)點,但是最大的缺點是當創(chuàng)建到一定規(guī)模時,它需要去匹配一些其他替代品的性能。)
在緊急情況下你可以卸掉隱藏的貨物以減少一些損失。但是大部分情況下你還是想要利用它去部署,返回,遠距離觀察。(Bash 擅長將事情粘合起來,在它自己的角度上它也是一種編程語言。但是它最好做一小部分任務(wù),把更重的任務(wù)留給其他語言。)
注:所有圖片都來源于 Google 圖片搜索。
稿源:伯樂在線,翻譯: 伯樂在線 - Florence,校稿:艾凌風
聯(lián)系客服