99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

是時(shí)候退休C語言了嗎?

王尚岱 ? 來源:王岑王岑 ? 作者:王岑王岑 ? 2022-07-14 08:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

After almost a half-century of use, is it time for embedded developers to move on to a more modern language?

C 編程語言無疑是計(jì)算機(jī)科學(xué)中最成功的編程語言之一。C 最早出現(xiàn)在 1972 年左右,由貝爾實(shí)驗(yàn)室出來,由 Dennis Ritchie 創(chuàng)建。在過去 20 年中,C 被 TIOBE Programming Index 評為世界上最流行的兩種編程語言之一(參見圖 1)。它是嵌入式系統(tǒng)開發(fā)人員最流行的語言,用于近 80% 的嵌入式項(xiàng)目。經(jīng)過近半個(gè)世紀(jì)的使用,嵌入式開發(fā)人員是時(shí)候轉(zhuǎn)向更現(xiàn)代的語言了嗎?是時(shí)候退休 C 了嗎?

poYBAGLOkuaAK_8DAAQaVtr_v-k180.png

poYBAGLOkuaAK_8DAAQaVtr_v-k180.png


圖 1 – 過去 20 年編程語言的 TIOBE 編程社區(qū)指數(shù)排名。C 一直是排名前兩位的語言之一。

由于幾個(gè)原因,退休 C 并轉(zhuǎn)向更現(xiàn)代的編程語言的誘惑相對較高。首先,經(jīng)常受到科技公司高度追捧的入門級工程師幾乎沒有使用 C 的經(jīng)驗(yàn)。如今的大學(xué)課程專注于教授 PythonC++ 等現(xiàn)代語言。讓他們加快速度并獲得經(jīng)驗(yàn)可能需要大量的金錢和時(shí)間投資,而很少有公司對此感興趣。

Next, while very popular, the C programming language is dated. C doesn’t support modern programming concepts like classes and inheritance. If you compare the feature sets of modern languages like C++, Python, and Rust, the C language is starting to look like a dinosaur! The last time the C standard had new features added was 2011! The 2017 standard release only had technical corrections and clarifications, and the upcoming standard release expected in 2023 most likely won’t rock the boat either.

淘汰 C 看起來仍然很誘人,但是離開 C 有幾個(gè)問題。首先,C 對于接近硬件運(yùn)行的低級過程應(yīng)用程序來說是一種很棒的語言。它緊湊而高效。其次,高級工程師的語言根深蒂固。他們處于使用該語言數(shù)十年的地步,對學(xué)習(xí)和過渡到更現(xiàn)代的語言幾乎沒有興趣。最后,如此多的遺留庫和代碼庫使用 C,我們不能放棄它們。移植遺留代碼的成本太高了!

看來我們有點(diǎn)進(jìn)退兩難了!作為一個(gè)行業(yè),我們應(yīng)該淘汰 C 以利用更現(xiàn)代的語言和技術(shù),但是更改的時(shí)間和成本以及我們必須維護(hù)的遺留代碼量經(jīng)常阻礙 C 的淘汰。需要更現(xiàn)代的技術(shù),同時(shí)保持我們從 C 中獲得的好處,可能會使我們遠(yuǎn)離使用單一的主導(dǎo)語言,并迫使我們依賴多種語言來完成工作。

使用其他語言來支持 C 可能已經(jīng)發(fā)生。例如,下面的表 1 顯示了幾種語言在 TIOBE 指數(shù)中的排名。過去,一兩種語言主導(dǎo)著計(jì)算機(jī)科學(xué)。今天,前四種語言的評分都在 10% 左右。我相信這表明單一主導(dǎo)語言的終結(jié)。相反,開發(fā)人員將利用多種語言來實(shí)現(xiàn)他們的最終目標(biāo)。

排行 評分
1 Python 12.20%
2 C 11.91%
3 爪哇 10.47%
4 C++ 9.63%
27 0.52%

表 1 – 通常與嵌入式軟件開發(fā)相關(guān)的編程語言列表(來源:TIOBE 指數(shù))。注意:這些評級不代表嵌入式軟件的使用,僅代表一般計(jì)算機(jī)科學(xué)行業(yè)的使用。

如果你仔細(xì)觀察這個(gè)行業(yè),這已經(jīng)發(fā)生了。我看到一些公司正在過渡到使用仍然擁有大量 C 庫的 C++。我看到一些公司嘗試使用 Rust,但依賴他們久經(jīng)考驗(yàn)的 C 庫作為構(gòu)建的一部分,反之亦然。不幸的是,或者也許,根據(jù)您的觀點(diǎn),幸運(yùn)的是,這意味著 C 將在未來無限期地繼續(xù)成為主導(dǎo)語言。

是時(shí)候退休 C 了嗎?這是一個(gè)簡單但復(fù)雜的問題。我認(rèn)為是的,但這取決于你在做什么。您可能不想在 8 位微控制器上使用 C++ 或其他語言。如果您正在使用機(jī)器學(xué)習(xí)或開發(fā)連接設(shè)備的尖端 32 位微控制器工作,C 以外的語言將為您提供成功所需的額外工具。切換語言的時(shí)間和成本可能太高。我的經(jīng)驗(yàn)法則是,如果是新設(shè)計(jì),請從現(xiàn)代語言開始。如果是遺留設(shè)計(jì),請利用遺留代碼并用現(xiàn)代語言編寫新代碼。

你怎么看?是時(shí)候退休 C 了嗎?

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141728
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36649
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    主流的 MCU 開發(fā)語言為什么是 C 而不是 C++?

    、1MROM是標(biāo)配?多數(shù)時(shí)候咱打交道的,是stm8這種8kRAM的“小矮個(gè)兒”,stm32f1的32kRAM就算是“小康家庭”了。就這么丁點(diǎn)兒地方,C語言打個(gè)轉(zhuǎn)都
    的頭像 發(fā)表于 05-21 10:33 ?443次閱讀
    主流的 MCU 開發(fā)<b class='flag-5'>語言</b>為什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C</b>++?

    單片機(jī)c語言編程實(shí)例大全

    單片機(jī)c語言編程實(shí)例大全_18
    發(fā)表于 04-30 16:11 ?3次下載

    深入理解C語言C語言循環(huán)控制

    C語言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進(jìn)入無限循環(huán),C語言提供了多種循環(huán)控制語句,如break、continue和
    的頭像 發(fā)表于 04-29 18:49 ?1144次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>C</b><b class='flag-5'>語言</b>循環(huán)控制

    C語言的歷史及程序介紹

    電子發(fā)燒友網(wǎng)站提供《C語言的歷史及程序介紹.pdf》資料免費(fèi)下載
    發(fā)表于 04-09 16:10 ?0次下載

    51單片機(jī)C語言學(xué)習(xí)筆記

    c51語言快速入門
    發(fā)表于 03-24 14:04 ?3次下載

    C語言程序設(shè)計(jì)教程第4版第8講:指針

    C語言指針講解
    發(fā)表于 11-20 14:10 ?6次下載

    C語言指針學(xué)習(xí)筆記

    本文從底層內(nèi)存分析,徹底讓讀者明白C語言指針的本質(zhì)。
    的頭像 發(fā)表于 11-05 17:40 ?641次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指針學(xué)習(xí)筆記

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計(jì)算機(jī)之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?1229次閱讀

    tlv320aic26用的時(shí)候總有滴滴聲,是編程哪里錯(cuò)了嗎?

    tlv320aic26 用的時(shí)候總有滴滴聲,是編程哪里錯(cuò)了嗎?
    發(fā)表于 11-01 07:44

    C語言C++中結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語言C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?770次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨(dú)特的優(yōu)勢和特點(diǎn),適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺性、性能、應(yīng)用領(lǐng)域等多個(gè)方面對C
    的頭像 發(fā)表于 10-29 17:31 ?1075次閱讀

    C語言與其他編程語言的比較

    C語言作為一種歷史悠久的編程語言,自其誕生以來,一直在軟件開發(fā)領(lǐng)域扮演著重要角色。它以其高效、靈活和可移植性強(qiáng)的特點(diǎn),成為了系統(tǒng)級編程的首選語言之一。
    的頭像 發(fā)表于 10-29 17:30 ?1080次閱讀

    C語言關(guān)鍵字--typedef

    C語言關(guān)鍵字使用方法學(xué)習(xí)指南!
    的頭像 發(fā)表于 10-07 12:44 ?614次閱讀

    hex文件如何查看原c語言代碼

    直接將 .hex 文件轉(zhuǎn)換回原始的 C 語言代碼是不可能的,因?yàn)?.hex 文件是二進(jìn)制文件,它包含了單片機(jī)程序編譯后的機(jī)器碼,這些機(jī)器碼與原始的 C 語言代碼在結(jié)構(gòu)和表達(dá)上存在巨大的
    的頭像 發(fā)表于 09-02 10:37 ?4939次閱讀

    C++語言基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《C++語言基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?10次下載