`
touchmm
  • 浏览: 1037138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

语言及其应用

阅读更多

我本来就《C++不是万能的》一文写了一个续篇,令狐提醒我说:

C++作为一种语言,它拥有任何特性都是没有问题的,并不存在什么“多余的特性”一说。从这个角度上说,C++标准委员会的一切努力都是有意义的。因为它们是在完善C++语言本身
但是,作为项目开发来说,开发语言并不是唯一的决定因素。没有必要将语言限制在仅使用C++上。在这种背景之下,其它几种语言的组合,可能会比单一使用C++,来得更好。尤其是像C++这样,编译器对标准的实现都未必完整和正确的复杂语言,使用那些过于“高级”的特性其实是会带来风险的。事实上,很多公司在实际使用C++的时候,都会或多或少的通过代码规范进行一些裁减,减少那些“C++高级特性”的使用。
谈这个问题的时候,理论归理论,实践归实践,这样比较好。把语言特性、语言本身发展的争论和语言在项目中应用的争论放到一起,很容易把自己都绕进去的。

我醒悟过来,的确是有些不妥,于是改写成现在这一篇,主要是作为对上一篇中一些评论的回复。

fastzhao所说,语言问题在大多数时候“只是个信仰的问题”。只是这一次在于Kakurin要把自己的信仰强加于Torvalds。在Kakurin们看来,C++就是万能的,Torvalds不用C++是不对的,但我不这么认为,所以我就掺和了。

祭出Bjarne或标准委员会是一件很可笑的事情,因为正如令狐所说——语言本身和语言的应用是两回事,Bjarne等大师们考虑的是语言本身的问题,我们考虑的应用的问题。

一个人所处的位置决定了TA看问题的角度脱离位置来谈问题就是空谈。所以在我在前文里反复强调,对于Torvalds的Git以及云风或sunway他们的项目来说,C++并不总是最合适的。他们都是经验丰富的开发专家,在语言的应用层面,考虑得比Kakurin们要全面得多。

不可否认,C++的很多feature都是很好的东西,单是一个template就让多少别的语言用户馋得流口水。但是并不是说C++具有所有C(旧版)的feature并提供更多的可能性,用C++就一定更好。举一个最简单的一个例子:在C里,一句“a=b+c;“,每个C程序员都可以理解,并且通常不会有什么误解,对于C高手来说,甚至可以一眼看出目标代码会是什么样的。但是在C++里呢?谁知道加号有没有做过运算符重载。

duyanninglaibach0304所说,既然用了就要了解,这是没错。但这只是站在一个Coder的位置上来看,而作为一名leader,却不可能要求team里 的每一位成员都能做到。dick_song说leader在分配人员的时候就应该知道成员加以区分适当使用,但作为公司特别是软件公司来说,压低人力资源 成本是很重要的,所以leader能用到什么水平的人,其实也没有什么决定权。

duyanning说他想不出有适合C而不适合C++的地方。如果仅仅是从个人使用的技术层面上考虑,我的确也很难想到有什么适合C而不适合C++的地方。但是如果是在一个实际项目的团队应用层面呢?想不出其实只是因为碰到过的状况还不够多

dogdotnet说的没错,C++只有少数优秀的程序员能够驾驭,但是软件公司要的是生产效率,等不及公司的所有程序员都成长为优秀的程序员,在他们还没有成长起来之前写出来的C++代码不但没有效率,更没有质量。

就我用过的几种主流语言来说,C++无疑是最接近万能的但是“能”并不意味着“好”。比如说tuple吧,boost里也有tuple,但是跟python简单直接的tuple相比,boost的tuple则明显面目可憎。

刘未鹏在《为什么C++》说得不错,只要谨慎地使用C++,它的确能为我们提供更多可能性。你可以要求自己谨慎并尽可能做到,但是对于团队中的leader,你最多只能要求成员们谨慎,但他们能做到什么样的程度却是个未知数——当然有很多管理方法可以在一定程度上加以控制,比如Code review,但对于公司来说,这又会增加开发的成本。

对了,就是成本!

对 于一个单打独斗的程序员来说,所有成本就是自己,所以C++带来的好处都是实实在在的好处。但是对于一个团队来说,会有很多额外的成本要考虑,比如训练团 队成员达到某个水平所需要的成本,比如Code review的成本,比如某个成员对C++某个特性的误用造成的修改成本……C++的高级特性带来的好处是不是足够补偿这些成本?

综合所有的成本考虑,作为leader可能就不得不在团队中限制使用C++的高级特性,甚至于在某些极端的情况下需要使用C,这也就不足为奇了。

语言本身主要是一个技术问题,而语言的应用则需要面对更多技术以外的问题。

分享到:
评论

相关推荐

    《MATLAB语言及其应用》上机指导书_《MATLAB语言及其应用》上机指导书_

    《MATLAB语言及其应用》上机指导书是学习MATLAB编程的重要参考资料,旨在帮助读者深入理解和熟练运用MATLAB进行数值计算、符号计算以及图形用户界面(GUI)设计。本指导书详细介绍了MATLAB的基本概念、操作及应用,...

    PLM程序设计语言及其应用

    ### PLM程序设计语言及其应用知识点总结 #### 一、PL/M语言简介 - **定义**: PL/M(Program Language for Microprocessors)是Intel公司在上世纪70年代开发的一种高级编程语言,专为Intel微处理器设计。 - **特点**...

    Python语言及其应用第五章练习答案

    在"Python语言及其应用"这本教材的第五章中,我们深入探讨了Python的一些核心概念和实际应用。这一章可能涵盖了变量、数据类型、控制结构(如if语句、for循环和while循环)、函数的使用、模块导入、异常处理以及面向...

    python语言及其应用mobi,kindle版本

    python语言及其应用mobi,kindle版本

    Python语言及其应用第七章练习答案

    Python语言及其应用第七章练习答案

    VHDL语言及其应用

    VHDL语言及其应用

    pyphon语言及其应用

    总的来说,"pyphon语言及其应用"这本书涵盖了Python的基础知识和实际应用,无论是对于想要进入编程领域的新人,还是需要提升Python技能的专业人士,都是一本宝贵的资源。通过阅读和实践书中的案例,读者可以逐步掌握...

    PYTHON语言及其应用

    本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x。书中首先介绍了Python 语言的一些必备基本知识,然后介绍了在商业、科研以及艺术领域使用Python 开发各种应用的实例。文字简洁明了,案例...

    JAVA编程语言及其应用

    ### JAVA编程语言及其应用 #### 摘要 本文旨在介绍近年来在网络中兴起的一种面向对象的编程语言——JAVA。文章详细阐述了JAVA语言的特点、基本数据类型、对象以及其广泛应用领域。随着互联网(INTERNET)的普及和...

    MATLAB语言及其应用

    总之,MATLAB语言及其应用课程不仅提供了一个系统学习MATLAB的机会,而且为学生将来从事相关领域的研究和工作打下了坚实的基础。通过本课程的学习,学生将能够具备使用MATLAB进行科学计算、数据处理和算法开发的基本...

    常用计算机语言及其应用.docx

    常用计算机语言及其应用 计算机语言是计算机科学中的一门重要领域,涉及到软件开发、编程、算法设计等多个方面。本文将对常用计算机语言进行总结,并对其应用进行剖析。 1. C 语言 C 语言是一种古老的程序设计...

    Python语言及其应用1

    Python语言及其应用是这本书的核心主题,它涵盖了Python的基础知识和在不同领域的实际应用。Python是一种高级编程语言,以其简洁、易读的语法而闻名,被广泛应用于商业、科研以及艺术领域。本书特别强调了Python 3.x...

    《Python语言及其应用》

    《Python语言及其应用》这本书是Python入门学习者的理想选择,主要涵盖了Python 3.x版本的基础知识和实际应用。作者Bill Lubanovic通过简洁易懂的语言和丰富的实例,为读者展示了Python的强大功能和广泛用途。 首先...

    PYTHON语言及其应用 PDF

    本书内容易于理解,而且读起来生动有趣,是编程和Python初学者不可多得的优秀教程。书中首先介绍了Python的基础知识,然后逐渐深入多种主题,结合教程和攻略式风格来讲解Python 3中的概念。每章结尾的练习可以帮助你...

    Python语言及其应用第四章练习答案

    Python语言及其应用第四章练习答案

    PLM程序设计语言及其应用_0分

    本文是由袁涛、孙腾谌1990年编写的《PL/M-96程序设计语言及其应用》一书翻版而来的。录入时是由一小妹完成,此人对计算机语言不了解,录入时错误较多,版面也很粗糟,虽校对过2次,还是发现了些错误! 西安周公:我...

    matlab基础知识教程ppt(全) MATLAB 语言及其应用.ppt

    MATLAB 语言及其应用知识点 MATLAB 是一种高效、功能强大、易学易用的编程语言和开发环境,广泛应用于科学计算、数据分析、可视化、机器学习、人工智能等领域。下面是 MATLAB 语言及其应用的知识点: 1. MATLAB ...

    强烈推荐Python语言教程及案例-《Python语言及其应用》.pdf

    《Python语言及其应用》这本书不仅仅是一本入门指南,更是一本全面介绍Python语言特点和应用领域的综合教材。对于想要学习Python或提高自己Python技能的人来说,这本书是一个非常好的选择。通过阅读本书,不仅可以学...

Global site tag (gtag.js) - Google Analytics