C++適合做什麼?

編寫WINDOWS應用程序,用C#最好,編寫安卓應用,用JAVA最好,寫網站,用PHP最好。那麼C++適合用來做什麼?


對性能要求很高而且性能極大影響收益的程序。

就我所知,微軟等大公司的廣告實時推薦系統後端用的就是C++,為啥呢,因為廣告涉及到錢啊,每一毫秒都珍貴。

想想看,一個請求過來,問該顯示什麼廣告,處理這樣的請求能有多快就該有多快,如果300毫秒才返回一個結果,那用戶也許已經關閉網頁了,那還賺啥錢?功能上來說,當然也可以用Java、C#甚至PHP來實現,而且實現會容易得多,但是這些語言在運行時都沒準會因為垃圾回收的原因突然響應變慢了,即使一分鐘只有100毫秒會變慢,那就損失了1/600的利益,對公司來說,無法接受啊。

既然公司做的是大生意賺的是大錢,當然不在乎軟體開發多困難,多僱傭一些C++高手來開發就是了。

我個人很不喜歡C++這個語言(參看這個答案 程墨Morgan:為什麼我時不時會看到「珍惜生命,遠離 C++」? ),但是我依然承認,有的事情還真的只能用C++來寫,在此向飽受C++折磨的同行致敬。


後端的服務開發(不是web服務,而是業務應用服務),追求性能,以及與底層直接交互的能力。


  • 對性能要求高。
  • 規模又不太小。規模小了可以用C。
  • 不能接受不定期的大批量資源回收。否則可以用Java。


圖形代碼。包括OpenGL Direct3d這些東西

c++足夠底層可以直接與顯卡交互,在每一幀需要大量的計算的時候更需要選c++去解決。


感覺這個提問的重點不在標題,而在描述,這絕壁赤裸裸的宣戰啊


VC客戶端程序

為什麼說c#不適合做windows客戶端程序呢?因為c#這個逆天好用的語言雖然對程序員非常友好,但是到今天,用c#開發windows gui應用程序依然沒有一個完美的解決方案。uwp不支持win10以下,winform wpf脫離不開.net framework 。不要說40mb的運行時包不大,根本就不是大的問題,而是在有些客戶的電腦上(比如某些純凈版的win7)你的.net環境包是死活安裝不上的,什麼打補丁,註冊表大法統統不管用。

這才是為什麼目前國內大廠的vc軟體清一色使用c++開發的根本原因


當然是開發windos,開發c#,開發java,開發php啦


大規模的地形渲染和處理。

規模大用c語言不好掌控,地形處理運算量極大用其他的語言做不到實時。當你深入去了解一下c++實現了多高的運算效率時候,再去看py有種玩具的感覺(非引戰)


後端,伺服器開發。


C++廣泛應用於遊戲開發


底層驅動啊,與硬體直接打交道的那些。


編寫WINDOWS應用程序,用Lazarus最好,其次C++;編寫安卓應用,用JAVA最好,C++也能做但效率不高;寫網站,用JAVA最好,框架成熟IDE使用方便,其次才是PHP。

那麼C++適合用來做什麼?

1、操作系統,C為主輔以C++,例如Linux、Unix、Windows、ReactOS、嵌入式系統等;

2、高性能服務端,例如Node.Jst的底層網路庫LibUV,ICE及其他C++版中間件等;

3、其他

對個人來說,學一門語言的成本要遠低於從頭開始實現高性能庫,爭論哪門語言更高明沒什麼意義。

如果使用C++多年,已經形成了自己的框架,那麼在專業的場景中,用C++比用Java等其他語言更為方便,那麼C++就是最適合的。

但是因為C++不是解釋型的,那麼最好還是另選一門腳本語言搭配比較完美,比如Python、Lua之類,會方便靈活很多。


適合拿來寫Java,php,python


打ACM,目前還沒用C++做過什麼拿得出手的東西,就先寫這個吧。


無關性能(吐槽性能的怎麼不去吐槽虛擬機呢?),感覺C++的最大意義是,這是寫原生代碼可以用到的最容易管理的語言之一。C#的指針再牛逼,也還是不及C++的簡潔與清晰,平台調用服務也始終有蛋疼之處,不然為何微軟會大費周章的搞個C++/CLI出來。至於為什麼不用更清晰的C,主要是,C的管理開銷已經開始呵呵了


哇,php這一句這讓我們這些用java寫後台的人情何以堪


推薦閱讀:

如果只讓你推薦一本 Python 入門書籍,你會推薦什麼?
產品經理和程序員如何才能和諧共處?
IT行業應屆生薪資那麼高,老員工都是怎麼想的?
程序員工作時被領導要求996真的很可怕嗎?
程序員有女朋友是怎樣一種體驗?

TAG:程序員 | 編程語言 | C |