• C++开发效率比 Java 低是真的吗?
  • 发布于 1个月前
  • 116 热度
    10 评论

小白发问,都说 C++开发效率比 Java 低,但 C++的 hello world 也没多几行代码啊

#c++

#include <iostream>
int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
vs
#java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

用户评论
  • 尘世无情
  • 打个不是很恰当的比方
    去楼下便利店买瓶水 只用走的所以有没有车公共交通方不方便没什么影响
    但是要去城市另一头办点事 有车没有车公交能不能直达体验差距就大了
  • 2025/3/17 8:12:00 [ 0 ] [ 0 ] 回复
  • 千帆過盡
  • c++非常难用,到现在连个包管理都没有,std 聊胜于无,老登们又喜欢自己造轮子。语法复杂的一批,模板调试让人头秃,内存泄露和 segmentfault 让人欲哭无泪。
  • 2025/3/17 8:08:00 [ 0 ] [ 0 ] 回复
  • 远山迷雾
  • c++的包管理没有,这可以劝退 90%的程序员,之前你要用第三方库,比如 FFmpeg ,要自己编译,要自己编译就要学脚本语言 cmake ,学完你发现编译一堆 error ,你不是缺少头文件就是缺少依赖,你编译完 Windows 你以为完了,Linux 下又是别的问题,c++ 20 在改变这些,不过推进速度太慢了,世面上有一些第三方库管理工具,比如微软出的 vcpkg ,其实学习 c++,相当于你学了很多语言,c/c++/cmake 。当然最大的问题是跨平台,这也是 Linux 内核开发不愿意用 c++的原因,一点点开发上的便利,不足以取代 c 语言的优势。
  • 2025/3/17 8:04:00 [ 0 ] [ 0 ] 回复
  • 城南诗客
  • 给你段 Windows C++ 窗口开发的“hello world”,你再看看。
    #include <windows.h>
    LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
    int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
    // 注册窗口类
    WNDCLASS wc = {0};
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = L"MyWindowClass";
    RegisterClass(&wc);
    // 创建窗口
    HWND hwnd = CreateWindow(
    L"MyWindowClass", L"Sample Window", WS_OVERLAPPEDWINDOW,
    0, 0, 800, 600, NULL, NULL, hInstance, NULL
    );
    
    if (hwnd == NULL) return 0;
    
    // 显示窗口
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
    // 消息循环
    MSG msg = {0};
    while (GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    
    return 0;
    }

  • 2025/3/17 7:48:00 [ 0 ] [ 0 ] 回复
  • 诗人诗意
  • 随便唠嗑几句, 只是个人观点.
    1: 为什么说 c++ 难,难的不是语法糖; 而是语法糖背后的意义;
    file.open("file_name", a). & file.open("file_name", a+) & 写文件要 4k 对齐 为什么要 4k 对齐 因为内存 为什么内存是 4k ?那就要设计到操作系统 & 特么的在去溯源, 都特么溯源到 第一台计算机的产生了;
    用 java go c# ?我管你几 k 对齐, 快速我就 github 下载 广泛推广使用;

    反正老板不听历史, 所以 也别纠结学什么语言了 你需要的是一个思维 而不是学习语言; 这个思维是:
    我目前做的项目 & 业务。 计算机 & 代码可以给我提供我什么帮助 让我更好的完成✅

    而不是:
    我要学会什么语言 这个语言什么好处 能做什么。
    为什么会有这样的思维, 这是 西方国家 & 部分亚洲国家的差别;
    于当代科技而言, 西方在 0-1 的节点上作出的贡献占比很大很大
    亚洲地区 在 1-x 上实现的更多。
    至于你说哪个牛逼你说了算。 你非要我说 我说工人阶级最伟大.
  • 2025/3/17 7:36:00 [ 0 ] [ 0 ] 回复
  • 梦清幽
  • "开发效率高"是个项目完成后的最终评价,决定它的因素不仅限于开发语言的易写、啰嗦程度,还有更多因素比如:是否具有大量第三方高质量开源包避免重复造低质量轮子;在协作时开发框架是否能限制、显著减少引发崩溃的垃圾代码;等。
  • 2025/3/17 7:31:00 [ 0 ] [ 0 ] 回复
  • 花落微凉
  • 直接点说法:
    1. java 大量开元包导入直接用, 安全 稳定 无脑.
    2. cpp ?导入进去一套用法下来 还能出问题, 简单点就是说:照着说明书用都能出问题;人的问题占大比; 毕竟那点工资招聘一个真正会 cpp 的不大可能;

    效率说的是 成本 & 维护 & 招聘人员。 不是说开发效率. 管理层懂点技术的会知道 公司是有钱不是傻,要的就是可复用性; 这个可复用包括人的复用; 不是 a 走了疯狂找个 b ,b 又不愿意吃屎山代码。java go c# 都是那几个框架 不会也愿意学; cpp...你说招进来让他们学框架二次迭代开发维护, 他们只想造轮子. 给你推翻重写, 毕竟底子在那。另外 市面上的都是杂牌程序员, 我也是; 喷的铁铁们别激动。


    正规军是什么: 科班出生 正儿八经学习了 操作系统 数据结构 努力点在刷刷 leetcode. 以及良好的数学底子,这种人很会写代码 但是也不甘心写代码;都用上杂牌军了,还用什么 cpp 那玩意, 半天喷不出一个屁, 老板哪里管什么效率,只知道出了点 到点要看到,别出岔子; 那不出岔子 就要稳定的库代码引用; 那就 java go c# 咯。反正全球那么多地方用过了 有问题都有问题;
  • 2025/3/17 7:23:00 [ 0 ] [ 0 ] 回复
  • 长青诗
  • 效率在堆内存管理和并发编程上体现,java 是自动管理内存,c++要手动管理,智能指针之类的会限制一些写法。多线程也比较麻烦,没有官方线程池,协程。
  • 2025/3/17 7:18:00 [ 0 ] [ 0 ] 回复