{"id":441180,"date":"2024-02-04T07:05:21","date_gmt":"2024-02-04T06:05:21","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=clion&#038;p=441180"},"modified":"2024-02-04T07:05:30","modified_gmt":"2024-02-04T06:05:30","slug":"the-cpp-ecosystem-in-2023","status":"publish","type":"clion","link":"https:\/\/blog.jetbrains.com\/zh-hans\/clion\/2024\/02\/the-cpp-ecosystem-in-2023\/","title":{"rendered":"2023 \u5e74\u7684 C++ \u751f\u6001\u7cfb\u7edf\uff1aC++20 \u589e\u957f\u3001\u57fa\u4e8e Clang \u7684\u5de5\u5177\u7684\u66f4\u5e7f\u6cdb\u91c7\u7528\u3001AI \u8d62\u5f97\u5f00\u53d1\u8005\u4fe1\u5fc3"},"content":{"rendered":"<p>JetBrains \u6bcf\u5e74\u90fd\u4f1a\u5f00\u5c55\u5f00\u53d1\u8005\u751f\u6001\u7cfb\u7edf\u8c03\u67e5\u6765\u4e86\u89e3\u5f00\u53d1\u8005\u793e\u533a\u6982\u51b5\u3002\u53bb\u5e74\u7684\u8c03\u67e5\u5df2\u7ecf\u7ed3\u675f\uff0c\u6211\u4eec\u5c06\u5728\u8fd9\u91cc\u516c\u5e03\u548c\u5206\u6790\u7ed3\u679c\uff01 2023 \u5e74\u6700\u663e\u8457\u7684\u8d8b\u52bf\u4e4b\u4e00\u662f AI \u5728\u8f6f\u4ef6\u5f00\u53d1\u8005\u4e2d\u7684\u66f4\u5e7f\u6cdb\u4f7f\u7528\uff0c\u9ad8\u8fbe 77% \u7684\u5f00\u53d1\u8005\u4f7f\u7528 ChatGPT \u6267\u884c\u5404\u79cd\u5de5\u4f5c\u76f8\u5173\u4efb\u52a1\uff01 \u5728\u7f16\u7a0b\u8bed\u8a00\u65b9\u9762\uff0cObjective-C \u5df2\u662f\u884c\u5c06\u5c31\u6728\uff0cRust \u4eca\u5e74\u5219\u521b\u4e0b\u4e86\u65b0\u7684\u53d7\u6b22\u8fce\u7a0b\u5ea6\u8bb0\u5f55\uff0cC++ \u548c C \u5728\u70ed\u95e8\u8bed\u8a00\u6392\u884c\u699c\u4e0a\u5206\u522b\u4f4d\u5217\u7b2c\u516b\u548c\u7b2c\u5341\u3002 \u6211\u4eec\u7684\u62a5\u544a\u4e2d\u8fd8\u6709\u66f4\u591a\u6df1\u5165\u5256\u6790\uff0c\u8bf7\u7ee7\u7eed\u9605\u8bfb\uff01<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/Blog-Space-1280x600-2x.png\" alt=\"C++ \u5f00\u53d1\u751f\u6001\" width=\"1024\" \/><\/p>\n<p>2023 \u5e74\uff0c\u6211\u4eec\u6536\u96c6\u4e86\u6765\u81ea\u5168\u7403\u8f6f\u4ef6\u5f00\u53d1\u8005\u7684 34,493 \u4efd\u56de\u590d\u3002 \u5176\u4e2d\uff0c2,627 \u4f4d\u53d7\u8bbf\u8005\u8868\u793a C++ \u662f\u5176\u524d\u4e09\u79cd\u4e3b\u8981\u8bed\u8a00\u4e4b\u4e00\u3002 \u6211\u4eec\u4ed4\u7ec6\u7814\u7a76\u4e86\u539f\u59cb\u6570\u636e\uff0c\u63d0\u53d6\u51fa\u6709\u4ef7\u503c\u7684\u89c1\u89e3\u5e76\u4e0e\u60a8\u5206\u4eab\u3002 \u6211\u4eec\u8fd8\u9080\u8bf7\u4e86\u51e0\u4f4d\u793e\u533a\u6210\u5458\u53d1\u8868\u8bc4\u8bba\uff0c\u5305\u62ec\u4ee3\u8868\u8bed\u8a00\u59d4\u5458\u4f1a\u548c\u63a8\u52a8 C++ \u53d1\u5c55\u7684\u516c\u53f8\u7684\u77e5\u540d\u4e13\u5bb6\u3002 \u6211\u4eec\u611f\u8c22\u6240\u6709\u4eba\u5bf9\u6570\u636e\u548c\u53d1\u73b0\u7684\u53cd\u9988\uff1a<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/twitter.com\/Inbal_l\" target=\"_blank\" rel=\"noopener\">Inbal Levi<\/a>\uff0cMPGC Services Ltd (Millennium) \u9996\u5e2d\u8f6f\u4ef6\u5de5\u7a0b\u5e08\uff0cWG21 \u59d4\u5458\u4f1a\u6210\u5458<\/li>\n<li><a href=\"https:\/\/twitter.com\/blelbach\" target=\"_blank\" rel=\"noopener\">Bryce Adelstein Lelbach<\/a>\uff0cNVIDIA \u9996\u5e2d\u67b6\u6784\u5e08<\/li>\n<li><a href=\"https:\/\/twitter.com\/diegorlosada\" target=\"_blank\" rel=\"noopener\">Diego Rodriguez-Losada Gonzalez<\/a>\uff0cConan \u56e2\u961f JFrog \u7684\u9996\u5e2d\u67b6\u6784\u5e08<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/zh-cn\/lp\/devecosystem-2023\/cpp\/\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>\u67e5\u770b C++ \u62a5\u544a<\/a><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<h2 id=\"cpp_standard_cpp_as_the_base_dialect\">C++ \u6807\u51c6\uff1aC++20 \u4f5c\u4e3a\u57fa\u672c\u65b9\u8a00<\/h2>\n<p>C++11 \u548c C++14 \u7684\u4e0b\u884c\u8d8b\u52bf\u4ecd\u5728\u7ee7\u7eed\uff0c\u800c\u968f\u7740\u4eba\u4eec\u8fc1\u79fb\u5230 C++20 \u548c C++23\uff0cC++17 \u7684\u589e\u957f\u4e5f\u5fae\u4e4e\u5176\u5fae\u3002 \u660e\u5e74\uff0c\u6211\u4eec\u5e94\u8be5\u53ef\u4ee5\u770b\u5230 C++20 \u548c C++23 \u7684\u603b\u5360\u6bd4\u8d85\u8fc7 C++17\u3002 \u8fd9\u80cc\u540e\u7684\u90e8\u5206\u9a71\u52a8\u529b\u662f C++ \u4f1a\u8bae\u4e00\u76f4\u503e\u5411\u4e8e\u8ba8\u8bba C++20 \u548c C++23\u3002<br \/><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/standards_trends.png\" alt=\"C++ \u6807\u51c6\u8d8b\u52bf\" width=\"1024\" \/><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":431921,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Inbal Levi\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cbu003e\u00a0u003c\/bu003eu003cspan style=u0022font-weight: 400;u0022u003eIt\u2019s great to see such a significant portion of the Embedded (37%) and Games (39%) industry working with C++20 already. I have been advocating for this move, as this version extends compile time abilities, which is very beneficial for industries with a lot of emphasis on runtime performance. I hope to see similar adoption rates for C++23 in the upcoming years.u003c\/spanu003ernrnu003cspan style=u0022font-weight: 400;u0022u003eIt\u2019s very interesting to see here how C++98 and C++03 have a relatively fixed base of users, but starting from C++11, there is a significant adoption of newer versions (~4%). It\u2019s also interesting how the newer versions \u2013 C++20 and C++23 \u2013 have the largest percentages of adoption. This is a good indication that there are at least 20% of developers who aim to be on the cutting edge of technology.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432284,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Bryce Adelstein Lelbach\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eA large jump in the adoption of C++20 makes sense, as implementations have become more mature and feature-complete. I think we'll see a big shift from C++17 to C++20 as the u0022baseu0022 dialect for much of the community over the next few years.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p>\u6e38\u620f\u5f00\u53d1\u884c\u4e1a\u4f3c\u4e4e\u5728\u91c7\u7528\u8f83\u65b0\u7684 C++ \u6807\u51c6\u65b9\u9762\u9886\u5148\u4e00\u6b65\u3002 \u5728\u8bed\u8a00\u6dfb\u52a0\u53cd\u5c04\u540e\uff0c\u8fd9\u79cd\u8d8b\u52bf\u53ef\u80fd\u4f1a\u88ab\u653e\u5927\u3002\u53cd\u5c04\u662f\u6e38\u620f\u5f00\u53d1\u8005\u6700\u671f\u5f85\u7684\u8bed\u8a00\u529f\u80fd\u4e4b\u4e00\uff0c\u5b83\u5bf9\u4e8e\u5bf9\u8c61\u5e8f\u5217\u5316\u7b97\u6cd5\u975e\u5e38\u91cd\u8981\u3002 \u5bf9\u4e86\uff0c\u60a8\u77e5\u4e0d\u77e5\u9053 Unreal Engine \u662f\u901a\u8fc7<a href=\"https:\/\/www.youtube.com\/watch?v=DIpDzQyCS5c\" target=\"_blank\" rel=\"noopener\">\u5b8f<\/a>\u6765\u6a21\u62df\u53cd\u5c04\uff1f<\/p>\n<p>\u6211\u4eec\u8fd8\u56de\u987e\u5e76\u6bd4\u8f83\u4e86\u6700\u8fd1\u7684\u8bed\u8a00\u6807\u51c6\u5728\u53d1\u5e03\u7b2c\u4e00\u5e74\u548c\u4e00\u5e74\u540e\u7684\u91c7\u7528\u6bd4\u4f8b\uff1a<\/p>\n<ul>\n<li>C++17 \u5728 2017 \u5e74\u5360 12%\uff0c2018 \u5e74\u8fbe\u5230 18%\u3002<\/li>\n<li>C++20 \u5728 2020 \u5e74\u5360 12%\uff0c2021 \u5e74\u8fbe\u5230 18%\u3002<\/li>\n<li>C++23 \u5728 2023 \u5e74\u5360\u6bd4\u4e3a 10%\uff0c\u63a5\u4e0b\u6765\u5c31\u770b\u5b83\u4eca\u5e74\u5c06\u8fbe\u5230\u591a\u5c11\u4e86\u3002<\/li>\n<\/ul>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432296,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Diego Rodriguez-Losada Gonzalez\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eC++23 shows 10% adoption in 2023, a bit lower than C++20 adoption in 2020 (12%), probably related to how many new features C++20 brought compared with C++23.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u4e0d\u6253\u7b97\u8fc1\u79fb\u5230\u65b0\u6807\u51c6\u7684\u4eba\u5360 50% \u5de6\u53f3\uff0c\u6700\u9ad8\u7684\u6570\u5b57 (57%) \u6765\u81ea\u4ecd\u5728\u4f7f\u7528 C++98\/C++03 \u7684\u4eba\u3002 \u8fd9\u79cd\u73b0\u8c61\u5e76\u4e0d\u65b0\u9c9c\uff0c\u4e3b\u8981\u5728\u4e8e\u5bf9\u65e7\u7f16\u8bd1\u5668\u7248\u672c\u7684\u9700\u6c42\uff0c\u7279\u522b\u662f\u5728\u4e00\u4e9b\u5d4c\u5165\u5f0f\u9879\u76ee\u4e2d\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432296,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Diego Rodriguez-Losada Gonzalez\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003e\u201cu003c\/spanu003eu003cspan style=u0022font-weight: 400;u0022u003eNo, I don\u2019t plan to move to another C++ standard = 57% (from C++98\/03)\u201d \u2013 This could be read as disappointing, but given that only 8% of respondents are still using C++98\/03, it means that only around 4% of the world\u2019s C++ code is stagnant in that old standard. This is not bad and similar stagnation is also seen in other programming languages.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 id=\"beyond_cpp\" class=\"wp-block-heading\">C++ \u4e4b\u5916<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u53bb\u5e74\uff0c\u6211\u900f\u9732 Python \u662f\u7ee7 C++ \u672c\u8eab\u4e4b\u540e C++ \u5f00\u53d1\u8005\u7684\u5934\u53f7\u4f34\u4fa3\uff0c\u8ba9 <a href=\"https:\/\/www.youtube.com\/channel\/UCxHAlbZQNFU2LgEtiqd2Maw\" target=\"_blank\" rel=\"noopener\">Jason Turner<\/a> \u5403\u4e86\u4e00\u60ca\u3002 2023 \u5e74\uff0cPython \u4ecd\u7136\u660e\u663e\u9886\u5148\u4e8e C\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image --><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/top_languages.png\" alt=\"\u8bed\u8a00\u548c C++\" width=\"600\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5728\u6211\u7684 C++ \u5f00\u53d1\u7ecf\u5386\u4e2d\uff0cPython \u4e5f\u88ab\u5e7f\u6cdb\u7528\u4e8e\u5305\u88c5\u9879\u76ee\u6a21\u578b\uff0c\u800c\u4e14\u6211\u77e5\u9053\u8bb8\u591a\u6e38\u620f\u5f00\u53d1\u5de5\u4f5c\u5ba4\u4ecd\u7136\u4f7f\u7528 Python \u5904\u7406 <em>.sln<\/em> \u6587\u4ef6\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432296,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Diego Rodriguez-Losada Gonzalez\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eI love Python as a tooling language, and I have seen lots of companies happily using it in their C++ projects for all kinds of automation, testing, project management, data processing, services, CI, etc., not necessarily always for product code. Python is yet another very useful tool for the C++ developer toolbelt.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5bf9\u4e8e Rust\uff0c\u6211\u4eec\u6b63\u5728\u4e0e <a href=\"https:\/\/www.jetbrains.com\/rust\/\" target=\"_blank\" rel=\"noopener\">JetBrains RustRover<\/a> \u56e2\u961f\u4e00\u8d77\u7814\u7a76\u4e00\u4e2a\u6709\u8da3\u7684\u95ee\u9898\u3002 \u6211\u4eec\u5f88\u60f3\u77e5\u9053\u76ee\u524d\u6709\u591a\u5c11 Rust \u9879\u76ee\u6b63\u5728\u4f7f\u7528 C++\uff0c\u53c8\u6709\u591a\u5c11 C++ \u9879\u76ee\u6b63\u5728\u4f7f\u7528 Rust\u3002 \u5927\u591a\u6570\u8c03\u67e5\u548c GitHub \u626b\u63cf\u8868\u660e\u5360\u6bd4\u4e0d\u8d85\u8fc7 5%\u201310%\uff0c\u5c3d\u7ba1\u50cf Google \u8fd9\u6837\u7684\u5927\u516c\u53f8\u51fa\u4e8e\u5b89\u5168\u539f\u56e0\u6b63\u5728\u5c06\u5176\u90e8\u5206\u5e9e\u5927\u4ee3\u7801\u5e93\u8fc1\u79fb\u5230 Rust\u3002 \u60a8\u5bf9\u6b64\u6709\u4ec0\u4e48\u770b\u6cd5\uff1f<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432284,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Bryce Adelstein Lelbach\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eMore JavaScript and Rust being used in combination with C++ seems to be the trend here. Given the rising popularity of Rust, it's surprising that there's not a more rapid growth of Rust being used with C++. That suggests it may be harder to use Rust in existing projects (as opposed to new projects).u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 id=\"cpp_tooling_the_major_players_remain_unchanged\" class=\"wp-block-heading\">C++ \u5de5\u5177\uff1a\u4e3b\u8981\u53c2\u4e0e\u8005\u4fdd\u6301\u4e0d\u53d8<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 id=\"cpp_ides_and_editors_of_choice\" class=\"wp-block-heading\">\u9996\u9009 C++ IDE \u548c\u7f16\u8f91\u5668<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5927\u591a\u6570 C++ \u5f00\u53d1\u8005\u4f3c\u4e4e\u90fd\u957f\u671f\u4f7f\u7528\u76f8\u540c\u7684\u51e0\u6b3e IDE \u548c\u7f16\u8f91\u5668\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image --><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/editor.png\" alt=\"C++ \u7f16\u8f91\u5668\" width=\"598\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5728\u5168\u529f\u80fd IDE \u65b9\u9762\uff0cCLion \u548c Visual Studio \u5728\u5e02\u573a\u4e0a\u5360\u636e\u7740\u76f8\u5f53\u7684\u5730\u4f4d\uff0c\u667a\u80fd\u7f16\u8f91\u5668 Visual Studio Code \u4e0e\u8fd9\u4e24\u6b3e\u4ea7\u54c1\u4e0d\u76f8\u4e0a\u4e0b\u3002 \u6211\u4eec\u5f88\u9ad8\u5174\u80fd\u591f\u53c2\u4e0e\u8fd9\u573a\u7ade\u8d5b\uff0c\u4e0d\u65ad\u53d1\u5c55\u5e76\u4e3a\u7528\u6237\u63d0\u4f9b\u6700\u4f73\u4f53\u9a8c\u3002 \uff08\u53e6\u5916\uff0c\u60a8\u77e5\u9053 Android Studio \u4f7f\u7528 CLion \u7684 C++ \u652f\u6301\u5417\uff1f \u5b83\u5728\u6211\u4eec\u7684\u6e90\u4ee3\u7801\u4e4b\u4e0a\u6784\u5efa\u4e86\u4e00\u4e2a\u4e13\u6709\u7ec4\u4ef6\u3002\uff09<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432296,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Diego Rodriguez-Losada Gonzalez\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eThe market is clearly dominated by the Microsoft and JetBrains IDEs. It seems the quick growth of VS Code is finally slowing down (at least in the C++ audience) and has started to stabilize in equal quotas for the three major players \u2013 CLion, VS, and VS Code.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 id=\"managing_third_party_libraries\" class=\"wp-block-heading\">\u7ba1\u7406\u7b2c\u4e09\u65b9\u5e93<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u7b2c\u4e09\u65b9\u5e93\u7ba1\u7406\u4ecd\u662f C++ \u4e2d\u6700\u5927\u7684\u6311\u6218\u4e4b\u4e00\uff0c\u5373\u4f7f\u8fd9\u4e00\u6311\u6218\u5df2\u7ecf\u5b58\u5728\u4e86 35 \u5e74\u3002 \u5728 <a href=\"https:\/\/isocpp.org\/files\/papers\/CppDevSurvey-2023-summary.pdf\" target=\"_blank\" rel=\"noopener\">C++ Foundation Annual C++ Developer Survey \u201cLite\u201d<\/a> \u4e2d\uff0c\u8fd9\u4e2a\u95ee\u9898\u540d\u5217\u7b2c\u4e00\uff0c\u88ab 47% \u7684\u53d7\u8bbf\u8005\u79f0\u4e3a\u201c\u4e3b\u8981\u75db\u70b9\u201d\u3002 \u8fd9\u662f\u56e0\u4e3a C++ \u5e93\u96be\u4ee5\u5b9a\u4e49\uff0c\u5e76\u4e14\u9884\u6784\u5efa\u7684\u4f7f\u7528\u5f62\u5f0f\u4e5f\u5f88\u68d8\u624b\u3002 \u4f46\u8fd8\u6709\u5e0c\u671b\uff01 \u5728 CppCon 2023 \u4e0a\uff0cCMake \u7684 Bill Hoffman \u548c Bloomberg \u7684 Bret Brown \u8ba8\u8bba\u4e86 C++ \u4e2d\u4f9d\u8d56\u9879\u7ba1\u7406\u7684\u521d\u59cb\u6807\u51c6 \u2013 \u63cf\u8ff0\u9884\u6784\u5efa\u5e93\u7684\u5143\u6570\u636e\u6587\u4ef6\u3002 \u4ed6\u4eec\u7684\u6f14\u8bb2 <a href=\"https:\/\/www.youtube.com\/watch?v=IwuBZpLUq8Q\" target=\"_blank\" rel=\"noopener\"><em>Libraries: A First Step Toward Standard C++ Dependency Management<\/em><\/a> \u5df2\u5728 YouTube \u4e0a\u53d1\u5e03\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u6839\u636e\u300a2023 \u5f00\u53d1\u8005\u751f\u6001\u7cfb\u7edf\u8c03\u67e5\u300b\uff0c\u6211\u4eec\u53d1\u73b0\u4ece\u4ee5\u4e0b\u6e90\u6784\u5efa\u5e93\u7684\u4eba\u8d8a\u6765\u8d8a\u5c11\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image --><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/packages.png\" alt=\"\u8f6f\u4ef6\u5305\u7ba1\u7406 C++\" width=\"649\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":431921,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Inbal Levi\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eI think this is a great indication that the wide support of package managers across the C++ community is necessary. As I\u2019ve mentioned, one of the ways (but not the only one) to promote such support is to promote standardization of the requirements from these tools, which is being discussed in the committee. Of course, there may always be a need for other solutions, but it will be interesting to see how the numbers will be affected if such commonly used package managers are standardized.u003c\/spanu003ernrnu0026nbsp;\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 id=\"project_models_and_build_systems\" class=\"wp-block-heading\">\u9879\u76ee\u6a21\u578b\u548c\u6784\u5efa\u7cfb\u7edf<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>CMake \u4ecd\u7136\u9ad8\u5c45\u699c\u9996\uff08\u5c3d\u7ba1\u4e0e 2022 \u5e74\u76f8\u6bd4\u7565\u6709\u4e0b\u964d\uff09\uff0c\u800c msbuild \u548c Makefiles \u5219\u6301\u7eed\u4e0b\u6ed1\uff1a<br \/><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/project_models.png\" alt=\"\u9879\u76ee\u6a21\u578b\" width=\"949\" \/><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432284,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Bryce Adelstein Lelbach\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eIt is very interesting to see CMake drop in market share and Ninja increase in market share. This isn't a trend I was aware of. Perhaps it's just noise, but given CMake's rapid growth until now, this data suggests that it's reached peak saturation. That's troubling \u2013 it would be better for C++ if we had a defacto standard build system (70% to 90% adoption). I don't know how to interpret the growth in u0022Noneu0022 as a build system, but I don't think it has any deep meaning; no-one is not using a build system for large production projects.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5982 Bryce \u6307\u51fa\u7684\uff0cNinja \u6b63\u5728\u6210\u957f\u3002 \u6765\u81ea <a href=\"https:\/\/isocpp.org\/files\/papers\/CppDevSurvey-2023-summary.pdf\" target=\"_blank\" rel=\"noopener\">C++ Foundation Annual C++ Developer Survey \u201cLite\u201d<\/a> \u7684\u6570\u636e\u663e\u793a\u4e86\u66f4\u5927\u7684\u4e0a\u6da8\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/project_models_all.png\" alt=\"C++ \u8c03\u67e5\u7684\u53d7\u4f17\" width=\"1000\" \/><br \/>\u8fd9\u53ef\u80fd\u662f\u56e0\u4e3a C++ Foundation \u7684\u8c03\u67e5\u66f4\u9891\u7e41\u5730\u544a\u77e5\u53d7\u8bbf\u8005\u201c\u52fe\u9009\u6240\u6709\u9002\u7528\u9879\u201d\u3002 \u5b83\u8fd8\u63d0\u51fa\u4e86\u66f4\u591a\u4e13\u95e8\u9488\u5bf9\u6784\u5efa\u5de5\u5177\u7684\u95ee\u9898\uff0c\u4e00\u4e9b\u9009\u62e9 Ninja \u7684\u53d7\u8bbf\u8005\u5fc5\u987b\u5c06\u5176\u7528\u4f5c\u6784\u5efa\u5de5\u5177\u800c\u4e0d\u662f\u9879\u76ee\u6a21\u578b\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":431921,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Inbal Levi\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eI find this data fascinating. It indicates that there are significant preferences in each domain, which signals to me that if we consider achieving any uniformity in tools by standardization (for example, by standardizing build systems\u2019 APIs), we should make sure that we leave enough room for flexibility, to be able to support all the requirements of users in our community.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 id=\"safe_and_clean_cpp_code\" class=\"wp-block-heading\">\u5b89\u5168\u5e72\u51c0\u7684 C++ \u4ee3\u7801<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u4ee3\u7801\u5206\u6790\u5de5\u5177\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u7f16\u5199\u5b89\u5168\u5e72\u51c0\u7684 C++ \u4ee3\u7801\u3002 \u54ea\u4e9b\u5206\u6790\u5de5\u5177\u5728\u793e\u533a\u4e2d\u6700\u53d7\u6b22\u8fce\uff1f<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image --><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/code_analysis.png\" alt=\"\u4ee3\u7801\u5206\u6790\u5de5\u5177\" width=\"647\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u57fa\u4e8e Clang \u7684\u5de5\u5177\u5f53\u7136\u4f1a\u8d8a\u6765\u8d8a\u53d7\u6b22\u8fce\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u6839\u672c\u4e0d\u4f7f\u7528\u4ee3\u7801\u5206\u6790\u7684\u53d7\u8bbf\u8005\u6bd4\u4f8b\u4fdd\u6301\u5728 30% \u5de6\u53f3\uff0c\u800c\u4f7f\u7528\u6346\u7ed1\u5230 IDE \u4e2d\u7684\u4ee3\u7801\u5206\u6790\u7684\u53d7\u8bbf\u8005\u6bd4\u4f8b\u5219\u6709\u6240\u4e0b\u964d\u3002 \u4e3a\u4ec0\u4e48\u4f1a\u8fd9\u6837\uff1f<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:acf\/guest-block {\"name\":\"acf\/guest-block\",\"data\":{\"guest_block_image\":432284,\"_guest_block_image\":\"field_60c73e0a0d43b\",\"guest_block_title\":\"Bryce Adelstein Lelbach\",\"_guest_block_title\":\"field_60c73e2e0d43c\",\"guest_block_description\":\"u003cspan style=u0022font-weight: 400;u0022u003eI think the decrease in IDE-provided analysis tools here is indicative of people incorporating static analysis into their CI, e.g. running clang-tidy, clang-format, or Clang Static Analyzer in GitHub Actions.u003c\/spanu003e\",\"_guest_block_description\":\"field_60c73e330d43d\",\"guest_block\":\"\",\"_guest_block\":\"field_60c73df90d43a\"},\"align\":\"full\",\"mode\":\"auto\"} \/--><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>CI \u7ba1\u9053\u53ef\u80fd\u662f\u90e8\u5206\u539f\u56e0\u3002 \u4e0d\u8fc7\uff0c\u5728\u96c6\u6210\u5230 CI\/CD \u7ba1\u9053\u4e2d\u7684\u4ee3\u7801\u5206\u6790\u65b9\u9762\uff0c\u53ea\u6709\u4ece 26% \u5230 27% \u7684\u8f7b\u5fae\u589e\u957f\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image --><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/running_code_analysis.png\" alt=\"\u8fd0\u884c\u4ee3\u7801\u5206\u6790\" width=\"1188\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u6839\u636e\u6211\u4eec\u7684\u8c03\u67e5\u6570\u636e\uff0c\u4e00\u534a\u7684\u53d7\u8bbf\u8005\u5728\u7f16\u8bd1\u9636\u6bb5\u8fd0\u884c\u4ee3\u7801\u5206\u6790\u3002 \u8fd9\u662f\u4e00\u4e2a\u9519\u5931\u7684\u673a\u4f1a\uff0c\u56e0\u4e3a\u5728\u201c\u7f16\u5199\u4ee3\u7801\u3001\u68c0\u6d4b\u9519\u8bef\u3001\u4fee\u6b63\u9519\u8bef\u201d\u5faa\u73af\u4e2d\u8fd0\u884c\u9759\u6001\u4ee3\u7801\u5206\u6790\u53ef\u4ee5\u8282\u7701\u5927\u91cf\u65f6\u95f4\u3002 \u73b0\u5728\u7684\u5de5\u5177\u53ef\u4ee5\u5e26\u6765\u7edd\u4f73\u7ed3\u679c\uff01 \u4f8b\u5982\uff0cCLion \u4e2d\u6700\u65b0\u7684\u6570\u636e\u6d41\u5206\u6790\u80fd\u591f\u6355\u83b7\u6b7b\u4ee3\u7801\u3001null \u6307\u9488\u89e3\u5f15\u7528\u3001\u5185\u5b58\u6cc4\u6f0f\u3001\u60ac\u7a7a\u6307\u9488\u548c\u6570\u7ec4\u7d22\u5f15\u95ee\u9898\u3002 \u9605\u8bfb\u6211\u4eec\u7684\u535a\u6587\u7cfb\u5217\u4e86\u89e3\u8be6\u60c5\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:list --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul><!-- wp:list-item -->\n<li><a href=\"https:\/\/blog.jetbrains.com\/clion\/2023\/11\/striving-for-better-cpp-code-part-i-data-flow-analysis-basics\/\">\u52aa\u529b\u83b7\u5f97\u66f4\u597d\u7684 C++ \u4ee3\u7801\uff0c\u7b2c\u4e00\u90e8\u5206\uff1a\u6570\u636e\u6d41\u5206\u6790\u57fa\u7840\u77e5\u8bc6<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/clion\/2023\/12\/striving-for-better-cpp-code-part-ii-function-summaries-to-speed-up-the-data-flow-analysis\/\">\u52aa\u529b\u83b7\u5f97\u66f4\u597d\u7684 C++ \u4ee3\u7801\uff0c\u7b2c\u4e8c\u90e8\u5206\uff1a\u5229\u7528\u51fd\u6570\u6458\u8981\u52a0\u5feb\u6570\u636e\u6d41\u5206\u6790<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 id=\"ai_is_already_here\" class=\"wp-block-heading\">AI \u5df2\u7ecf\u5230\u6765\uff01<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>2023 \u5e74\u662f\u6211\u4eec\u5728\u5f00\u53d1\u8005\u751f\u6001\u7cfb\u7edf\u8c03\u67e5\u4e2d\u8be2\u95ee <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/ai\/\" target=\"_blank\" rel=\"noopener\">AI \u76f8\u5173\u95ee\u9898<\/a>\u7684\u7b2c\u4e00\u5e74\u3002 \u6211\u4eec\u5f88\u60f3\u77e5\u9053\u6709\u591a\u5c11\u5f00\u53d1\u8005\u5df2\u7ecf\u5728\u5de5\u4f5c\u4e2d\u91c7\u7528 AI\uff0c\u4ee5\u53ca\u4ed6\u4eec\u5c06\u54ea\u4e9b\u4efb\u52a1\u548c\u529f\u80fd\u59d4\u6258\u7ed9 AI\u3002 \u6211\u4eec\u53d1\u73b0\u7684\u51e0\u4e2a\u8981\u70b9\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:list --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul><!-- wp:list-item -->\n<li>84% \u7684\u5f00\u53d1\u8005\u6216\u591a\u6216\u5c11\u719f\u6089\u751f\u6210\u5f0f AI \u5de5\u5177\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>43% \u7684\u5f00\u53d1\u8005\u8ba1\u5212\u5728\u4e0d\u4e45\u7684\u5c06\u6765\u5c1d\u8bd5 AI \u5de5\u5177\u3002 20% \u7684\u53d7\u8bbf\u8005\u8868\u793a\uff0c\u6700\u5927\u7684\u62c5\u5fe7\u663e\u7136\u662f\u5b89\u5168\u95ee\u9898\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\u6700\u5e38\u89c1\u7684\u662f\uff0c\u5f00\u53d1\u8005\u4f7f\u7528 AI \u5b66\u4e60\u65b0\u4e8b\u7269\u3001\u4ea4\u6d41\u60f3\u6cd5\u548c\u603b\u7ed3\u5185\u5bb9\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5f00\u53d1\u8005\u6700\u8017\u65f6\u7684\u6d3b\u52a8\u662f\u7f16\u5199\u4ee3\u7801\uff08\u6392\u540d\u7b2c\u4e00\uff0c\u5360 79%\uff09\u548c\u7406\u89e3\u4ee3\u7801\uff08\u6392\u540d\u7b2c\u4e8c\uff0c\u5360 47%\uff09\uff0c \u8fc5\u731b\u53d1\u5c55\u7684 AI \u663e\u7136\u5df2\u7ecf\u5728\u5e2e\u52a9\u5f00\u53d1\u8005\u5b8c\u6210\u8fd9\u4e24\u9879\u4efb\u52a1\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><em>JetBrains AI Assistant \u73b0\u5df2\u6b63\u5f0f\u63a8\u51fa\uff0c\u642d\u8f7d\u5927\u91cf\u65b0\u529f\u80fd\u548c\u6539\u8fdb\uff0c\u5728 JetBrains IDE \u4e2d\u5e2e\u52a9\u60a8\u63d0\u9ad8\u5de5\u4f5c\u6548\u7387\u3002<\/em><em>\u5728 CLion \u4e2d\uff0c<\/em><a href=\"https:\/\/www.jetbrains.com.cn\/help\/clion\/2023.3\/ai-assistant.html\" target=\"_blank\" rel=\"noopener\"><em>AI Assistant<\/em><\/a><em> \u968f\u65f6\u5f85\u547d\uff0c\u5b83\u53ef\u4ee5\u5e2e\u52a9\u60a8\u89e3\u91ca<\/em><em>\u4ee3\u7801\u4ee5\u53ca CMake \u548c\u8fd0\u884c\u65f6\u9519\u8bef<\/em><em>\u3001\u5efa\u8bae\u91cd\u6784\u3001\u751f\u6210\u6587\u6863\u548c\u63d0\u4ea4\u6d88\u606f\uff0c\u5e76\u5728\u4e0a\u4e0b\u6587\u611f\u77e5 AI \u804a\u5929\u4e2d\u56de\u7b54\u95ee\u9898\u3002 \u9879\u76ee\u611f\u77e5 AI \u64cd\u4f5c\u8fd8\u53ef\u4ee5\u5229\u7528\u6269\u5c55\u4e0a\u4e0b\u6587\u63d0\u4f9b\u66f4\u5168\u9762\u7684\u7ed3\u679c\u3002<\/em><em>\u901a\u8fc7 <\/em><a href=\"http:\/\/www.jetbrains.com\/ai\" target=\"_blank\" rel=\"noopener\"><em>JetBrains AI Service<\/em><\/a><em> \u8ba2\u9605\u5728 CLion \u4e2d\u4ee5\u9644\u52a0\u7ec4\u4ef6\u7684\u5f62\u5f0f\u4f7f\u7528 AI Assistant\u3002<\/em><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 id=\"about_the_audience_and_the_survey_methodology\" class=\"wp-block-heading\">\u5173\u4e8e\u53d7\u4f17\u548c\u8c03\u67e5\u65b9\u6cd5<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u5982\u679c\u5c06 JetBrains \u5f00\u53d1\u8005\u751f\u6001\u7cfb\u7edf\u8c03\u67e5\u4e2d\u7684 C++ \u53d1\u73b0\u4e0e <a href=\"https:\/\/isocpp.org\/files\/papers\/CppDevSurvey-2023-summary.pdf\" target=\"_blank\" rel=\"noopener\">C++ Foundation Annual C++ Developer Survey \u201cLite\u201d<\/a> \u4e2d\u7684\u53d1\u73b0\u8fdb\u884c\u6bd4\u8f83\uff0c\u60a8\u53ef\u80fd\u4f1a\u53d1\u73b0\u8bb8\u591a\u9886\u57df\u8d8b\u52bf\u76f8\u4f3c\uff0c\u4f46\u4e5f\u5b58\u5728\u4e00\u4e9b\u663e\u8457\u5dee\u5f02\u3002 \u503c\u5f97\u6ce8\u610f\u7684\u4e00\u4e2a\u91cd\u8981\u4e8b\u5b9e\u662f\uff0cC++ Foundation \u8c03\u67e5\u7684\u53d7\u4f17\u5e73\u5747\u5728 C++ \u65b9\u9762\u62e5\u6709\u66f4\u591a\u7ecf\u9a8c\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/audience_comparison.png\" alt=\"\u6bd4\u8f83\u53d7\u4f17\" width=\"843\" \/><br \/>JetBrains \u7814\u7a76\u4eba\u5458\u6bcf\u5e74\u90fd\u5c3d\u6700\u5927\u52aa\u529b\u6536\u96c6\u6700\u591a\u6837\u5316\u7684\u6570\u636e\uff0c\u5305\u62ec\uff1a<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:list --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul><!-- wp:list-item -->\n<li>\u4ece\u5b66\u751f\u5230\u4e13\u4e1a\u5f00\u53d1\u8005\uff0c\u5438\u5f15\u5177\u6709\u4e0d\u540c\u7ecf\u9a8c\u7684\u53d7\u8bbf\u8005\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\u5c06\u8c03\u67e5\u7ffb\u8bd1\u6210 10 \u79cd\u8bed\u8a00\uff0c\u4f9b\u66f4\u591a\u4eba\u53c2\u4e0e\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\u901a\u8fc7\u4ece 17 \u4e2a\u56fd\u5bb6\u548c\u5730\u533a\u6536\u96c6\u8db3\u591f\u5927\u7684\u6837\u672c\u6765\u786e\u4fdd\u5730\u7406\u591a\u6837\u6027\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u60a8\u53ef\u4ee5\u5728<a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2023\/methodology\/\" target=\"_blank\" rel=\"noopener\">\u8c03\u67e5\u7684\u4e13\u5c5e\u90e8\u5206<\/a>\u4e2d\u4e86\u89e3\u6211\u4eec\u7684\u8c03\u67e5\u65b9\u6cd5\u3002 \u6b64\u5916\uff0c\u6211\u4eec\u5c06\u5f88\u5feb\u53d1\u5e03\u8c03\u67e5\u7684\u533f\u540d\u539f\u59cb\u6570\u636e\uff0c\u8ba9\u611f\u5174\u8da3\u7684\u8bfb\u8005\u80fd\u591f\u9a8c\u8bc1\u62a5\u544a\u6216\u4ece\u4e2d\u6784\u5efa\u81ea\u5df1\u7684\u5207\u7247\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u6700\u540e\uff0c\u5982\u679c\u60a8\u5728\u8fdb\u884c\u7c7b\u4f3c\u8c03\u67e5\u6216\u60f3\u5f00\u59cb\u4ece\u793e\u533a\u6536\u96c6\u6570\u636e\uff0c\u60a8\u53ef\u4ee5\u89c2\u770b\u6211\u5728 CppCon 2023 \u4e0a\u7684\u6f14\u8bb2 <a href=\"https:\/\/www.youtube.com\/watch?v=54LiB_OxPHE\" target=\"_blank\" rel=\"noopener\"><em>Surveying the Community: What Could Possibly Go Wrong?<\/em><\/a>\u3002\u5728\u6f14\u8bb2\u4e2d\uff0c\u6211\u6df1\u5165\u5206\u6790\u4e86\u8c03\u67e5\u65b9\u6cd5\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u5305\u62ec\u5982\u4f55\u6d88\u9664\u54c1\u724c\u3001\u5b9a\u4f4d\u548c\u62bd\u6837\u504f\u5dee\uff0c\u5e76\u63a2\u8ba8\u4e86\u6b63\u786e\u7684\u95ee\u9898\u5982\u4f55\u6539\u53d8 C++ \u73b0\u5b9e\u4e2d\u7684\u6570\u636e\u3002<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/zh-cn\/lp\/devecosystem-2023\/cpp\/\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>\u67e5\u770b C++ \u62a5\u544a<\/a><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>\u60a8\u5bf9\u6211\u4eec\u8ba8\u8bba\u7684\u6570\u636e\u6709\u4ec0\u4e48\u7591\u95ee\u6216\u8005\u5bf9\u6700\u65b0\u7684 C++ \u793e\u533a\u8d8b\u52bf\u6709\u4ec0\u4e48\u770b\u6cd5\u5417\uff1f \u8bf7\u5728\u8bc4\u8bba\u533a\u5206\u4eab\uff01 \u6211\u4eec\u59cb\u7ec8\u6b22\u8fce\u60a8\u7684\u53cd\u9988\uff01<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u672c\u535a\u6587\u82f1\u6587\u539f\u4f5c\u8005\uff1a<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:acf\/author-block {\"name\":\"acf\/author-block\",\"data\":{\"author\":266,\"_author\":\"field_60c2fd41dc714\"},\"align\":\"full\",\"mode\":\"auto\"} \/-->","protected":false},"author":1297,"featured_media":431897,"comment_status":"closed","ping_status":"closed","template":"","categories":[5116,89],"tags":[507,3467,5702],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/441180"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/clion"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/1297"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=441180"}],"version-history":[{"count":7,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/441180\/revisions"}],"predecessor-version":[{"id":441188,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/441180\/revisions\/441188"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/431897"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=441180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=441180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=441180"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=441180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}