公司和程序員如何選擇合適的編程語言?


“任何不談使用場景的最佳編程語言都是耍流氓。”我們經常會聽到“201X年最佳的編程語言”、“程序員最應該學習的編程語言”、以及那句最著名的“PHP是最好的語言”……在沒有使用情境的情況下,這些都沒有任何的參考意義。

為了能夠給更多處在迷茫期的程序員提供一些建議,我們將在多篇文章中從多個角度來分析編程語言的選擇和應用。本文會先講述一下編程語言的選擇成本以及選擇標準。

公司和程序員如何選擇合適的編程語言?

更改編程語言的成本

如果你有一個很大的代碼庫,那麼一般來說,你是不會輕易更換編程語言的。因為這樣做帶來的成本會非常大,聘請新的開發人員、改變原有的基礎設施、學習最佳實踐……這樣的成本支出我們相信會讓大多數的公司望而卻步。

另外,除了以上成本的支出,往往我們還會忽略一種成本支出,那就是學習成本。雖然學習瞭解一門編程語言只需一到兩個月的時間,但是想要熟練掌握一門編程語言則需更長的時間,所以無論是從程序員還是從企業的角度來看,他們都傾向於選擇原有的編程語言。

在這種情況下,最好的編程語言一定是你現在正在使用的編程語言。

何時更改編程語言?

沒有任何一種語言是完美的,事實上每種語言是擴展時都會遇到一些問題。但是,將所有語言一視同仁,也是不公平的,畢竟當你有某些重要或者特殊需求的時候,有些語言的表現會特別突出。

保留原有編程語言有時也需成本支出

PHP到C++的轉換器—HipHop for PHP、PHP的未來—Hack、用於PHP和Hack的虛擬機—HHVM。PHP的性能很好,所以很多企業會選擇保留使用,但是他們並不是完全沒有付出代價,例如,Facebook的內部代碼是用PHP開發的,其也投入成本發佈了新的編程語言—Hack。

選擇編程語言的標準

雖然我們認為世上沒有完美的編程語言,但是對於某些場景和特定任務來說,是有更好的編程語言。所以我們認為可以制定一些標準來幫助程序員和企業選擇編程語言。

良好的技術素質

除了性能,編程語言必須具有良好的技術素質來滿足用戶需求。如果你的軟件包含有大量的併發,所以需要一種具有一流支持的編程語言。 例如,Twitter的編程語言選擇了Ruby,其LAMP模型不支持封裝,所以很難建立獨立的獨立存儲或搜索服務。這是Ruby的缺點,但是Ruby也有專為其他東西設計的特性。技術素質指的不僅僅是你看到或者用到的,如語法,更多的是其在背後是如何實現的。

所以,在選擇編程語言時不要盲目相信編程語言的排名,而是要根據你的需求對所有的語言進行分析對比。假設現在有兩種編程語言分別是X和Y,X編程語言在用戶量達到500萬之後表現優秀,而Y語言在用戶不到500萬的時候,表現優秀且價格便宜,如果你一開始就選擇了X語言,可能它的使用成本非常高,你直接死在了通往500萬的路上。

編程語言的流行程度

流行的編程語言能夠幫你節省金錢和時間,尤其是對開源開發來說。假設你的公司是用PHP來開發的,那麼你就可以搭乘Facebook的順風車,使用Hack和HHVM等加快公司的發展。

如何判斷一個編程語言是否流行?

·該語言的就業崗位數量; ·搜索引擎上該語言的搜索數量; ·GitHub上該語言的項目數量

社區會發揮更多的作用

良好的社區有很多好處,例如,企業能夠更瞭解開發人員的思維方式,混社區的程序員往往具備更多非編程的技能、社區會企業招聘人才節約了更多的時間和人力成本……

PHP是門檻較低的編程語言,所以企業在招聘時對於應聘程序員的能力判斷可能會迷茫。這時,社區就發揮作用了,企業可以通過社區上他們的項目來判斷這個人的能力。而且並不是所有程序員都是學計算機出身的,他們的代碼可能並沒有那麼規範,社區的存在可以讓程序員的編程更加規範。

另外,編程語言一旦被社區接受,就會衍生出大量的庫,更利於編程語言的發展。

這裡小編是一個有著5年工作經驗的前端工程師,關於web前端有一個完整學習web前端的路線,學習材料和工具。需要的夥伴可以私信我,發送“前端”就可以獲取領取地址,免費送給大家。對於學習web前端有任何問題(學習方法,學習效率,如何就業)都可以問我。希望你也能憑自己的努力,成為下一個優秀的程序員!


分享到:


相關文章: