C 和 C++ 的开发效率差多少?Linux C 程序用 C 还是 C++ 好呢?

论坛 期权论坛 期权     
傅立叶   2018-10-16 00:37   7806   9
背景是这样的: 楼主我使用C 开发4-5年了,最初是开发单片机,后来开发linux下的应用程序。对C++了解一些,但是从来没有用来开发过项目,所以并不很熟悉。
最近楼主接触到了java,C#等高级语言,突然发现高级语言的开发效率非常高,模板和框架,现成的库,方法特别多,感觉用过高级语言之后都不想去碰C了。
现在也觉得C开发效率有些低,而且目前我们的系统中有很多malloc和free操作,一不小心很容易造成越界,经常出现程序崩溃。而且组里面的有几个人没有抽象思维,不会抽象合并代码,写的C代码,代码重复率特别高。bug多,开发一直都比较低效。
所以想着更换高级一些的语言能不能提高开发效率。因为是在linux下开发,高级然后开平台比较好的也就C++可选了。(java 依赖虚拟机,执行效率也比c++差)C++的现成方法比C多,内存越界检测工具和手段也比C多,尽可能的减少内存越界崩溃的bug。

请问我这样的想法靠谱吗?


当然C++的缺点是比C复杂,所以能写好C++的程序员较少,我担心,让水平不够的程序员写C++比让他用C 写结果还更糟糕。


大家有什么好的建议吗?C 有没有一些好的开发框架和规范等(比如像web开发就要spring,nodejs,angularjs等等之类提高效率的框架),C++呢


据说C++的标准比较混乱,导致不同的编译器出来的结果不同,所以兼容性差,请问这个问题严重吗?
分享到 :
0 人收藏

9 个回复

倒序浏览
2#
sp178  2级吧友 | 2018-10-16 00:37:19 发帖IP地址来自
我觉得,你们是你们团队的问题,你问了这么半天,我感觉从相对底层来说,似乎你对动态库加载和系统调用的知识比较缺乏,否则也不会去问c和c++这种问题,即使是单片机,因为,就算按照你们c的思路走,你们的技术路径也比较可能是用c++编写有c接口的动态库。再集成到一起。这样既能兼容老代码,也能使用新技术。这本来不应该是一个多年使用c开发的人应该问的问题,竟然你问了,而且问的实在不怎么有深度,感觉都不用说c++,就是c你们也没有什么深入了解的感觉。所以,我觉得你们还是花钱找个靠谱的技术顾问,让他给你们搭个靠谱的框架,然后选择一个相对适合的技术栈比较好,同时,组织个学习班,深入学习一下和这个需要相关知识,起码把操作系统内核和库这两个得有点概念吧,不然,实在有点堪忧啊。
3#
spygg  3级会员 | 2018-10-16 00:37:20 发帖IP地址来自
感谢邀请,诚惶诚恐。不过感觉你描述的情况恕我直言是基本功太差了。


       感觉C语言确实开发效率不如C++高(高手例外的啊)比如我现在很多时候都会用Qt开发,轮子很多,拿来就用而且肯定比我从头弄要好,但是C++遇到bug时一点都不比C好排查啊!

一点小建议:从良好的编码风格做起……
4#
友情  1级新秀 | 2018-10-16 00:37:21 发帖IP地址来自
而且组里面的有几个人没有抽象思维,不会抽象合并代码,写的C代码,代码重复率特别高。bug多,开发一直都比较低效。

我觉得这不是语言问题,答主觉得换个语言能挽救吗。
5#
黄珏珅  2级吧友 | 2018-10-16 00:37:22 发帖IP地址来自
泻药

我觉得主要是团队能力的问题吧……

语言我觉得不是主要问题,C++的复杂程度比C高不只1个档次……

如果团队里面还是存在梯度,有相对比较优秀的同事,那还是比较好处理的,只需要制定编码规范,然后引入code review机制即可。对于反复review还达不到质量要求的,还是换人吧。

如果团队都很junior,那说明需要引入一些资深一些的人进来。
6#
Hefe  3级会员 | 2018-10-16 00:37:23 发帖IP地址来自
感觉这不像用了4-5年C的问的问题啊,你确定用的不是PHP? hahaha
7#
lgxZJ  1级新秀 | 2018-10-16 00:37:25 发帖IP地址来自
  • (对于普通人来说)提升开发效率 ≈ 降低运行效率。 但只要抓准80-20原则,这应该也不是事儿。
  • 高级语言开发效率确实高一点。但是学习语言也是需要时间的,尤其是C++这种复杂的语言。至于bug多。。。那可能是你们的员工水品还不够高。
  • 选用语言应该看使用环境。比如单片机就很少用C++的吧,有些宣称用C++的实际上也只是停留在C。
  • C++编译器标准支持度问题。。。。。。。难道你要用多个编译器编多个版本?
8#
ggff ss  4级常客 | 2018-10-16 00:37:26 发帖IP地址来自
如果可以 建议直接上 .net core + C# 这个组合
9#
汪周洋  3级会员 | 2018-10-16 00:37:27 发帖IP地址来自
你用Java,c#觉得好,一是因为语言高级库多,而是开发调试工具好。Linux下面用c++开发调试工具并不好用,需要自己摸索,库自然比c好多了,总得来说体验没有你用Java和c#来的好
10#
匿名用户   | 2018-10-16 00:37:28 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP