如果程式設計師是士兵,程式語言是武器,那麼每種語言都是什麼武器?

2016-10-22    分類:程式設計師人生、首頁精華3人評論發表於2016-10-22

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

PHP 3是電鋸。是面向致力於web app的士兵的第一批武器之一(甚至在“web spp”這個名詞變得流行之前)。可以完成工作,但看起來很雜亂,幸運的是現在有更好的選擇。(PHP 3的語法可能是噩夢,並導致很難維護程式碼。之後的PHP版本似乎已經改進了)。

Perl是戰士委託的殺手。優雅,強大,能夠快速讓目標(特別是如果文字檔案的話)保持緘默。一定要與這個殺手的命令保持良好的關係,否者你可能會發現難以掌握這個武器。(Perl既強大又靈活,但是語法和語義使之難以掌握,並導致難以讀取和難以維護程式碼。就像刺客,隱蔽但有效)。

Python是坦克。有著很好的防護,堅實,保證粉碎你的問題。如果你是一個初學者,通常也可以來瞄準和射擊(只要稍微訓練一下)。如果你是一個專家,你就可以有條不紊地部署來征服地形。然而,儘管它是如此有效,但它也是緩慢的。你可以選擇在揮舞武士刀的超級戰士即C-擴充套件(見下文)的支援下,解決任何潛在的緩慢問題。

JavaScript是戰鬥機的導彈。JavaScript花了一段時間才成為導彈。它最初是一個炸彈,只會導致惱人和巨大的泥漿噴濺,但多年的時間(特別是公佈V8,有了巨大的社群和一些非常好的框架,也可以當作是真正棒的戰鬥機技術)已經讓它變成了一個導彈,它可以提供了絕對的能量來快速完成工作,如果不要求優雅的話。

Java是子彈,意味著要從單支槍(JVM)中發射。然而,槍支製造商製作了不同的槍,因此不幸的是現在相似外觀的子彈也有了輕微的變異。不管怎麼說,完成工作還是很有效的。

Scala是從火影忍者中的“影分身術”能力。允許你建立自己的分身,並完全壓倒你的敵人。

ActionScript 2是拋石機。給人一種它很容易使用的幻覺,看起來很有吸引力,但是移動緩慢,並且擊中目標更慢。如果你有更好的選擇,那麼為什麼要使用它呢?

Objective-C是沒有力量的光劍。有幾分類似於C,但似乎更有一點風格,和一些額外的功能。你的敵人可能會認為你看起來很傻或真的很酷(如果你有Xcode並訪問所有的開發工具,那麼很有可能是後者)。

C ++是帶盾牌的劍。盾牌(OOP / RAII功能,模板等)可以稍微幫助你抵禦危險,但如果不能明智使用的話,它就會變得笨重和成為累贅。你可以選擇放棄盾牌,只用劍,增加衝刺速度(因為C ++是C的超集),但有經驗的士兵知道如何攜帶兩者衝刺。

C是武士刀,致命而鋒利,能夠獎勵專業人士超越現實的權力。但要注意,如果你在一個滿是其他武士刀的房間裡訓練的話,你可能會意外劃傷。(C語言在編譯器的幫助下最接近程式集,並且對執行程式碼最有潛力。但是注意初學者士兵可能會意外釋放指標)。

Assembly是你自己的身體。如果你是李小龍或超人,那麼你只需要它就OK了。但是,除非你出生在另一個擁有超人能力的星球上,或者已經將你的身體和心靈磨練達到武力完美的境地,否者你就需要使用武器(編譯器/直譯器)。

Swift是有力量的光劍。你現在可以偏轉爆破,移動物件,而不觸控它們,直接嚇唬敵人投降和敬畏。但是額外的力量帶來了黑暗面的誘惑(與Objective-C相比,Swift帶來了更多的自由和能力,但是增加的靈活性有可能導致難以理解和維護的程式碼)。

Go是星際迷航的相位槍。未來派,時尚又最小型,沒有太多的虛飾來完成工作。為了打倒那些更有經驗的敵人,現在你可能需要使用另一個武器(因為Go仍然在被排擠,並正在開發社群和支援基地,以便於成為被選擇的武器,儘管這似乎發生得很快)。有了Jean Luc Picard(Google)魅力和能幹的領導,你可以確定它將重拳出擊,很快就會有超出“打暈”和“殺死”(偉大的庫,工具,支援等)的設定。

Ruby是Halo中的幽靈機。當它擊中目標的時候非常滿足,並散發力量,但有時會痛苦地緩慢的機動飛行。(關於Ruby有很多吸引人的特點,但最大的批評是,當建立大的規模時,它還沒有匹配一些其他替代選項的效能)。

Bash是攜帶一些隱藏貨物的運輸飛機,並且主要是面向於那些需要運輸其他士兵或武器的士兵。在緊急情況下,你可以放下隱藏的貨物,破壞一些傷害,但在大多數情況下,用於部署和遠端觀察(Bash是偉大的粘合劑,也是憑藉自身能力立足的一種程式語言。但是它最好是做一些輕便工作,留下重活給一些其他語言)。

注意:所有圖片均由Google圖片搜尋提供。感謝大家的建議和意見。

譯文連結:http://www.codeceo.com/article/if-programmer-is-soldier.html
英文原文:If programmers were soldiers and the languages were weapons, which weapon would each language be?
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章