03.03 作為程序員應該以什麼樣的態度對待編程語言、IDE和編輯器之爭?


回答這個問題一定會引起一些共鳴,同樣也會引起爭議(之前一個代碼換行問題就引起了極大的爭議),但是不管怎麼說這些爭論總歸還是有意義的。我從事軟件開發工作10多年,分別使用過彙編語言、VB、C、java、python、PHP、js,其中java使用的時間最長,其次是C和python。編輯器以及各種IDE集成開發環境也使用過不少,今天就跟大家聊聊我的看法。

先說語言,我覺得使用什麼語言進行開發,主要還是看目前的主攻領域。如果從事web領域的開發那麼無疑java和python是比較好的選擇,當然還有那個萬年青——PHP(不開花也不枯萎)。我對這三個語言都比較熟悉,怎麼一個一個分析一下。

先說java,這個語言從一面世就嘴裡含著互聯網的金鑰匙,被定義為互聯網的普通話,雖然當時的Sun江河日下,但是java卻得到了廣泛的使用,20多年來java語言長期佔據著語言排行榜的霸主位置。就其原因無非就是一個快字,快在它的多線程解決方案,快在他對編譯器的深度優化。當年java web能把如日中天的CGI推下神壇靠的是三把斧:多線程、可擴展、可移植。那張對比圖深深刺痛了CGI,也深深吸引力眾多web開發者,再次重溫一下:

眾多開發者帶著一絲愧疚(其實遺憾更多一些)轉向了java,我最後一次聽到同行談起CGI的開發是2003年一次在乘坐電梯的過程中,從此以後再無CGI的消息。目前的java勢頭依然很猛,在移動端由於安卓的使用也得到了迅速的發展。但是做java開發有一點比較頭疼,同一個功能用java實現幾乎是代碼最多的。

再說說Python和PHP,這兩個語言在web領域也有廣泛的應用,Python和PHP都贏在了簡單上,這兩個語言在web開發上比java要簡單一些,雖然沒有java速度快,但是沒有人喜歡複雜,尤其是非電商網站。PHP擁有天然的熱部署特性,在web開發上有悠久(不容易)的歷史,自然擁有眾多穩定可靠的解決方案。Python這幾年由於機器學習領域的興起也得到了更廣泛的使用,因為Python有兩個非常強大的庫:numpy和matplotlib,這兩個庫簡直讓機器學習的算法實現變成了選擇題。伴隨著機器學習領域的發展,相信python還會繼續增長的勢頭,php我就不評論了,這個號稱最好用的語言真是沒辦法評論,我相信它還會持續萬年青的信仰。

再說一說C語言,我用C語言的開發時間並不長,也就在1年左右,在Linux環境下使用vi編輯器。真是應了那句話:神一樣的語言配合神一樣的編輯器。C語言絕對是程序語言界的實力派和偶像派,有這麼一句話:真正的程序員使用C語言。C語言的江湖地位這麼多年從來沒有被撼動過,即使火的不得了的java也沒有完全蓋住C的光芒。但是目前C語言的使用場景伴隨著物聯網的應用也逐步普及到我們每個人的身邊,各種可穿戴的嵌入式智能設備大多采用了C語言來開發。

關於IDE和編輯器,我使用的比較順手的有editplus、Eclipse、vim(還在不斷探索中)、netBeans,總體感覺都差不太多,就不在這裡探討了。

大家對這幾個語言和編輯器有什麼看法呢?


IT人劉俊明


首先 如果是真正的程序員,那必然是已經掌握了至少一門語言,這樣才會有人僱傭你。如果你還沒有工作經驗,只是在網上發帖胡說八道,那請不要說自己是程序員。

比如你是php程序員,那說明你們公司,或者是你們項目組的人都是php程序員。那麼請問你有什麼必要去爭論哪個語言好? 難道你用PHP做項目的時候,還有去和其他說,其實java更好?

第二 作為程序員,有可能你想學習其他語言,想比較其他程序的好壞。那麼你考慮的很多的應該是項目和未來的方向。

比如你是一個php程序員,那麼將來你打算做安卓開發,就應該去學java,如果你想將來從事人工智能活著數據分析,那麼就應該去學Python。

第三 一定記住,對於程序員,算法和經驗永遠比語言重要的多的多。

與其爭論語言,不如去爭論算法。

如果你去看看亞馬遜,谷歌,facebook這些大公司的招聘廣告,絕對不會看到什麼招聘java程序員,招聘c程序員。而是招聘"web工程師","機器學習軟件工程師"。

所以,人家根本不在乎你用什麼語言,人家看中的是你在某一個領域知識的深淺。

如果你在web開發上有很多的經驗,真心獨立開發過一個web程序,對web相關技術非常熟悉的話,你應該可以隨便用任何語言進行開發。

第四 真正需要去比較各個語言的優缺點的程序員,應該是一個公司的構架師或者技術大拿,在項目啟動選型的時候才會去考慮這些。當你在這個領域已經有了很多的經驗,各個語言的優缺點已經很清楚了,已經沒有什麼必要去爭論了。

最後 說一下IDE僅僅是工具。我的建議是,用自己最喜歡的,但是要勇於嘗試新事物。IDE就好像我們買車一樣,你應該每一種都去試著開一段期間,然後選擇自己最習慣的。


shawn25


你想買輛什麼車?所以,首先的一點是你的目的是什麼?不管是什麼編程語言都有它產生的原因,比如C語言比彙編語言更容易閱讀,但彙編在特定領域仍然存在;C++比C語言多了面向對象的進步,但在操作系統級C更適合一些。隨著技術的發展,場景的更迭,會有更多的語言產生,但更重要的是你用語言是來解決問題的。單片機早就出現32位了,但8位的單片機出貨量更大一些,無他,應用場景而已。爸爸好還是媽媽好?不要告訴我有錢好。


分享到:


相關文章: