在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

是時候退休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 編程語言無疑是計算機科學中最成功的編程語言之一。C 最早出現在 1972 年左右,由貝爾實驗室出來,由 Dennis Ritchie 創建。在過去 20 年中,C 被 TIOBE Programming Index 評為世界上最流行的兩種編程語言之一(參見圖 1)。它是嵌入式系統開發人員最流行的語言,用于近 80% 的嵌入式項目。經過近半個世紀的使用,嵌入式開發人員是時候轉向更現代的語言了嗎?是時候退休 C 了嗎?

poYBAGLOkuaAK_8DAAQaVtr_v-k180.png

poYBAGLOkuaAK_8DAAQaVtr_v-k180.png


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

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

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 有幾個問題。首先,C 對于接近硬件運行的低級過程應用程序來說是一種很棒的語言。它緊湊而高效。其次,高級工程師的語言根深蒂固。他們處于使用該語言數十年的地步,對學習和過渡到更現代的語言幾乎沒有興趣。最后,如此多的遺留庫和代碼庫使用 C,我們不能放棄它們。移植遺留代碼的成本太高了!

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

使用其他語言來支持 C 可能已經發生。例如,下面的表 1 顯示了幾種語言在 TIOBE 指數中的排名。過去,一兩種語言主導著計算機科學。今天,前四種語言的評分都在 10% 左右。我相信這表明單一主導語言的終結。相反,開發人員將利用多種語言來實現他們的最終目標。

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

表 1 – 通常與嵌入式軟件開發相關的編程語言列表(來源:TIOBE 指數)。注意:這些評級不代表嵌入式軟件的使用,僅代表一般計算機科學行業的使用。

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

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

你怎么看?是時候退休 C 了嗎?

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137748
  • 編程語言
    +關注

    關注

    10

    文章

    1950

    瀏覽量

    34994
收藏 人收藏

    評論

    相關推薦

    C語言程序設計教程第4版第8講:指針

    C語言指針講解
    發表于 11-20 14:10 ?0次下載

    C語言指針學習筆記

    本文從底層內存分析,徹底讓讀者明白C語言指針的本質。
    的頭像 發表于 11-05 17:40 ?311次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指針學習筆記

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?475次閱讀

    tlv320aic26用的時候總有滴滴聲,是編程哪里錯了嗎

    tlv320aic26 用的時候總有滴滴聲,是編程哪里錯了嗎
    發表于 11-01 07:44

    C語言C++中結構體的區別

    同樣是結構體,看看在C語言C++中有什么區別?
    的頭像 發表于 10-30 15:11 ?357次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對C
    的頭像 發表于 10-29 17:31 ?446次閱讀

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

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

    C++語言基礎知識

    電子發燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發表于 07-19 10:58 ?7次下載

    按照這樣學習C語言,成為卷王不是夢!

    在計算機編程領域,C語言被譽為一種強大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種編程任務,還能夠為你的職業生涯打下堅實的基礎。但
    的頭像 發表于 07-06 08:04 ?363次閱讀
    按照這樣學習<b class='flag-5'>C</b><b class='flag-5'>語言</b>,成為卷王不是夢!

    PLC編程語言C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個方面存在顯著的區別。本文將從多個維度深入探討PLC編程
    的頭像 發表于 06-14 17:11 ?3257次閱讀

    幫你避雷 C語言所謂的短路現象~

    C語言短路現象算是C語言的基礎吧,不過有時候代碼寫得不規范也容易引入一些bug,所以這些操作在工程師實踐中盡量少用。雖然下面找的例子比較簡單
    的頭像 發表于 03-27 08:09 ?455次閱讀
    幫你避雷 <b class='flag-5'>C</b><b class='flag-5'>語言</b>所謂的短路現象~

    C語言基礎-為什么要使用C

    當今最流行的 Linux 操作系統和 RDBMS(Relational Database Management System:關系數據庫管理系統) MySQL 都是使用 C 語言編寫的。
    發表于 03-25 11:20 ?489次閱讀

    C語言內存泄漏問題原理

    內存泄漏問題只有在使用堆內存的時候才會出現,棧內存不存在內存泄漏問題,因為棧內存會自動分配和釋放。C語言代碼中堆內存的申請函數是malloc。
    發表于 03-19 11:38 ?577次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>內存泄漏問題原理

    嵌入式系統中C語言結構體的基礎實現與應用

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構是C語言編程中允許您存儲不同數據類型的數據。
    發表于 03-12 14:29 ?562次閱讀
    嵌入式系統中<b class='flag-5'>C</b><b class='flag-5'>語言</b>結構體的基礎實現與應用

    C語言#define的應用

    C/C++ 編程語言中,當程序被編譯時,被發送到編譯器,編譯器將程序轉換為機器語言,然后完成編譯并執行該程序。預處理器也稱為宏預處理器。
    發表于 03-06 11:29 ?429次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應用
    主站蜘蛛池模板: 午夜精品视频5000 | 午夜不卡在线 | 在线视频人人视频www | 男人午夜视频在线观看 | 免费特黄一区二区三区视频一 | 国产午夜精品久久久久免费视小说 | 亚洲第一黄色网 | 免费国内精品久久久久影院 | 乱h亲女小说| 精品国产免费人成高清 | 欧美三级视频网 | 欧美性色黄大片四虎影视 | 日本特黄绿像大片免费看 | www射射一区 | 性生活黄色毛片 | 97人人揉人人捏人人添 | 国产精品久久久久久一级毛片 | 狠狠色噜噜狠狠狠狠97影音先锋 | 奇米影视四色7777久久精品 | 国产伦精品一区二区三区免 | 免费黄色一级 | 嫩草影院入口一二三免费 | 美女黄页网站免费进入 | 婷婷开心激情 | 午夜影视免费完整高清在线观看网站 | 免费人成网ww44kk44 | 人人干人人干 | 中文天堂网在线www 中文天堂资源在线www | 在线免费观看一级毛片 | 精品国产欧美一区二区最新 | 高黄网站 | 啪啪免费视频 | 亚洲成在人天堂一区二区 | 5151hh四虎国产精品 | 男女性生动态免费视频 | 日韩欧美理论 | 韩国朴银狐诱感在线观看 | 一级黄色录像视频 | 天天做天天爱天天爽 | 亚洲综合色婷婷中文字幕 | 国产精品黄网站免费观看 |