在軟體開發時,選用編程語言的標準是什麼?

比如為什麼用java而不用c++,為什麼用perl而不用shell,等等。我承認這是一個很菜的問題,因為我本身就是一個菜鳥。


雖然我們一直都說,每一個項目都有它最合適的語言,不過大部分老闆通常也搞不明白這個,要麼挑一個高大上的,要麼挑自己喜歡的。


如果是商業項目,除非你是總負責人,否則自然會有老闆、項目經理啥的告訴你要用什麼,你沒得選,簡單。

如果是你自己主導的項目,那就更簡單了:

(1)先看你會的技術能不能很好地完成它,可以,馬上動手做吧,別理別人說「XXX技術更適合」之類的話,就算他的話對,你不會也白搭。

(2)如果你會的東西搞不掂的話,那看看能不能在一個有限長的時期內學會一種大家用得最多的可以完成它的技術。如果不行?那放棄吧,這個項目至少在目前己超出了你的能力,也不用選了。除非這是一個長期項目,可以等到你掌握能完成它的那些新技術。


太多了,想到了再繼續補充。。。

1. 平台限制,前端選js,IOS選OC,出來可執行文件是否在目標平台有虛擬機等巴拉巴拉

2. 在某領域有成熟的框架,庫,生態

3. 性能

4. 多人開發是否容易,是否有好的調試工具,測試工具,是否面向對象,內存自動回收,強類型。。

5. 業界做類似開發都用什麼?網上資料是否豐富,遇到坑好求助

6. 團隊人員是否熟悉,學起來是否容易

7. 語言使用是否方便,開發是否迅速


一般來講,依據項目的需要、人員能力,匹配語言的特性。

比如C++,性能最高,容易出錯,開發最難,對人員要求也更高。Perl的功能比Shell強,但是要求系統上必須有Perl才行,而shell總會有。


0. 現有系統的集成。

1. 程序的目標平台。

2. 程序的應用領域。

3. 團隊的熟練程度。


在軟體開發時,選用編程語言的標準是選擇特定領域的最適合的語言

  1. 比如說要做一個很炫的web頁面,這個時候如果你想用C++,C,Java而不是javascript,coffeescript必定是費力不討好。
  2. 在比如說就在小小的實驗室里做圖像處理相關演算法的研究,這個時候非要用C/C++/Java不用MATLAB一樣是費力而不討好。
  3. 再比如Linux內核開發,最適合的就是C,你想用Java就是得被人噴。
  4. 再比如伺服器運維寫個監控或者自動化測試腳本,你要是用C、Java、C++來寫,菜鳥都知道你比他還菜。
  5. 再比如說開發一個網站的後台,有用java的有用C++的有用Python/Ruby/Php的,這裡區別在哪裡?就是你的需求,騰訊百度這種機器數非常多的用java/C++代碼寫一次上百台機器在跑。搞個小網站人力有限還用Java/C++開發那就是坑爹坑團隊。

比如為什麼用java而不用c++,為什麼用perl而不用shell

首先要明確開發的東西是什麼? 是哪個領域的。Android的可以用java和C++,但介面的支持程度應該是有區別的。比如Hadoop 是用Java寫的,但也能用其他語言寫MapReduce程序但是對介面的支持程度是明顯有區別的。所以開發Android/Hadoop這種就應該儘可能用Java。


既然是菜鳥,聽你們老大的就行,有什麼不明白的問他去。


你會


主流的編程語言包括C語言、Java語言、C#、C++等多種語言,多達十幾種編程語言。不同的軟體開發技術所需要的編程語言也是不同的,所以選擇技術方向很重要,對於剛剛接觸編程語言的人來說,很可能還沒有明確的技術方向,這樣的情況下,建議先從基礎的C語言或者Java語言開始入門,作為基礎語言,大多數的主流的高級編程語言都是以這兩種語言為基礎演變而來的。掌握了基礎語言,對以後的學習有很大的鋪墊作用。


適合

也就是實惠,省時省力收益高。

我想就是這個目的吧


看項目需要、團隊需要和平台支持。

其次是現成可用資源的多寡,比如各種可以用的第三方庫等等。

再其次就是老子喜歡用的,順便說一下其實我當初並不喜歡PHP,但時至今日用什麼語言早就懶得計較了。。。


甲方沒告訴你,項目經理也會告訴你的...


如何選擇入行語言


推薦閱讀:

BAT、華為網易等大公司軟體開發職位要求的計算機網路基礎和資料庫知識,相關書籍有哪些?
如何清晰定位目標,並高效的寫一個工具,既不會和github重複,有自己的特點,從而不是造輪子?
如何看待每天上班十二小時,公司領導依然覺得員工不夠努力認真?
作為程序員、技術更重要還是創意更重要?
技術轉管理有什麼經驗談?

TAG:軟體 | 軟體開發 | 編程語言 | 編程 |