Linux开发人员了解C++?

inq*_*uam 8 c c++ linux

我前一段时间进行了讨论.我在Linux下开发的公司是在ANSI C中开发的.就我认为的设计而言,转移到C++会带来许多好处.我们现有的代码只需要摆脱所有隐式类型转换,因为C++对此有点严格,它会像往常一样编译和运行.但有人告诉我,我们永远不会开始使用C++.原因是"Linux开发人员知道C",但很难找到了解C++的Linux开发人员.我个人觉得这很奇怪,因为我开始在Linux上学习C++.但它让我很好奇,我想知道是否有任何统计数据,或者你是否可以帮助我对这个陈述中的有效性有一般感觉.因为我一直认为具有C++知识的Linux开发人员不会"

utn*_*tim 14

就我认为的设计而言,转移到C++可以带来许多好处.

可能(取决于谁将决定C++中的设计).

我们现有的代码只需要摆脱所有隐式类型转换,因为C++对此有点严格,它会像往常一样编译和运行.

这不是那么简单.如果您更改了编译器选项(或文件扩展名)以切换到C++,那么您的代码将无法进行编译(您将需要检查它并进行更改).

此外,您现有的C代码库将构成一个写得不好的C++代码库.

它也可能会引入经验丰富的C-thinking开发人员几乎不可能找到的各种微妙错误(sizeof例如,C和C++中的数组运算符的行为不同,但经验丰富的C /初学者C++开发人员甚至不会认为熟悉sizeof在他的代码做了一些意外的事情).

原因是"Linux开发人员知道C",但很难找到了解C++的Linux开发人员.

这不是一个正当的理由(如果你在网上找工作"寻找C++ Linux开发人员,你应该得到一些好的简历 - 取决于你的报价).

可能是任何人都可以在贵公司做出决定的信念,也可能只是他们为摆脱你而给出的借口: - \

以下是可能实际适用于您案例的一些原因(反对转换) - 您的经理可能会考虑:

  • 编写代码库的人可能是优秀的C开发人员,但不了解C++ - 或者是初学的C++开发人员和/或可怜的C++开发人员.

优秀的C开发人员经常会让糟糕的C++开发人员(C++中的最佳实践完全不同,并且多次反对C语言中的最佳实践.这是一个问题,因为C++代码看起来很熟悉C开发人员,他认为他的经验适用于它(C中的良好设计决策通常会导致C++中的设计决策不佳).

他们甚至可能是优秀的C++开发人员,但如果是这样的话,那么你的经理应该不知道(如果他们被聘为C开发人员,那么他们的C++技能可能永远不会出现在求职面试中).

  • 您的高级团队成员可能对您的应用程序逻辑有很好的理解.如果您的应用程序切换到C++,则可能必须(并由C++开发人员替换).这样的更改将失去对您的问题域非常熟悉的团队成员.根据您的具体问题领域,这种损失可能是巨大的.

根据代码库的大小和结构,迁移到C++可能是一个非常好的决定.您没有提供足够的详细信息让我们知道是否是这种情况.

例如,我看到一个大的C代码库,多年来最终重新发明C++很差(支持虚函数表和继承的伪类 - 一个结构对基础结构保持空白*,或者一个基本结构有空*动态创建的专业数据 - 和其他怪物).

因为我一直认为具有C++知识的Linux开发人员不会那么难找,所以对未来的参考会有好处,但我可能完全错了.

它们应该不难发现,但如果您处于项目的开始阶段,这只是一个有效的观点.没有好的经理会考虑轻微改变经验丰富的开发人员,他们只是为了一些设计决策而与新员工一起了解问题领域.

如果您可以提供更好的切换原因,他们可能会考虑它.转换(管理人员)的充分理由包括降低维护成本,降低开发成本,降低风险,减少工作量,提高报告进度等.

如果你想继续推动这一变化,那么除了对他的"Linux开发者知道C"的一些好的反驳之外,你必须在这些方面找到一些好的论据.

你的论点应该足够好,以便克服我上面给出的论点.


MSa*_*ers 8

开发Linux会妨碍了解C++吗?奇怪的.Linux最常见的用户界面之一是KDE,它广泛使用C++.

在我的公司,我认为我们很容易有一百个知道C++和Linux的开发人员.虽然很难找到它们,但并不是特别难.很好的工程师很难找到独立于你正在寻找的精确技能.

我们似乎并不是唯一提出这个想法的人.看看Mozilla; FireFox是一个很大的C++项目.WebKit,C++也是如此.