人生有三重境界: 程序員
第一重:看山是山,看水是水。
第二重:看山不是山,看水不是水。
第三重:看山仍是山,看水仍是水。 編程
編程語言之爭由來已久,也是編程之餘談笑之資。有段子問,如何用最簡單的方法讓一個技術論壇迅速沸騰?答:發一貼:PHP 是世界上最好的語言。如此就能夠挑起編程語言的大戰,各方陣營你來我往,左的,右的,中立的,搖擺的,都得插上一兩句。因而就鬧起來了,一個論壇也就沸騰了。也有人將不一樣編程語言比做不一樣的武器,Java 是自動機槍,C 是加蘭德步槍等等,依據各語言典型特色作一個比喻,也是饒有趣味。編程語言
去除做爲基礎課程的 C 語言。個人第一個學習和正式使用的語言是 C#,那時候對「巨硬「大大謎之感興趣,對 C#之父安德斯·海爾斯伯格(也是 Delphi 和 TypeScript 之父)也一臉崇敬。C#語言自己,在語法和特性方面也是優雅而又超前。但最終個人吃飯傢什卻變成了 Java,只因畢業後,C#(.net 平臺)在國內已經沒有什麼市場地位,市場招聘清一色的 Java,PHP 等。因此,其實如今不少語言之爭都是工做和市場所需之爭。ide
我我的是比較贊同語言之爭的。但不是逞口舌之快的語言爭論。編程語言百花齊放,不一樣領域需求不一樣,天然適用不一樣的語言。我也但願不一樣語言有自身不一樣的特性。我也認爲一個程序員在本身的主語言以外能夠去了解另外一門不同的語言,什麼叫不同的語言?風格和特性不同,好比面向對象的 Java,能夠去了解腳本式的 Python,也能夠了解函數式的 go,甚至 Jvm 平臺的 scala 也能夠,而應該避免一樣的 C 系語言。跳出語言的桎梏,能夠認識到一些編程更本質的思惟。函數
如開篇講到的人生三境界,其實對編程語言的認識也如此三境界。當你對一門語言只停留在使用層面,那麼你眼中的編程就是這門語言展現給你的;當你跳出其外,認識了更多,思考了更多,你會慢慢開始以爲再也不是那樣;當你最終摸透了本質,你所見的全部編程語言,也就都同樣了。甚至這個時候讓你本身編一門編程語言也不是不可能。學習
另外,我認爲編程工做的最大區別不是語言之別,而是領域之別。一樣是作 Web,用 Java 和用 PHP 思惟差不太遠。而一樣使用 Java,作 Web,和作大數據,作安卓倒是如隔行隔山。這就是領域思惟不一致致使的,因此有時候咱們也應該跳出本身的領域去看更多的世界,甚至於跳出編程,跳出工科,跳出理性世界,去體驗更多不一樣的思惟方式。大數據
公衆號以原創技術文章爲主,偶爾品品人生,發發感慨。歡迎訂閱。.net