Linux开发人员知道C ++?

我讨论了一会儿。 我在Linux下开发的公司是在ANSI C下开发的。在devise上,我认为很多好处都可能来自C ++。 我们现有的代码将只需要摆脱所有隐式types转换,因为C ++有点严格,它会像往常一样编译和运行。 但是我被告知我们永远不会开始使用C ++。 原因是“Linux开发人员知道C”,但要find知道C ++的Linux开发人员是非常困难的。 就我个人而言,从我在Linux上学习C ++开始,我觉得有点奇怪。 但是,这让我很好奇,我想知道是否有任何统计数字,或者如果你能帮助我在这个声明中得到普遍的感觉。 对于将来的参考很有帮助,因为我一直认为拥有C ++知识的Linux开发人员不会很难find,但是我可能完全错误。

就我所想的设计而言,迁移到C ++可能带来很多好处。

可能(取决于谁来决定在C ++设计)。

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

这并不简单。 如果你改变了编译器选项(或文件扩展名)来切换到C ++,那么你的代码就不能像这样编译(你需要重新编译并进行修改)。

而且,你现有的C代码库将会写出一个写得不好的C ++代码库。

它也可能引入各种微妙的错误,对于经验丰富的C语言开发人员几乎是不可能找到的(例如,对于C和C ++中的数组, sizeof运算符的行为是不同的,但是经验丰富的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 ++(支持虚拟函数表和继承的伪类 – 带有一个将void *作为基本结构的结构,或者具有void *到专门的数据动态创建 – 和其他怪物)。

对于将来的参考是有好处的,因为我一直认为拥有C ++知识的Linux开发人员不会那么难,但是我完全可能是错的。

他们不应该很难找到,但如果你在项目的开始,这只是一个有效的点。 没有一个好的管理者会考虑轻率地改变经验丰富的开发人员,他们只是为了一些设计决定而知道新员工的问题。

如果你能提供更好的切换理由,他们可以考虑。 切换(对于经理)的好理由涉及更低的维护成本,更低的开发成本,更低的风险,更少的努力,更好的进度报告等等。

如果你想继续推动这个变化,那么你必须在这些领域找到一些很好的论点,然后再给他的“Linux开发者认识C”的一些反驳。

你的论据应该足够好,以便克服我在上面提出的论点。

开发Linux排除了解C ++? 奇怪的。 Linux最常见的UI之一就是KDE,而且广泛使用C ++。

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

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

我已经作为C ++维护编码器工作了十年。 平台包括Solaris,AIX,HP-UX和Linux。 我(或任何其他开发人员在同一个团队中工作的)不会暂停思考我们不应该因为“Linux开发人员知道C”的可能性。

有人吮吸了太多的Linux内核邮件列表反C ++宣传。

内核是在C中,将内核转换为C ++可能不是一个聪明的想法。

剩下的软件可以用你想要的来编写 – 我看到了用C,C ++,OCaml,Python,Perl,D,Fortran,Java,Lisp等编写的严格的linux程序(在我的机器上)。

C ++中有相当多的Linux软件 – 例如,整个KDE套件,所有使用Qt的都是C ++。

但是我被告知我们永远不会开始使用C ++。 原因是“Linux开发人员知道C”

国际海事组织,这是胡说, 除非你正在使用内核或可能遇到可移植性问题。 我建议他们看看Qt 4应用程序和KDE。 C很好,但有些事情在其他语言中更容易做到。

原因是“Linux开发人员知道C”

如果“Linux开发人员”指的是“开发Linux内核的人”,那么这是一个真实的陈述。 但是,如果您的意思是“开发在Linux上运行的应用程序的人”,那么这显然是错误的。 人们在Linux上以任何语言进行开发。

无论C ++是否适合您的应用程序的语言是另一个问题,显然我不能回答,因为我对你的代码库一无所知。

对于这个问题,我在Linux上用C ++开发了很多。 还有很多针对Linux的C ++项目,例如整个Qt / KDE的东西。 Linux开发者似乎有点偏向C,因为Stallman 宣称 “你要用C写”。 但是这不是你应该关心的东西。

取决于你正在做什么项目。 C和C ++在Linux平台上“被开发”,每个开发者都有自己的份额。 我从来没有遇到过这样的推理。

内核在C.

以上是我全部答复的内容。

知道C ++的Linux开发人员

是的,为什么不? 系统程序通常是用C语言编写的,但是同时,用Qt / gtkmm编写的* nix有很多自定义的应用程序,它是C ++

inquam – 这是给你自己的开发团队的建议。 考虑宣传你的团队仍然可以继续使用“纯粹的ansi C”代码,但是代码要通过C ++编译器而不是C编译器来编译。 也就是说,将所有项目的.c文件的扩展名重命名为“.cc”(或“.cpp”),并将默认的编译工具设置为g ++(或任何编译器)。

C ++编译器将执行更好的类型安全性,将更多不明确的编码实践视为错误,并在签入之前阻止实际的错误。

将遗留代码从C转换为C ++有一些细微之处,所以可能会将所有新的源文件作为C ++传播。 然后逐渐转换遗留代码。 至少,为你写的代码做这个。 然后在检入之前将文件扩展名改回“.c”。也许这个好习惯会继续。

很多Linux开发人员都知道C#,更不用说C ++了! 🙂

例如,Linux上的主要媒体播放器之一就是C#。