现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?
?
C/C++會不會被時代淘汰?這個問題跳過了一步,關鍵是這個問題:
C/C++有哪些其它語言難以代替的特殊之處?
1、對實現細節的控制粒度
一般我們常說:C/C++具有較高的執行效率。其實這句話不是特別準確,有時候它們并不一定效率高。換句更恰當的話說:
C/C++,特別是C語言,控制粒度很細,與機器語言有著相當穩固的對應關系。
?
如果大家對C/C++感興趣的話,可以加一下我們的學習交流Q群:637 ?935 ?295,免費領取一套學習資料和視頻課程喲~
也就是說,高手可以通過C語言寫出完全按照自己的想法運行的程序。從C代碼可以直接對應到匯編語言,如果你對C語言有足夠的了解,代碼在運行時實際做了哪些事情,是相當明確的。
C/C++甚至能指導編譯器哪些變量優先放在寄存器,哪些函數內聯,哪些變量要避免多線程搶奪,均可以進行非常細致的控制。
與此相反,Java、Python等高級語言在執行時會跨越很多層次。高級語言源代碼 ->中間語言 -> 虛擬機執行 -> 分解執行流程 -> 實際執行的一系列操作。這其中的每一步都不是那么簡單,最普通的一句代碼:
c = a+b
會因為a或b的元方法,產生無數的執行可能性。除非仔細分析每一個細節,否則編程者對于最終代碼的執行邏輯是缺乏控制力的,也不可能進行匯編級別的優化。
總結來說,C/C++,特別是C語言,有著極為精細的控制粒度,而更高級的現代語言一般無法進行如此細致的控制。
2、由于極高的控制力,在某些領域難以被代替
需要程序員壓榨每一分硬件性能的地方并不多,特別是現在的服務器核心數很多,只要能充分利用多核心,每個核心沒有完全挖掘也是可以接受的。
一般來說,需要壓榨硬件潛力的領域有:
1、操作系統。因為每個人每天都要用操作系統,操作系統(特別是內核和驅動層),對優化要求非常高。例如如果對Windows磁盤讀取優化1%,幾乎全世界電腦用戶都會受益1%。
2、游戲引擎。游戲是硬件進步的原動力,大型游戲開發商總是在盡力壓榨每一分硬件性能,在60幀以上無止境優化視覺效果、動態效果。C++一直以來都是編寫游戲引擎的首選語言,而且幾乎是唯一語言。(游戲開發可以用各種技術,但引擎本身一般是用C++編寫)
3、嵌入式程序。由于單片機的硬件性能較弱,存儲空間極小,必須編寫專用的程序代碼,使用高級語言可能導致延遲過大,或容量超出限制。未來“萬物互聯”的潮流,可能會引發超微型嵌入式系統的再度復興。
4、加密與安全方向。大部分加密/解密模塊,與操作系統一樣,每個人每天都會頻繁使用,所以用C/C++來深入優化是必須的;另外,很多軟件硬件漏洞,例如常見的內存溢出漏洞,也需要編寫很精巧的C/C++代碼才好利用漏洞,才能編寫木馬或者直接入侵系統。
?
總之,C/C++的不可替代性是由它本身的特點決定的。而且目前來看,這種不可替代性在未來幾年、幾十年也依然不會有變化。
總結
以上是生活随笔為你收集整理的现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安顺计算机二级考试,安顺市2020年3月
- 下一篇: 北理工 管理系统计算机仿真作业,20秋北