1. 程式人生 > >什麼時候需要學一門新的程式語言?

什麼時候需要學一門新的程式語言?

宣告:本文沒有任何褒貶或者對比各種程式語言的意思,請不要做無謂的語言之爭。

我們這些80後程序員大部分人都是從delphi,C,C++開始接觸程式設計的,然後等到了大學或者工作,因為生計或者其他種種原因,大家從事的行業開始有了變化,從而導致開發語言也有了一些變化,一些做後端的,開始使用Java,C++等等,一些做前端的開始用php,js等等。

然而,當我們用一門語言很久之後,就會對這門語言有了更多更深刻的瞭解,優點缺點、解決方案等等,而且大部分人會有一中喜新厭舊的心裡,再加上市面上的新語言、新特性層出不絕,特別是看到那些你曾經花了很大精力想了各種奇淫技巧解決了一個問題,而在某些新語言中這只是一個普通特性,所以大家難免會心裡癢癢,“我要不要學這個新語言,我要不要在工作環境中使用這個語言?”

這篇文章我就兩方面講下什麼時候需要學一門程式語言,一個是學新語言是否真的對你的開發工作有幫助,一個是你的生活工作環境中是否允許你用新的語言。因為我是從事遊戲伺服器開發,主要語言是C++,而我打算學習C#,以下的內容就用這兩門語言做例子。

學新語言是否真的對你的開發工作有幫助?

我們學習任何東西都是建立在有需要的情況下,如果知識不能轉化成財富,估計很少有人會去上學。所以學一門新的程式語言是否對我們有幫助是很重要的,不過如果你只是單純的興趣,那倒是無所謂。學習新語言的原因基本分為下面幾種:

  • 現在的語言太複雜,很多特性非常老,實現功能起來很糾結,需要一門簡單實用的新語言快速解決問題,新語言簡潔高效,特性強大
  • 現在的語言需要大量的第三方庫,而新語言自帶平常開發的大部分庫
  • 現在的語言開發效率太低,新語言分分鐘擼一個功能模組出來

上面的幾點,總結起來就是現在的語言用起來很不爽,需要新語言來幫助我提高效率。

簡單高效一直是現代程式語言的核心思想,通過C++ 11,14,17標準我們很明顯的看出來,C++當初為了相容C(挖C程式設計師的牆角),做了很多現在看來很糾結的東西,而新標準就是在改善這塊東西。我們團隊維護的NFrame C++版本,到了現在又開始用C#語言做一個,核心思想沒變,只是單純的換個語言,現在核心功能已經換完了,只花了兩週多的時間,一個庫都沒依賴,只依賴了.Net Framework,雜七雜八架起來只有10M多,而C++版本庫解壓後有近1G,從開發和維護成本上來說,都是C#更勝一籌。再加上現在MS本身已經開始支援跨平臺了,或者mono,跨平臺根本不是問題。

這個例子可以看出,新的語言C#確實提高了我們的開發效率,而C#的Task等等特性和內容,已經將我們再C++上糾結的Actor模式完全替代了,讓我們可以安心做功能設計,而不是糾結語言層面的實現問題。

而且新語言一般都是通殺的,web,UI,back-end等,基本都支援,C#,js,Java都是前後端通殺,適合大部分領域和行業。

//TODO

生活工作環境中是否允許你用新的語言?

俗話說興趣是最好的老師,當你對某個事物有了興趣之後,自然就有學習的動力了。但是我們都不是一個人在戰鬥,多多少少都會有合作的同事、朋友,小到自己的簡單開源專案,大到公司的大專案,所以工作生活中都是多個人在合作,做任何事情都不能一意孤行,自己喜歡某種程式語言就大用特用,畢竟團隊整體的效率才是執行力,現在已經不是個人英雄主義的時代了,保持合作交流才能有更大的進步。團隊做出來的東西才是外面比較看重的,技術不是決定性因素,而專案產品才是提升自己價值的東西,離開團隊這個平臺,一身是鐵打幾根釘子?面面俱到方能做到完美。

暫時想到的就是這麼多了,大家可以繼續補充討論。