而其他語言完全實現不了或者效果很差?
C語言,在開發最底層應用的時候,有不可替代性。而C++則屬于結合底層和上層技術的語言,不可替代性沒有那么強了。下面探討一下這個問題。
底層應用嵌入式單片機,操作系統,通信等底層應用,一般使用C會更好,或者直接使用匯編語言。
高性能及服務器應用高性能服務器,游戲渲染等偏底層的應用,或者對性能要求很高的應用,用C++的比較多。
當然這個層面沒有那么絕對了,比如Java在服務器領域也使用非常廣泛,新貴Go語言也在服務器領域嶄露頭角,甚至JavaScript借助于node也在后端應用發力。
同樣在游戲領域,也有基于C#的unity跨平臺游戲引擎,也非常出色,騰訊的王者榮耀就是使用C#開發的代表作。
前端上層應用再往上層應用走,使用C或者C++的就很少了。
Android是Java的天下,當然Google的flutter也有前景。
iOS是object C的天下,后來者Swift也在蘋果的強勢推動下,使用得越來越多了。
至于桌面端,基本上是C#和Java的天下了。
但是有一個例外,就是Qt,這個對跨平臺支持最全的框架,是基于C++的。從嵌入式到移動平臺,再到桌面平臺,Qt基本上可以通吃。不得不說,在需要支持多平臺的時候,Qt是一個不錯的選擇。
web技術但是目前最上層的前端應用,還是html,css,JavaScript三劍客的天下。web前端應用就不說了!現在還有很多基于web技術的跨平臺框架,可以同時開發桌面端,移動端應用,這其中的佼佼者有react native,week等。
這類框架的優勢在于技術棧相對單一,掌握好前端技術,就可以做各端的應用開發了,不需要學習新的技術。比如flutter,也能開發多端應用,但是需要學習dart語言,需要熟悉flutter框架。所以學習flutter的性價比就沒有那么高了。
可能有人擔心web技術的性能!其實這個也屬于多余的。web技術非常活躍,發展迅速。性能這塊,隨著webgl技術的成熟,已經完全不輸本地應用了。
另外現在有一種新技術,Web Assembly,可以很好的彌補JS的短板。目前各大瀏覽器,也在積極的推進該技術,同時有很多基于該技術的應用在不斷產生。
而且前面提到JavaScript(nodeJS)在服務器端應用也很廣泛,而且性能不俗,長期發展,不排除JS一統天下啊(開個玩笑)!
總結總的來說,編程語言這個領域,使用什么語言或技術,沒有那么絕對!
另外軟件行業,很多東西都是分層結構的,在不同層次有不同的編程語言或者相關技術。
針對不同層次的應用,選擇合適的技術,才能事半功倍。千萬不要出現殺雞用牛刀的情況,比如說用C語言開發網頁!