{eval=Array;=+count(Array);}
c語言是不是世界上最好的編程語言?答案肯定是否定的。
c語言真的永遠不會過時嗎?答案當然也是否定的。
任何東西,沒有最好之說,只有最適合之說。
一、c語言的最大優勢是效率。提起效率,其實效率最高的語言是匯編語言,但是匯編語言是機器語言,不符合人類的使用習慣。所以綜合編程效率和運行效率來看,c語言就是首選了。
然而,是不是在任何情況下,我們都對執行效率這么苛刻呢?
當然不是了。
在嵌入式系統里,比如像智能手表、針孔攝像頭等,由于體積、能耗和硬件資源的限制,我們對代碼的運行效率比較苛刻(這樣才能能節省內存和cpu,從而節省成本)。所以我們使用c語言,就是最合適的。
二、但是在pc系統或者服務器系統里,尤其是隨著硬件價格成本的不斷降低(請參考摩爾定律),我們對代碼的運行效率不那么苛刻了。反而隨著軟件復雜度的提升,我們對代碼的編程效率和代碼的集成度有了更高的需求,而這些卻都不是c語言的強項,這個時候面向對象語言,比如java會更加合適。
所以,綜合編程語言的發展歷史,從來沒有也不會有一款編程語言永遠都不會過時。因為社會在發展,有些制約因素在以前是制約因素,現在可能就不是了,那么所謂合適的主體也就變了。c語言在過去的幾十年里一直興盛不衰,但是并不意味著以后不會消亡。我們看到隨著嵌入式設備的和web化趨勢的結合,golang語言開始嶄露頭角,在一些領域慢慢替代c語言了。相信在未來,開發語言會不斷的進行進化,進化出符合當前需求的新的開發語言。
是不是最好的語言?俗話說,文無第一,所以也不存在最好的語言,只有最合適某些領域的語言。
永遠不會過時?計算機出現才幾十年,現在任何的語言、設計,都遠遠談不上永遠。一定會有過時的一天。
但是,我們可以說,C語言是最經典的流行語言。從1970年代發展到現在,足夠經典,也足夠優秀。因為:
C語言方便、高效的完成了對計算機體系結構的抽象。而從1970年代到現在,計算機底層的體系結構并無巨大變化
C語言與UNIX系統構成了良好的共生關系。而UNIX及類UNIX系統到現在仍統治整個計算機界(Linux, macOS, Android, iOS等等,連Windows都號稱POSIX兼容)
C語言是互聯網TCP/IP編程的原生語言,很多基礎協議內容如socket,都是基于C實現,也適合C實現。而TCP/IP正統治整個網絡
C語言編譯器容易實現,對一個新CPU,可以迅速實現對應的C編譯器,移植成本低。現在大量的MCU都實現且僅實現了C編譯器
小結一下:
C語言雖然談不上最好,也談不上永不過時,但在與硬件系統接近的領域,如操作系統、驅動程序、MCU編程等領域,C語言是最適合的,并且在硬件底層未發生巨大變化的情況下,仍會具備強大的生命力,是一個值得花時間學習的語言。
首先,C語言是世界上最好的編程語言,它是其他的編程語言需要膜拜的編程語言,它是編程語言世界“神一樣”的存在,永遠不可能過時,因為它是指引初學者學習編程語言的“燈塔”。
其后任何的編程語言,都有C語言的身影。它們出現,由于時間的推移和應用的特殊需要,C語言搭建的家園必須擴建,但是它們的基石離不開C語言,至少擺脫不了C語言的影子。
C語言是最接近底層(匯編語言)的編程語言,它編譯后的效率極高。
C和C++語言都有指針,特別是函數指針,而其他高級語言極力反對的就是指針的存在。
有些編程語言的崛起就是以指針為攻擊對象而吸引眼球的。
在嵌入式領域,中斷向量實際就是函數指針。
C語言的函數指針和結構及聯合,構成了完美的“COM接口技術”,故在嵌入式領域,C/C++編程語言是其他任何編程語言無法取代的。
菜農認為,沒有指針的編程語言,就別在嵌入式領域混了!
如圖所示,菜農在2003年在PIC上用宏匯編實現的“HPL語言”(早已完美地應用到產品上),它也跑不出C語言的影子!
菜農從1981年就開始用匯編語言,BASIC,TC,BC,DBASE,FOXBASE,VB,VC++,FOXPRO,BC++,DELPHI,CVI,mysql,JAVA,C#,html,css,js,VB腳本到如今的PHP,也在2006年學過python,也看過QT……總之菜農用過、學過和看過幾乎所有流行的編程語言。
不請自來,作為一名長期使用C語言進行開發的老司機,來回答一下這個問題。
答主本人從2000年開始接觸使用C語言,那還是486計算機還是天價的時代,上一次計算機課和過年一樣興奮。迄今已經近20年的時間,很多其它語言有的衰落了,有的起來了,有的是起起落落。
像pascal、basic、fortran等等,現在有的學生可能連聽說過都沒有,現在幾乎已經消失了,像C/C++/java/python/php/javascript等等都是經過大浪淘沙的勝利者,尤其是C語言,生命力是最頑強的。因為幾乎所有的計算機系統底層都是用C語言開發,尤其是linux/unix以及其衍生系統都是以C語言為主的操作系統,windows系統也是如此,只不過微軟花了大價錢開發了VC,但是還是以C語言為基礎的封裝的。
后來的嵌入式操作系統更是離不開C語言,所有嵌入式的BSP都是以C語言編程的,固件庫也是用C語言封裝的。包括已經一統手機天下的android操作系統,所有的driver層還必須是C語言開發,因為android的底層就是linux,android不過是在linux上開發優化了java虛擬機,然后用java語言開發了UI庫。其實嚴格來說android并不是新的操作系統,而是一個適用于手機的UI庫。
正如一個城市建筑群,所有建筑的地基都是用C語言打下的,你能把地基丟掉嗎,顯然是不行的,C語言青春永駐也是自然而然的事情。
答案是:不會,上面已經說了,C語言是可以直接和硬件驅動語言,是所有操作系統的基礎。除此之外,C語言的效率是除匯編語言之外效率最高的語言,即使目前計算機的算力已經非常廉價的今天,在某些要求苛刻的關鍵計算任務上,首先仍然是C語言,甚至有時使用C語言有時并不是完全因為效率,而是因為可控。高級語言由于封裝了操作系統的某些特性,比如線程安全、內存管理等等。這些高級特性再某些時候運行結果可能是未知的,比如有可能內存分配失敗,線程得不到及時調度等。對于實時性要求比較高的場景,這些不可預知的問題都是致命的。而C語言的簡單直接,就顯得格外重要了。
即使不斷誕生新的語言,有一部分任務采用其他語言完成,但是和底層硬件打交道仍然離不開C語言,如果你打算在driver層面或者從事嵌入式開發謀一份工作,那就毫不猶豫的擁抱C語言吧,如果你是高手,高薪工作那都不是事兒。
如果您有什么不同意見,歡迎留言討論。
C與言是不是最好的編程語言這個不好說,但是在可預見的未來是不會過時的。
這世上有很多優秀的編程語言,C語言,C++語言,Java,C sharp等,每種語言都有自己的特點和使用場景,也都有自己的缺點和無法彌補的遺憾。要說哪種編程語言是世界最好的編程語言這個問題是沒有意義的。
C語言不一定是最好的編程語言,但它是一個不可被替代的編程語言,它的許多精髓仍然被其他的編程語言借鑒著!學好C語言吧!
問一種語言是不是世界上最好的編程語言,實際上這種問法是不恰當的。C語言也好,Basic語言也好,或者是Python語言也好,不存在好與不好之說,只能說哪個更適合你,哪種編程語言更擅長哪種領域而已。
如對于C語言,應該說是一種比較重要的、比較基礎的編程語言。如果你以后的工作方向更側重于硬件方面(如單片機開發)、操作系統底層通信開發、復雜信號處理算法等等方面,那學習C語言是確實比較合適的。C語言是一種編譯型語言,運行效率比較高,在這些領域更合適些。
但C語言的的缺點也比較明顯,相對于Python等動態類型的編程語言來講,它入門相對較大,自己在學習過程中必須要有足夠的耐心、恒心,多多練習、多多調試才能積累更多的編程經驗,得心應手的解決實際的工程問題。
在C語言是否會過時方面,應該也不存在過時之說,各種編程語言的編程思想方法(如程序結構都有順序、循環、選擇等結構,數據結構的組織)等思路方面都是相通的。學好C語言,對于你將來學習第二種編程語言肯定是有好處的,能夠幫助你更快的學習理解其它的編程語言思想,會有極大的促進作用。
直接從數據來看,TIOBE公布了5月編程語言的排行榜,C語言時隔5年重回第一。
首先,C語言是編程語言世界中“神一樣”的存在?,F如今市面上大多數編程語言都或多或少的包含C語言的身影。C語言是最接近底層的編程語言,編譯后的效率極高。C語言有指針,特別是函數指針,中斷向量實際就是函數指針。
C語言的函數指針和結構及聯合,構成了完美的“COM接口技術”,在嵌入式領域,C/C++是其他任何編程語言無法替代的。如果語言沒有指針,那在嵌入式領域是非常難生存的。
如果你要懂得C語言,那必須要懂得程序設計的思想,想真正學會程序的設計必須與數據結構打交道。如果初學者從Java或者VB入手,基本上很難理解如何構造數組、鏈表、樹、圖等結構,這些東西比較容易和封裝、繼承等概念沖突,反觀C語言則可以清楚明白的表示。只有真正理解數據結構,才可以體驗程序設計的思想和算法精髓。
所有包含微處理器的設備都支持C語言,從微芯片到手機都可以通過C語言推動。C語言是一個比較少見的應用領域極為廣泛的語言。所有的系統平臺都支持C語言,所有的應用程序也都可以由C語言來開發。
1.C語言可以讓你更好的了解計算機。
2.設備驅動程序和操作系統只能用C語言編寫。
3.微控制器程序的編寫。
4.相較于其他編程語言,在實現相同功能的前提下,C語言所需要的代碼更少,運行效率更快。有時候,你程序所需要的速度,只有C語言可以完成。
5.幾乎所有高級編程語言都是以C語言為基礎,所以學習過C語言,在學習其他編程語言時會簡單很多。
6.C語言的存在時間很長,使用團體非常廣泛并且有大量的現成代碼可以利用。這就使你能在過去程序的基礎上,快速進行更新。
7.C語言是開源組織的語言。Linux就是用C語言編寫的,Linux的功能有多強大,這個我不多贅述。
8.C語言是唯一一個闡述指針本質的語言,C#和Java跳過了指針,但是不可否認的是,指針卻是讓C語言更加強大。
如果你是計算機專業的學生,幾乎各大高校入門的第一種語言就是C語言。當然也會有以C++或者Java入門的。正經的說,沒有一門語言可以被稱為最好的編程語言,之所以會有這么一說,多半都來自程序員間的囧談。IT行業,你適合的,對你來說就是最好的。
其次,C語言會不會過時,這個不會的。主要從兩個方面聊聊:
第一:為什么更多的搞笑采用C語言作為入門語言?并不是說C語言簡單(現在大部分程序員沒有多少敢說精通C語言的),而是C語言可以更快的帶你進入編程世界,了解編程的常規思維方法。C語言是一門面向過程語言,相對面向對象而言,很多邏輯可以看得更清晰,不至于對于初學者而言太過于抽象。從C語言學到的概念理論,也都可以很快的套用到其他編程語言。比如判斷、循環、函數、數據結構等等。
第二:大家都知道C語言是一門底層語言,略高于匯編語言之上,低于Java/Python等高級語言。C語言的存在就是更方便的銜接硬件和軟件。比如電腦開機,從按下電源按鈕到屏幕顯示開機Logo,這個階段運行的絕大部分程序都是C語言(早些時候更多的是匯編)。換言之,C語言服務的行業更多的是制造業,制造業雖然說不如互聯網那樣讓人眼花繚亂,但是也不可或缺。沒有制造業,何談互聯網。
如果你想入門編程,還是先想好自己的方向。C語言多掌握一些,甚至你會覺得很多問題你都會有更深的理解。比如變量存儲、對象生存期等等。
c語言永遠不會過時,為什么呢?要從我們解決問題的思維方式和方法上來看。人類的思維方式和方法基本原理都一樣,都是通過抽象,分類,然后按照一定的步驟去執行。實際這就是計算機里對程序的定義。而c語言基本覆蓋了這些,并且簡潔,優美。它是我們解決問題的基本語言,什么都可以做。
而大家看到的很多高級語言,實際上他們更注重的是應用,讓開發人員能更快,更方便的去開發應用。大家知道,應用是在不斷變化的,也是在不斷的被淘汰,而基本原理是不會變的,學會c語言,可以做到以不變應萬變。
第一、在沒有界定范圍的時候,沒有人能夠說什么是最好。每一種語言出現都有它出現的應用場景,在那個時代,那個場景下,那個語言才能說最好。如果你需要一個效率極高的語言,那肯定就是C語言或者匯編。如果你要搞嵌入式開發,那肯定也是C語言,java和C#沒法在嵌入式系統上運行,所以他們在這方面不存在好不好。
第二、在現在看來,C語言是永遠不會過時的語言。起碼在馮諾依曼機的時代是這樣的,我們也沒有跡象能看出馮諾依曼機要被淘汰。
10
回答10
回答10
回答1
回答10
回答9
回答8
回答10
回答9
回答10
回答