国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

撼不動的C語言!

譯文
開發 后端
過去50年以來,已經涌現出數十種新語言,這些后輩語言的表現又如何?其中一些正在挑戰C的統治地位,而另一些正在不斷蠶食其地位。

作者 | Serdar Yegulalp

譯者 | 布加迪

策劃 | 云昭

數十年來C語言一直可謂是編程界的扛把子。Linux、Windows、Mac和許多其他操作系統的內核都能看到它的身影。C語言幾乎可以寫任何程序,在編程語言中的地位,德高望重。它甚至可能是有史以來最具影響力的語言。它的語法啟發了許多其他語言,包括Cpp、Csharp、Java、JavaScript、Go、Perl等等。

自1972年以來,C編程語言一直是構建軟件的主力語言之一。但是過去50年以來,已經涌現出數十種新語言,這些后輩語言的表現又如何?其中一些正在挑戰C的統治地位,而另一些正在不斷蠶食其地位。

撼山易,撼C語言難!在性能、裸機兼容性和普及性方面幾乎沒有語言能夠擊敗C。不過仍有必要看看C與一些主流語言相比表現如何。本文介紹了它與C++、Java、C#、Go、Python及最新的語言Carbon的詳細對比。

C與C++

C經常與C++相比較;顧名思義,C++是作為C的擴展而創建的。C++和C之間的差異很大,甚至可以說差異過大。

雖然C++在語法和方法上仍然酷似C,但提供了許多有用的功能,這些功能是C本身并不直接隨帶的:命名空間、模板、異常和自動內存管理等。一般,需要頂級性能的項目(比如數據庫和機器學習系統)通常用C++編寫,利用這些功能最大限度地發揮系統的性能。

此外,C++的步子比C邁得更大。即將發布的C++ 23帶來了更多的功能,包括模塊、協程和模塊化標準庫,以加快編譯和更多的代碼。相比之下,C標準的下一個計劃版本C2x卻沒增加多少功能,而是專注于保持向后兼容性。

問題在于,C++中的所有優點也可能是缺點。軟件功能使用的C++越多,引入的復雜性就越大,結果處理起來就變得越困難。如果開發人員只關注C++的一小部分,可以避免它的許多陷阱。甚至一些公司想要完全避免這種復雜性,比如說,Linux內核開發團隊避免C++,雖然該團隊將Rust視為未來增添內核功能的語言,Linux的大部分仍將用C語言編寫。

C與Java

Java在幾十年間依舊是企業軟件開發的主力軍,也是整個開發界的主力軍。Java語法大量借鑒了C和C++。不過與C不同,Java默認情況下并不編譯成本機代碼。相反,Java的JIT(即時)編譯器編譯Java代碼,以便在目標環境中運行。JIT引擎根據程序行為在運行時優化例程,從而實現了提前編譯的C無法實現的多種優化。在適當的情況下,JIT編譯的Java代碼可以接近甚至超過C的性能。

而且,雖然Java運行時環境自動執行內存管理,但可以繞過這種處理。比如說,Apache Spark使用Java運行時環境的“不安全”部分來直接分配和管理內存,并避免JVM垃圾回收系統的開銷,從而部分優化了內存中處理。

Java奉行“一次編寫,隨處運行”的理念,也使Java程序可以在對目標架構基本不需要調整的情況下運行。相比之下,雖然C已經移植到許多架構上,但任何特定的C程序可能仍需要定制,才可以在Windows與Linux上正常運行。

這種可移植性和強大性能的結合,加上龐大的軟件庫和框架生態系統,使Java成為構建企業應用程序的首選語言和運行時環境。

Java比不上C的一個方面是,C從不旨在競爭:它靠近硬件運行,或者直接與硬件打交道。

C代碼被編譯成機器代碼,機器代碼由進程直接執行。Java被編譯成字節碼,字節碼是中間代碼,JVM解釋器隨后將它們轉換成機器碼。此外,雖然Java的自動內存管理大體上是優點,但C更適合必須最優化使用內存資源有限的程序,因為它的初始占用空間很小。

C與Go

Go語法很大程度上歸功于C,作為分隔符的花括號和以分號結尾的語句只是兩個例子。精通C的開發人員通常可以直接上手Go,即使考慮到新的Go功能(比如命名空間和包管理)。

確保代碼可讀是Go的指導設計目標之一:讓開發人員在短時間內盡快上手Go項目,并熟悉代碼庫。C代碼庫可能很難分析,因為它往往變成某個項目和團隊所特有的一大堆宏指令和#ifdefs。Go的語法及內置的代碼格式化和項目管理工具旨在防止這種根本性問題。

Go還有諸如goroutines(協程)和channels(通道)之類的附加功能,這些語言級工具用于處理組件之間的并發和消息傳遞。C需要這類功能由手工控制,或者由外部庫提供,但Go直接就提供,因此構建需要它們的軟件要容易得多。

Go與C最大的底層區別在于內存管理。默認情況下,Go對象可實現自動管理和垃圾回收。對于大多數編程工作來說,這非常方便。但這也意味著任何需要確定性處理內存的程序都將更難編寫。

Go確實包括unsafe包,用來避開Go的一些類型處理安全機制,比如讀寫使用Pointer類型的隨意內存。但unsafe附有警告:用它編寫的程序“可能無法移植,且不受Go 1兼容性指導準則的保護。”

Go非常適合構建命令行實用程序和網絡服務等程序,因為它們很少需要這種細粒度的操作。但是低級設備驅動程序、內核空間操作系統組件以及其他需要嚴格控制內存布局和管理的任務用C來創建再好不過了。

C與Python

如今只要一談起軟件開發,Python似乎總是避不開。畢竟,Python是“第二好的語言”,無疑是用途最廣泛的語言之一,擁有成千上萬的第三方庫。

Python強調更注重開發速度而不是執行速度,這也是它與C最大的不同之處。一個程序可能需要一個小時才能用另一種語言(如C)組裝起來,但僅需幾分鐘內即可用Python組裝起來。另一方面,該程序在C中執行可能需要幾秒鐘,但在Python中運行可能需要一分鐘。

一個好的經驗法則是,Python程序運行起來通常比C程序慢一個數量級。但是對于現代硬件上的許多任務來說,Python足夠快了,這是它得到采用的關鍵。

另一個主要區別是內存管理。Python程序完全由Python運行時環境管理內存,因此開發人員不必擔心分配和釋放內存方面的細節。但開發人員的輕松是以“運行時性能”為代價。

編寫C程序需要嚴格注意內存管理,但由此生成的程序對純粹的機器速度而言卻堪稱標準。

談完區別,二者在底層卻有深層的聯系:參考Python運行時環境是用C編寫的。這讓Python程序可以包裝用C和C++編寫的庫。第三方庫組成的Python生態系統有相當一部分(比如用于機器學習的第三方庫)都以C代碼作為核心。在許多情況下,這不是用C還是用Python的問題,而是涉及應用程序的哪些部分應該用C編寫、哪些部分應該用Python編寫。

如果開發速度比執行速度更重要,而且如果程序的大部分高性能部分可以被隔離到獨立的組件中(而不是分散在整個代碼中),那么純粹的Python庫或結合Python庫和C庫都是比單獨的C更好的選擇。但在其他方面,C仍占統治地位。

C與Carbon

C和C++的另一個最近的競爭者是Carbon,這是一種目前正在大力開發的新語言。

Carbon旨在成為C和C++的現代替代品,它有簡單的語法、現代工具和代碼組織技術,以及解決C和C++程序員長期面臨的問題的方案。它還旨在提供與C++代碼庫的互操作性,因此可以增量遷移現有代碼。這一切都受到歡迎,因為與最近開發的語言相比,C和C++在過去的工具和流程顯得很原始很簡陋。

那么有何缺點呢?目前,Carbon是一個試驗項目,尚未準備好用于生產環境。

甚至沒有一個切實可行的編譯器,只有在線代碼瀏覽器。Carbon還需要一段時間才會成為C或C++的實用替代品,如果真可以替代的話。

原文鏈接:

??https://www.infoworld.com/article/3402023/why-the-c-programming-language-still-rules.html???

責任編輯:薛彥澤 來源: 51CTO
相關推薦

2010-01-15 17:38:37

C++語言

2011-07-05 16:57:53

C語言

2011-07-05 17:07:14

C語言

2022-08-31 10:13:04

C語言代碼

2016-09-26 10:00:18

架構

2010-01-15 14:46:20

C++語言

2016-09-20 16:51:23

架構

2016-07-26 14:52:23

IT168

2011-01-05 11:12:34

C++

2010-01-22 10:26:40

C++語言

2011-05-31 13:41:00

C語言

2009-06-15 11:03:10

Java語言C#語言

2010-01-21 16:24:02

C++語言

2010-07-07 11:09:36

UDPClient

2021-11-11 15:12:21

C語言線程代碼

2010-01-22 15:30:36

C++語言

2022-07-14 16:35:11

C語言編程語言

2016-11-14 14:29:14

C語言

2021-12-16 06:52:33

C語言內存分配

2010-02-03 17:29:06

Python編譯
點贊
收藏

51CTO技術棧公眾號

欧美一级色片| 日本网站免费在线观看| 欧美亚日韩国产aⅴ精品中极品| 亚洲免费综合| 日韩理论电影中文字幕| 色偷偷偷在线视频播放| 免费看av大片| 杨幂毛片午夜性生毛片 | 人成在线免费视频| 久久av秘一区二区三区| 国产91精品久久久| 日韩av最新在线| 亚洲精品视频免费看| 日韩制服丝袜先锋影音| 你懂的亚洲视频| 日韩毛片免费看| 青娱乐极品盛宴一区二区| 美女18一级毛片一品久道久久综合| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国产在线高清精品| 2019中文字幕在线| 久久综合色88| 精品国产一区二区三区久久| 日韩免费视频一区| 在线观看中文字幕不卡| 欧美日韩免费区域视频在线观看| 欧美性xxxx极品hd满灌| 欧美日韩中文字幕日韩欧美| 日韩欧美福利视频| 在线观看成人小视频| 亚洲国产精品人人做人人爽| 国产剧情一区二区| av中文字幕一区| 97久久精品人人澡人人爽| 久久aⅴ国产紧身牛仔裤| 天堂久久久久va久久久久| 一本色道久久综合| 麻豆成人免费电影| 日本中文字幕一区二区视频 | 丁香婷婷成人| 成人午夜电影在线观看| 在线视频婷婷| 偷拍自拍在线看| 日本欧美在线视频免费观看| 4hu永久免费入口| 3344永久| 9色在线视频| 日本美女久久| 日韩国产一区二区三区| 一级欧洲+日本+国产 | 久久国产精品区| 日本亚洲天堂网| 久久精品一区二区三区av| 亚洲国产va精品久久久不卡综合| 国产午夜精品久久| 欧美视频日韩视频在线观看| 亚洲精品美女久久久久| 色综合久久天天综线观看| **亚洲第一综合导航网站| 久久香蕉视频网站| 成 年 人 黄 色 大 片大 全| 免费观看黄色网| 伊人成综合网站| 欧美激情网站| 日韩高清在线免费观看| 亚洲福利精品| 亚洲美女偷拍久久| 亚洲第一免费播放区| 91精品国产91久久久久久久久 | 日本在线免费中文字幕| 美女精品导航| 成人中文在线| 久久99精品久久久久久国产越南 | 中文一区一区三区高中清不卡| 色偷偷噜噜噜亚洲男人| 日韩成人av影视| 国产精品视频免费看| 在线视频观看一区| 欧美性xxxxx| 久久久久久久久久久国产| 99视频入口| 欧美成人精品一区二区三区在线看| 日本视频在线观看| 中文字幕av亚洲精品一部二部| 精品国产亚洲在线| 欧美精品制服第一页| 欧美自拍大量在线观看| 黄色动漫在线免费看| 最近高清中文在线字幕在线观看1| 日本不卡高清视频| 日韩av在线高清| 中文字幕校园春色| 国产成人免费在线观看| 国产激情视频一区| 在线视频1区2区| 伊人春色之综合网| 热久久久久久久| 91精品国产麻豆国产自产在线| 98视频在线噜噜噜国产| 最新中文字幕在线观看| 青春草在线免费视频| 欧美va天堂在线| 婷婷久久综合九色综合伊人色| 亚洲色图都市激情| 91p九色成人| 亚洲免费三区一区二区| 国产精品扒开腿做爽爽爽男男| 欧美日韩在线成人| 欧美18一19xxx性| 高潮精品一区videoshd| 欧美国产亚洲视频| 成人18视频| 日韩亚洲欧美视频| 精品无人乱码| 欧美男男gaytwinkfreevideos| 国产偷国产偷亚洲高清人白洁| 欧美日韩精品在线观看| 久久影视电视剧免费网站清宫辞电视| yellow视频在线观看一区二区| 久久午夜夜伦鲁鲁一区二区| 美女搞黄视频在线观看| 欧美va天堂在线| 亚洲三级在线播放| 国产一区二区三区直播精品电影| 青青在线视频免费| 黄色国产网站在线播放| 国产精品videossex| 香蕉久久国产| 午夜视频一区二区| 在线观看欧美日本| 国产精品久久久久国产a级| 欧美精品一区二区三区免费播放| 欧美精品日日操| 久久国产精品露脸对白| 亚洲国产成人91精品| 成人在线小视频| 狠狠操一区二区三区| 一区二区三区在线观看免费| 亚洲在线免费播放| 91精品国产沙发| 亚洲欧洲成人| 夜夜爽夜夜爽精品视频| 精品亚洲成a人片在线观看| 日韩欧美国产高清| 黑人一区二区三区| 亚洲超碰97人人做人人爱| 三级黄视频在线观看| 欧美日韩一区二区在线观看视频 | 91一区二区三区| 一区二区三区区四区播放视频在线观看| 麻豆精品在线看| 久久国产精品一区二区三区四区| 素人一区二区三区| 91啪亚洲精品| 91精品视频观看| 欧美视频在线视频精品| 精品日韩视频在线观看| 日韩精品 欧美| 免费精品视频| 国产欧美中文字幕| 亚洲大片精品免费| 日韩精品一区二区三区swag| 四虎影院观看视频在线观看| 日韩欧美亚洲成人| 欧美一区二区激情| 久久久精品性| 国产亚洲精品久久飘花| 亚洲第一中文av| 久久美女高清视频| 免费99热在线观看| 成人午夜亚洲| 亚洲激情视频在线观看| 久久国产情侣| 精品久久久久人成| 99久久久无码国产精品性色戒| 7777久久香蕉成人影院| 亚洲成色777777女色窝| 嫩草在线视频| 久久精品人人做人人综合| 香蕉视频在线网站| 欧美性少妇18aaaa视频| 4444在线观看| 国产成人一区二区精品非洲| 在线视频福利一区| 精品72久久久久中文字幕| 91精品国产99| 成人激情在线| 亚洲男人天堂手机在线| 小泽玛利亚视频在线观看| 999亚洲国产精| 欧美日韩成人精品| 久草在线新免费首页资源站| 国产精品久久久久桃色tv| 成人免费aaa| 夜夜亚洲天天久久| 成人免费黄色网页| 日韩一区二区麻豆国产| 精品中文在线| 国内成人精品一区| 美国成人xxx|