




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
为什么C和C+牛人多?热1已有 28665 次阅读 2009-06-22 09:52 “我的面试感悟”有奖征文大赛结果揭晓!呵呵,这是个找抽的话题,我本人虽然做C和C+很多年,但确实不敢这么说:“C和C+牛人多!”。不过没办法,昨天晚上一个同学在QQ里面问我,希望我就这个话题做个论述。我尝试着答一下啊。一家之言哈,欢迎拍砖=在我们学校里,职场里面,确实有一种看法,玩C和C+的人,水平通常要高一点,而做Java和.net的朋友呢,总是有种要受歧视的感觉。现在虽然好点了,Java多年媳妇熬成婆,已经成为使用率最高的编程语言,Java的粉丝,终于可以喘口气了,狠狠滴BS一下C和C+,呵呵。其他几门语言也在奋起直追。大家总结了很多批评C和C+的话,不是完全的面相对象,太低级,语言太简陋,不是一门程序员友好的语言,=。不过很奇怪,大家一边骂,一边也得承认一个事实,C和C+的程序员,TNND,为啥总是比我们牛一点点?好像大妈生的,让人看了很不爽,呵呵。我当年也有一个例子,刚刚进入迈普公司的时候,我一心想去做路由器,感觉很酷,没想到被分配到网管产品中心,做报表系统,当时全中心是Dephi的天下,好像当时成都电子科技大学开的是Pascal的课,没开C,搞得一帮同学全是弄Dephi,我脑门上写了个VC就混进去了,居然没人说啥,我用VC做报表系统,大家也是敢怒不敢言,呵呵,直到最后,我都调离这个部门了,问当时的组长,如果大家是VC,我用Dephi,会怎么样,他笑了一下:“分分钟被杀掉!”。呵呵,看来,就是在Dephi群体里面,做VC的程序员,还是受到了大家的尊重。我当年还听到这么一句话:C和C+语言,是所有程序设计语言的皇冠,而VC+,则是皇冠上的明珠。这话谁说的,我记不得了,不过,作为VC的粉丝,我当年可是着实得意了一小把。呵呵。说了这么多,越来越找抽了哈,各位看肖某人一定很不爽,这不是捅大家肺管子嘛?呵呵,其实不是的,我今天借着那位同学的话题,给家分析一下其中的原因。1、C和C+够笨,逼的程序员自己做很多事。C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C+呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。我个人的理解,之所以C和C+程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C+太强大,而是这两门语言太弱智了。C和C+,由于设计时,主要针对系统底层,操作系统层面的应用,因此,其提供的核心基本库相对比较简陋,没有提供很多华丽的框架,VC的MFC不算啊,那是针对Windows的,不是C+的基本特性。这直接导致了C和C+程序员,在进行大型开发时,缺乏现成的框架模板可以使用,也没有太多的工具库可以使用,像Java等其他语言,基本都提供了常见的几乎所有数据结构类,或者工具模块,不过,C和C+没有,搞得C和C+程序员,这群可怜的娃,啥事都喜欢自己做。我就经常干这种事,实现个队列,实现个树,经常自己从头写起,无形中呢,自己被逼的把很多常见数据结构,弄得滚瓜烂熟,很多时候,小弟问我一个功能如何实现,我说“站着别动,立等可取!”,然后几分钟,十几分钟就实现一个给他,呵呵,这不是我想牛叉,这是被逼出来的。学生大本营很多朋友教训我,说我重复造轮子,弄得我哭笑不得,有那么多现成的轮子用,哪个龟孙想自己造,这不是没办法给逼的嘛,5555。2、C和C+够通用,逼的程序员广种薄收。这个通用,分两层意思。一个是从应用角度,C和C+是目前我见到唯一的可以适应任何应用场合的语言,它对应用通用。起码,除了汇编语言,C和C+大概是唯一用来写操作系统的语言了,很多底层的驱动程序,操作系统内核级模块,只能用C和C+来开发,因此,一个C和C+程序员,他唯一不知道的,可能就是不知道自己以后会去写什么平台的什么程序,这要求他必须努力学习很多语言之外的知识,为下一份工作做好知识储备。第二个是从跨平台来说,C和C+又不是很通用,虽然从第一天开始,C就吹嘘自己很牛叉,是跨平台语言,但是,就我个人的经验,可以很负责任地告诉大家,它在吹牛。没错,作为基本语句,C和C+程序可以到大多数平台的编译器下开发,不过,稍微涉及应用一点的库,差异就很大,比如同样的socket编程,Windows下和Linux下就有很大差异,什么线程库啦,很多,差异都很大。不过,日常工程开发,离了这堆库,程序员估计也不用做什么事了,因此,很多C和C+程序员自从被骗得上了贼船,没办法,就得面对无穷无尽的学习,操作系统,任务调度,内存管理,资源管理,很多都得自己来,去理解各个操作系统的差异性,然后自己写程序来适应。这么弄下来,搞得C和C+的程序员,无形中对于很多语言之外的知识,掌握得就多一点了。3、C和C+不是一门应用级的语言,其程序员的要求也不是应用程序员的要求对于很多语言来说,比如Java,PHP,Python等,在开发之初,都有明确的应用方向,同时,为了适应跨平台需求,都做了一定性能上的牺牲,这类语言,一般比较擅长应对企业级数据库应用,即办公应用系统,以及网站开发等。应该说,这已经是很大的市场了,足以让一个程序员吃一辈子的饭,因此,学会了这类语言以及应用开发,一般已经可以再80%90%的开发市场找到饭碗了。不过,C和C+不一样,C和C+从设计出来,就没有明确的应用方向,或者说,唯一明确的应用方向,就是做操作系统。我们知道,操作系统是适应面最广的应用软件,所以,C和C+就显得很保守,为了通用,它宁愿不提供什么功能过去强大的库,一切靠程序员自己来。换而言之,做C和C+的程序员,或多或少都有一点操作系统,系统底层相关的知识,这部分知识,一般难学,费解,比起学习应用开发,使用某些框架模板来做某一类型应用来说,C和C+程序员需要更加深入的思考加学习,无形中,造成这类程序员没事喜欢瞎琢磨的特性,我就没事老是喜欢想操作系统内核一些功能,我来实现该怎么做。这种事情想多了,不用说大家也知道,对自己的水平无形中,有一点点促进,因此,C和C+程序员往往看问题会深入一点,善于思考。4、C和C+是高性能应用的唯一选择,这造成程序员必须学习优化我们知道,虽然很多语言都可以写游戏,不过,作为大型游戏系统,比如暗黑破坏神吧,还有很多网游,出于高性能图形动画的需求,必须使用C和C+来实现,才能保证效率。很多大型网站的后台数据库,为了响应高吞吐量,高并发量的客户请求,也需要使用C和C+进行优化。这就造成了,C和C+程序员一玩就是大的,必须对优化非常熟悉才行。我们知道,优化,有两个要求,一是对各类算法必须很熟悉,可以进行算法比较,另外,也是需求分析的专家,可以根据需求特性,做量身定做的优化。这就要求C和C+程序员,经常陷入算法比对之类的任务,而且,也不能仅仅做一个程序员,还必须时刻思考客户需求,对需求做不断的再分析,才能找出优化之路。我们知道,任何事情,做多了,就成熟练工了,自然也就来得快,C和C+程序员就是这个样子。可能还有很多其他理由,不过,我匆忙间,也就想出这几条。不过,大家可以看到,日久天长,C和C+程序员,不管是否自愿,但工作和学习中,确实比别语言的程序员在多想,多看,多学,自然而然,就显得很牛叉了。但大家注意到没有,其实我上面分析的几点,与C和C+其实没有太多的关系,任何一门语言的程序员,只要坚持上面几点,不断*自己,其实都可以达到牛叉的地步。所谓“功夫在诗外”,又所谓“穷人孩子早当家”,C和C+之所以显得牛人多,并不是这两门语言有多好,其实恰恰相反,是这两门语言没有给程序员提供太多帮助,而其应用环境又太多太广太深,逼的程序员在自我不断的学习,几年,十几年下来,自然显得比小日子过的还算不错的其他语言程序员,要深入一点。但是,我们还是要看到,每一门语言,都有其存在的价值,起码程序语言排行榜前十的语言,都是伟大的语言,都可以产生大师,我觉得大家完全没有必要人云亦云,都一窝蜂跑来做C和C+,在很多应用市场上,Java、PHP等脚本语言,都以开发周期短,开发时间快,成为优选语言,C和C+完全没有办法和这些语言比较。计算机软件开发,发展到现在,其实已经是很细分的市场,有专门的应用软件市场,也有系统软件市场,C/C+和Java等,各自应对的是不同的市场,因此,二者其实没有可比性的。建议已经选择Java、.net等其他语言方向的同学,不要跟风,在自己的领域深入进去,你们也能成为牛人的。评论 (169 个评论)一路自恋 王同辉(C/C+学生) 2009-06-22 10:09 我想应该是java之类的语言有很多华丽的东西,初学也能做得出比较像样的东西,而c+之流的写出华丽丽的东西那得付出比java之类语言要多得多,但是这些学的多的多的东西当然是有用的,也会锻炼大量的思维,这好像就是牛的本质吧,所以c+才会显得很牛李宁(Java老师) 2009-06-22 10:43 语言只是一种表达方式,就象中文、英文、法文一样,更重要的是用自己喜欢的语言可以做出来什么。各种编程语言的高手并不只是对语法、类库熟悉,还要对高级算法、系统设计理念融会贯通。只要达到这种程度,不管用什么样的语言,VB、delphi(pascal)、C+还是Java,都可以做出另人钟爱的系统来。就象Solaris的操作系统桌面(类似于KDE)就是用Java做的。还有Eclipse也是用Java做的。伟大的产品并不在于什么语言,而在于能给我们带来什么。肖舸 2009-06-22 10:43 李宁(Java老师): 语言只是一种表达方式,就象中文、英文、法文一样,更重要的是用自己喜欢的语言可以做出来什么。各种编程语言的高手并不只是对语法、类库熟悉,还要对高级算法、系统设没错,同意,顶!回复 举报 董昌朝(C/C+老师) 2009-06-22 10:58 如果c能做出MVC,能有各种各样的框架,拖拽配置就可以进行开发的IDE,估计也会培养出一堆懒惰的C程序员,可是最常用的就是gcc之类的,逼得大家只能自己动手了洛阳师范 陈占峰(C/C+学生) 2009-06-22 11:08 四川师范大学 罗恒锋(C/C+学生) 2009-06-22 11:19 这么一说:我更有信心了,呵呵不断学习就是很快乐的一件事!麦浪(C/C+学生) 2009-06-22 11:56 一般的“高手”会搭积木;更牛的高手不仅会搭积木,还会造积木。这是区别之一。内蒙古农业大学 尹晓日(C/C+学生) 2009-06-22 12:20 说得我都不敢学c+了东大 张国宝(Java学生) 2009-06-22 12:57 在学校,C和C+还是受重视程度高的武科大 黑照(Java学生) 2009-06-22 13:02 普罗通信西安有限公司 肖舸(C/C+老师): 也算一个应用软件啦,仔细想想,抽象出来看。软件显然是分系统软件和应用软件.而操作系统显然是系统软件成功是逼出来的.*市中等职业技术学校 刘hack(Java学生) 2009-06-22 13:09 貌似笔者还在维护c/c+的地位嘛!理由:操作系统、C等是计算机必入门的理论课程。肖舸 2009-06-22 13:20 刘hack(Java学生): 貌似笔者还在维护c/c+的地位嘛!理由:操作系统、C等是计算机必入门的理论课程。无所谓维护,每门语言都有其存在的道理,Java如此,C和C+也如此。这里我只想客观论述一下,帮助其他语言的程序员树立信心。湖南大学 刘鹏飞(C/C+学生) 2009-06-22 14:18 分析的很好.之前学C/C+,这段时间又被逼着学JAVA,有时候真的感觉好乱.毕竟一门都没怎么掌握好.代码人生(C/C+爱好者) 2009-06-22 22:30 无意中看到,只能像楼主说的,你做过C和C+也是白混了。C+没有数据结构方面的类吗?STL里面每个都是经典。说到GUI库,MFC本身就是一套Win32的类库集合,当然也有不少开源的,甚至是可跨平台的GUI开发类,难道你能把他们和C+分开?C+之所以让其他人觉得牛,不是因为他们弱智,什么都需要自己来写,而是多方面的原因:一方面因为他们贴近系统层,有相对于其他语言的运行性能。另一方面,因为保留了指针,使得操控起来相当灵活。再一方面,因为模板的运用,把C+推上了一个新的台阶,甚至在语言基础之上生成了函数式语言,而且也改变了高性能运算只能采用Fortran的历史MFC是针对Windows的,不是C+的特性,那你平常用的Struts,Spring之类的是JAVA的特性吗?你说C/C+跨平台是吹牛,只能说明你自己水平不够,写的代码太臭了。我参与过的一个C+的项目,曾经能在Win32, IBM AIX, Solaris, HpUx等多个系统运行。JAVA的跨平台方式是一次编译,处处运行吧。C/C+的跨平台是一次编码,处处能编译运行以上只是个人的一点见解,欢迎探讨另外,你说你做过Delphi,其实你就更不应该去误导其他人。Delphi6的性能也是很高的,而且做为一个RAD应用开发工具开发GUI也是相当便捷。另外估计你没有在里面使用过嵌入汇编吧?那也是相当牛 回复 举报 代码人生(C/C+爱好者) 2009-06-23 09:05 刘hack(Java学生): 从50、60年代到就有了FORTRAN、LISP、COBOL等现在都广泛使用语言。计算机本来就是向高级应用进化的嘛,以后还不断进化。语言不外乎表达思想,比如:一扇由声音控只能说你一叶障目。任何一种语言都不可能适应各个方面的应用(基于其简易程度而言),JAVA/PHP之类的语言天生就是为网络而生,它们在开发互联网应用极其方便,但如果你用他们来开发GUI应用试试,他们是C+/Delphi类语言对手吗?连VB都不如。历史的潮流不可改变的是什么呢?是物尽其用,不是JAVA将引领C/C+或者说C/C+类开发工具将不复存在。你能说VC将从此消失吗?估计你也只知道.Net了 *市中等职业技术学校 刘hack(Java学生) 2009-06-23 11:43 代码人生(C/C+爱好者): 只能说你一叶障目。任何一种语言都不可能适应各个方面的应用(基于其简易程度而言),JAVA/PHP之类的语言天生就是为网络而生,它们在开发互联网应用极其方便,但如果你用他像甲骨文数据库Oracle就是全部改用java实现的,在企业管理系统上招聘都是.net, c/c+ 的应用慢慢变成一个中间层,代替它们的是脚本或其他语言的东西。回复 举报 代码人生(C/C+爱好者) 2009-06-23 13:49 刘hack(Java学生): 像甲骨文数据库Oracle就是全部改用java实现的,在企业管理系统上招聘都是.net, c/c+ 的应用慢慢变成一个中间层,代替它们的是脚本或其他语言的东西。ORACLE数据库全部采用JAVA做开发,对这点我表示怀疑,你要说管理器我肯定相信。我还是这样说的,物尽其用,每种语言都有它自己的用武之处。回复 举报 tongshou(C/C+爱好者) 2009-06-23 15:11 刘hack(Java学生): 从50、60年代到就有了FORTRAN、LISP、COBOL等现在都广泛使用语言。计算机本来就是向高级应用进化的嘛,以后还不断进化。语言不外乎表达思想,比如:一扇由声音控你可知道LISP, FORTRN, JAVA 等语言本身是怎么做出来的? !说个具体的, JAVA语言中的垃圾回收功能块是用什么语言编写的?懂得C/C+语言的人,往往会对其他语言看得比较透, 反之,其他语言使用者,如果没有C/C+知识, 往往连本身语言都认识不清楚, 只会盲目说 好!好!好!不是他们笨, 而是他们缺少C/C+知识.这就是C/C+牛的地方!回复 举报 tongshou(C/C+爱好者) 2009-06-23 15:46 曹洪伟(3G/移动开发老师): C和C+太强大,而是这两门语言太弱智了。说C/C+太弱智, 有误导人的感觉!C/C+称得上万能语言, 不仅功能非常强大,而且非常灵活!,不可避免地该语言的程序的粒度会很小. 编程会比较费时间. tongshou(C/C+爱好者) 2009-06-23 16:14 C/C+语言是牛语言, 但是并不是会用C/C+的人都牛,同样用C/C+语言搞的东西,可能会相差一万八千里!比如,好几家 国产CAD 用C/C+完成某一个功能:把1000条直线LINE连结成一条多义线POLYLINE,会一下子消耗几百个M內存,费时几十秒, 而AutoCAD仅仅消耗几个M, 且在瞬间(1 秒)完成.回复 举报 肖舸 2009-06-23 16:20 tongshou(C/C+爱好者): C/C+语言是牛语言, 但是并不是会用C/C+的人都牛,同样用C/C+语言搞的东西,可能会相差一万八千里!比如,好几家 国产CAD 用C/C+完成呵呵,所以我说,C和C+也只是显得牛人多点,并不是所有的人都是牛人。回复 举报 *市中等职业技术学校 刘hack(Java学生) 2009-06-23 19:42 tongshou(C/C+爱好者): 你可知道LISP, FORTRN, JAVA 等语言本身是怎么做出来的? !说个具体的, JAVA语言中的垃圾回收功能块是用什么语言编写的?懂得C/C+语言的人,往往会对其他语言各位同学,我从宏观上讨论语言的地方,而不是从微观的角度比较两种语言的优劣,其实硬件结构、数据结构、操作系统都是基础文化的东西,没必要争那种语言好坏。对复杂的问题,以往都是从抽象分层的角度来化解。例如,计算机网络分层就是为上面的层提供抽象接口。操作系统就为程序提供硬件抽象接口。脚本就抽象了算法和数据结构。如果你只懂一门语言,就没必要讨论了,你只要领到别人划分给你的那层次任务,低着头一直做就可以了。回复 举报 tongshou(C/C+爱好者) 2009-06-23 20:42 争论语言好坏很有必要,许多语言中的问题都是在争论中被发现,这对使用好语言是很有帮助的. 人们是不可能从教科书里获得这些的(里面只有美益之词!)语言的好坏,有点象人的美丑,尽管情人眼里出西施 可以让人啊Q一下,但是美就是美,丑就是丑, 西施的美世人应该都不会否认吧!回复 举报 黄海峰(网络管理爱好者) 2009-06-23 21:01 你说vc还是明珠,气死我。不知道为何我对微软很排斥,用linux,用gcc,但是公司全是windows pc,气死,不干就没饭吃了,继续不服气地写.net的人路过回复 举报 肖舸 2009-06-23 21:03 黄海峰(网络管理爱好者): 你说vc还是明珠,气死我。不知道为何我对微软很排斥,用linux,用gcc,但是公司全是windows pc,气死,不干就没饭吃了,继续不服气地写.net的人路过我对VC也很排斥的,呵呵,我现在也是用gcc为主。回复 举报 江西蓝天学院 柳无云(C/C+学生) 2009-06-23 21:22 知识在于积累,学习在于坚持.回复 举报 tongshou(C/C+爱好者) 2009-06-23 21:29 微软的软件到处.NET,确实很烦!尤其把东西做得越来越大,越来越繁!看看其VB.NET:VB.NET根本上不是VB的提升版本。尽管其功能很强大,但是编程烦琐,令人费解,这是背道而弛的做法,当初人们喜欢用VB,就是看中它的简洁!有人以AutoCAD里画一条直线为例子,进行编程比较, 结果太恐怖了(这里比C+还繁):VB.NET (和 VSTA): _Public Sub DrawLineA()Dim myTransMan As DatabaseServices.TransactionManagerDim myTrans As DatabaseServices.TransactionDim myDoc As ApplicationServices.DocumentDim myDWG As DatabaseServices.DatabaseDim myBT As DatabaseServices.BlockTableDim myMS As DatabaseServices.BlockTableRecordDim myLine As DatabaseServices.LineDim StartPoint As New Geometry.Point3d(1, 2, 3)Dim EndPoint As New Geometry.Point3d(4, 5, 6)myLine = New DatabaseServices.Line(StartPoint, EndPoint)myDoc = ApplicationServices.Application.DocumentManager.MdiActiveDocumentmyDWG = myDoc.DatabasemyTransMan = myDoc.TransactionManagermyTrans = myTransMan.StartTransactionmyBT = myDWG.BlockTableId.GetObject(OpenMode.ForRead)myMS = myBT(BlockTableRecord.ModelSpace).GetObject(OpenMode.ForWrite)myMS.AppendEntity(myLine)myTrans.AddNewlyCreatedDBObject(myLine, True)myTrans.Commit()myTrans.Dispose()myTransMan.Dispose()End Sub -VB:Sub DrawLineA()Dim StartPoint(0 To 2) As DoubleDim EndPoint(0 To 2) As DoubleStartPoint(0) = 1: StartPoint(1) = 2: StartPoint(2) = 3EndPoint(0) = 4: EndPoint(1) = 5: EndPoint(2) = 6ThisDrawing.ModelSpace.AddLine StartPoint, EndPointEnd Sub回复 举报 曹洪伟(3G/移动开发老师) 2009-06-23 21:29 tongshou(C/C+爱好者): 说C/C+太弱智, 有误导人的感觉!C/C+称得上万能语言, 不仅功能非常强大,而且非常灵活!,不可避免地该语言的程序的粒度会很小. 编程会比较费时间.只是应用一下肖老师的话而已,呵呵 赵宁(C/C+爱好者) 2009-06-25 15:54 C/C+牛X就牛X在执行效率上,除汇编外无人出其右,然而汇编又太难。C/C+就语言方面非常自由,有很多奇技淫巧,学习其它语言的程序员很难理解这些(一个指针就够他们受的了),所以就显的很高深了。 代码人生(C/C+爱好者) 2009-06-26 15:33 朱志兵(PHP老师): C/C+牛人多的原因,是搞的人越来越少,逼着搞的人不得不提高自身的水平。这个你可说错了,C/C+的牛人我觉得多的时候反而是不是现在,而是以前。现在的人大多数都太浮跨了,动不动就是C+不够面向对象,太过程化了,要不就是说C+连开发个网页都不行,没有什么好用的库之类的。回复 举报 林冲(职业指导爱好者) 2009-06-26 15:57 接触c有十年了,目前正用C+做3D项目,但还是不敢说掌握了C,就以声明一个类指针来说吧,实际使用时类指针即可指向对象,也可作为对象数组使用。C的灵活实在是叹为观止。C究竟能做什么完全取决于使用者的实际技术水准,所以我也真不知道C到底是最好的语言还是最差的语言。只知道用好c+难,用好c+的人学java类的语言实在是easy.tongshou(C/C+爱好者) 2009-06-26 20:39 编程出现的问题,很多时候是编程人员本身素质、习惯等问题,与语言本身没有多少关系,但是人们却习惯把责任推到语言头上。比如C/C+语言中的“指针”,称得上是C/C+语言的 精髓 和 灵魂,却不知道遭到多少人的鞭鞑。“对象”与“过程”是两个永远相互依存的东西。Java中的成员函数体,就是个不折不扣的“过程”,离开这个“过程”,看看它的“对象”如何存在?Java 因为析构函数功能的永远不实用(归因垃圾回收机制的落后。),Jave的“对象”,是不健全的,对于有C基础的人用起来会很难受。因此说,最好的“对象”体验,在C里,最好的过程体验应该在C里! Ufida 秦健(Java菜鸟) 2009-06-27 13:17 代码人生(C/C+爱好者): 无意中看到,只能像楼主说的,你做过C和C+也是白混了。C+没有数据结构方面的类吗?STL里面每个都是经典。说到GUI库,MFC本身就是一套Win32的类库集合,当然也有言辞之间看出,阁下可真不谦虚啊不过除了“你做过C和C+也是白混了”和“只能说明你自己水平不够,写的代码太臭了。”之外,没看到有价值的观点。其实,随便写个helloworld也能在多个平台编译运行,真的,不骗你。“什么都需要自己来写,而是多方面的原因:一方面因为他们贴近系统层,有相对于其他语言的运行性能。另一方面,因为保留了指针,使得操控起来相当灵活。再一方面,因为模板的运用,把C+推上了一个新的台阶,甚至在语言基础之上生成了函数式语言,而且也改变了高性能运算只能采用Fortran的历史”我想问一下,贴近系统层有什么好处,有相对于其他语言的运行性能这个结论是如何得出的?表告诉我书上写的哈。保留了指针,既有好处也有坏处,当你找不到内存泄露的时候你会发现灵活也是有副作用的,关于模板的运用,目前我还没见谁大规模的使用模板开发,我研究过C+的静态模板,概念很潮,不过并不容易理解和使用,还有跟踪调试也不容易,我就没打算用这技术。至于改变XXX的历史,我怎么觉得这么耳熟呢?还有什么人民群众情绪稳定,好耳熟啊。PS:在Delphi中嵌入个汇编就真的牛逼哄哄了吗?看到你这话,我矛盾了,想了半天,真想不明白,除了访问硬件之外,为什么要在Delphi里面嵌入汇编?为嵌入而嵌入有啥意思?程序语言的不断更新就是为了让写程序更容易,维护程序更容易的嘛。其实,我觉得,真正牛逼的,是拿个小刀在盘子上刻一个程序,放光驱里能跑的上好,这个就很牛了,这个真的不是一般的牛!牛魔王转世!回复 举报 代码人生(C/C+爱好者) 2009-06-27 14:55 Ufida 秦健(Java菜鸟): 言辞之间看出,阁下可真不谦虚啊不过除了“你做过C和C+也是白混了”和“只能说明你自己水平不够,写的代码太臭了。”之外,没看到有价值的观点。其实,随便写个hellowo我从头到尾没说过我厉害,说博主白混了,也是有原因的:做为一个C/C+开发人员说这门语言没有数据结构类,这不白混是什么,难不成STL里面的和MFC里面的不算数吗。博主说C/C+跨平台太臭,这确实是对C/C+的侮辱,要不然就是博主本身根本没这方面经验。就上面这些,你如果想批判我,最好找点实际点的理由,不是凭感觉,凭点心头之火。C保留指针或者宏,首先确实存在风险,但你自己也没否定它的灵活性吧。很多东西都是有两面性,那得看用在谁手上。你不能因此怀疑它的存在合理性。我说模板(更直接点说是表达式模板)它确实改变了以前高性能科学计算只能使用Fortran的历史,你如果有更好的看法,还是欢迎你来发表。模板当然也不是谁都能用的,更别说模板元了不管是Delphi里面还是C+里面嵌入汇编不是说它牛逼,是因为它能更好的利用处理器的特性去提升一些函数的功能/性能,不一定非得访问硬件,访问硬件不一定得用汇编,难道这也有问题?!程序语言的不断更新确实是为了让程序写得更容易,维护程序更容易,一点没错。难不成因为这样,你就要说Java比C+更优秀?我早说过了物尽其用,每种语言都有它的特长地方,JAVA注定为网络而生,C+也注定为系统及GUI应用而生.很希望你能够拿着小刀在盘子上刻个程序给大家用用,到时候我一定会说你很牛我在我自己的日志里面也说过,我不希望参与语言之争。所以我也不会去贬低一种语言。JAVA确实是一种不错的语言 回复 举报 tongshou(C/C+爱好者) 2009-06-27 16:08 程序语言的不断更新就是为了让写程序更容易,维护程序更容易的嘛,这样还不够! 还应该考虑用户的便利和利益!某国的公积金局, 有一次为各公司网上申报公积金的软件升级,出现严重问题,根本不能提交、传送文档数据.询问电话被打暴,好不容易打通电话,得到的答复是,该软件经过严格测试没问题。几天后,公积金局来电子邮件称,需要到Java网站下载、升级有关软件!真是让人无语!普罗大众用的软件,居然是这样处理方式! 如果软件设计者多多为用户着想,明白不是每台电脑天然支持Java。而且,有不少用户,Java是什么都不知道.回复 举报 tongshou(C/C+爱好者) 2009-06-27 16:42 我在一家CAD论坛上也反映“国产”CAD的一些问题:好几家 国产CAD 用C/C+完成某一个功能:把1000条直线LINE连结成一条多义线POLYLINE,会一下子消耗几百个M內存,费时几十秒, 而AutoCAD仅仅消耗几个M, 且在瞬间(1 秒)完成.结果不是被反驳,而是被盖了一个大帽子: AutoCAD的“马甲”。并且要我自己实现个CAD看看。这是“牛”话,一个人如何实现庞大的CAD,倒是我反映的问题,我用LISP语言,就在“国产”的CAD里实现同样的事,消耗的内存也仅仅是几个M,消耗时间也不长(几秒)。 用C/C+写的东西居然比LISP差“一万八千里”,却还不知羞,还在死顶:好好好!事实上这里不是语言本身的问题,而是算法、架构等问题,只是C/C+的高效性被人糟蹋了。感叹论坛里说真话不容易,怪不得很多论坛人气不旺,高手难见,话题平平。回复 举报 Ufida 秦健(Java菜鸟) 2009-06-27 16:48 之所以会有变革,本身就是因为有问题我看了你的回复,明白了,我们觉得C+不好用是我们笨,你知道C+有STL、MFC的数据结构类,很牛逼,O拉?整个实际的东西给咱开开眼界吧,别别人用不好是笨,是白混,是人品问题,行不行?我想知道你参与的跨n个系统的C+项目到底有多牛逼,你在其中是什么角色,卖了多少钱,有多少用户在用,给个数吧,东西好不好,是要让人评鉴的。PS:我没说x语言比y语言好还是不好,就是看你的帖子太冲,高兴了,肖哥人品好不搭理你,我路见不平回个帖。我懂不起你的高级C+,我就是觉得不好用。你觉得好用,整个东西出来让我等凡夫俗子开开眼界吧PPS:寡人没兴趣看你的博客回复 举报 代码人生(C/C+爱好者) 2009-06-27 16:54 Ufida 秦健(Java菜鸟): 之所以会有变革,本身就是因为有问题我看了你的回复,明白了,我们觉得C+不好用是我们笨,你牛逼,O拉?整个实际的东西给咱开开眼界吧,别别人用不好是笨,是白混,是人品问题,行那就希望你能写点实质性的东西让我们参考好了。不是光靠一张嘴。就你这素质, 你从哪个字眼看到我说你笨了,如要你要自己承认,那就无所谓了。我上篇就回复过你,我没说过我厉害,工具是掌握在人手上的,不是你不会用,我不会用,就觉得C+怎么样。特别是针对指针,宏,模板来说事的,看下他们的强大之处。看不看我的博客那是你的自由,没人会强干涉你。我的博客还不一定欢迎你来访回复 举报 代码人生(C/C+爱好者) 2009-06-27 17:01 tongshou(C/C+爱好者): 我在一家CAD论坛上也反映“国产”CAD的一些问题:好几家 国产CAD 用C/C+完成某一个功能:把1000条直线LINE连结成一条多义线POLYLINE,会一下子消耗几算了,朋友,别让一些人的闲言闲语,还有那动不动就斗气争强好胜的语言给气了。语言就一个工具,各有所长各有所短,我们来评论,只是发表自己的意见,不是来和别人陷入语言之争,人身攻击的。我以前工作过的一家德国公司,做道路CAD规划的,其实也存在同样问题。而且很难扩展。工具掌握在人手中,就看你怎么用,用不好怪语言怎么样的,首先我们就应该远离这种人 回复 举报 tongshou(C/C+爱好者) 2009-06-27 17:31 代码人生(C/C+爱好者): 算了,朋友,别让一些人的闲言闲语,还有那动不动就斗气争强好胜的语言给气了。语言就一个工具,各有所长各有所短,我们来评论,只是发表自己的意见,不是来和别人陷入语言之争不要太在意、太认真,否则有时会不想活了_。 我们是常常干些“ 吃力不讨好”的事!难得这里的老师们很热情地操心着学生们的事,我们也该撮撮热闹。在国内网论坛上谈论东西,多少会有些忧伤,气氛不好,象战场。偶尔会窜到外文技术网站看看,感觉客客气气,那才是探究学问的好地方,只是感叹外文不好,挺吃力。回复 举报 肖舸 2009-06-27 17:39 大家如果有兴趣为学生做一点事情,建议向管理员申请为老师。以后就有了自己的一片阵地,可以发表自己的见解。CSDN我的感觉,还是很open的,没有什么太离谱的限制。我很喜欢在CSDN上,和大家探讨一些不成熟的想法,通过彼此的纠正,可以使我少犯错误的。回复 举报 厦门理工学院 林彬(Java学生) 2009-06-27 23:04 我不是跟风,但是我想从java转c+,学生就是要多学点张瑞(C/C+学生) 2009-06-27 23:55 我感谢命运让我学的第一门语言是C而不是C+,这样我养成了事必躬亲和思考的好习惯,第二门语言是汇编,让我对C有了更深入的理解,这才让我真正理解的编程到底是个什么事feng(C/C+爱好者) 2009-06-28 06:30 写C/C+应该实在没必要跟别人争论这些东西。好不好自己还不知道?别人不知道你管那么多干嘛,有些东西还是要讲点缘分的。另外,C/C+不是给胆小鬼准备的 回复 举报 wxc1982cxw(Java学生) 2009-06-29 13:28 Java C#主要是用来编写Web,企业开发,包括中间件等,这些软件大多构建在虚拟机上的,C+主要是底层的开发,开发需要控制底层的逻辑。 而现在流行的趋势是云计算,Web2.0,RIA富界面,Open API,中间件,企业应用,这些应用大多是用.NET J2EE Ajax等开发的。 以后的趋势不是针对单台计算机编程,用单台计算机的API, 而是针对互联网这台大计算机编程。而Web只是这个趋势在文本上的实现 所以从我个人角度看,如果你喜欢向微观发展,那么就学C+,如果想向宏观发展就学J2EE .NET !不过以后的趋势是建造超级摩天大厦,而不是自己去磨水泥,钢材哦!回复 举报 wxc1982cxw(Java学生) 2009-06-29 13:42 代码人生(C/C+爱好者): 只能说你一叶障目。任何一种语言都不可能适应各个方面的应用(基于其简易程度而言),JAVA/PHP之类的语言天生就是为网络而生,它们在开发互联网应用极其方便,但如果你用他单机的大厦现在已经搭建好了,确实汇编,C/C+,成了底层的支撑,但现在的趋势是搭建整个互联网应用的摩天大厦,C/C+如果成为主流工具,那就等于连水泥,钢材都要自己做,那是不可能的。Web只是这个大厦的文本和浏览器上的应用,分布式对象近了一步,SOA,云计算,OpenAPI,SaaS是在更高的层次上向这个目标迈进。Java虚拟机, .NET就是解脱你用C/C+的苦力的,这样人们可以看得更高,手笔更大。语言的趋势就是这样!回复 举报 tongshou(C/C+爱好者) 2009-06-29 14:42 wxc1982cxw(Java学生): 单机的大厦现在已经搭建好了,确实汇编,C/C+,成了底层的支撑,但现在的趋势是搭建整个互联网应用的摩天大厦,C/C+如果成为主流工具,那就等于连水泥,钢材都要自己做,那是不这些趋势是大垄断者们的宣传,他们也在不遗余力地努力着。 如果将来完全是这样的情景,是很恐怖的,这不完全是技术问题,更多的很可能会转变成政治问题,国家安全问题。这些垄断者可以在一夜之间把相关企业的运作瘫痪!C/C+语言没有必要成为主流语言,但是它是不可缺少的一门骨干语言。回复 举报 tongshou(C/C+爱好者) 2009-06-29 15:00 wxc1982cxw(Java学生): 单机的大厦现在已经搭建好了,确实汇编,C/C+,成了底层的支撑,但现在的趋势是搭建整个互联网应用的摩天大厦,C/C+如果成为主流工具,那就等于连水泥,钢材都要自己做,那是不C/C+具有精细制作“水泥”“钢材”等可贵的能力,但是并不代表用C/C+编程非要亲自做这些,C/C+语言的编程也可以变得很简单。回复 举报 代码人生(C/C+爱好者) 2009-06-29 20:50 wxc1982cxw(Java学生): Java C#主要是用来编写Web,企业开发,包括中间件等,这些软件大多构建在虚拟机上的,C+主要是底层的开发,开发需要控制底层的逻辑。 而现在流行的趋势是云计算,Web2.0,RIAC/C+只能做磨水泥,钢材啦?这恐怕也就是IT史上的一个笑话吧。谁告诉你C+只能做底层的开发?你指的底层是不是广了点。现在市场上流行的大多数3D游戏,有几个不是C+做的?建造摩天大厦,没有你所谓的底层的水泥(C+做的Win32/Linux/Unix/云计算操作系统)不早就倒了。你的摩天大厦应该指的都是互联网应用吧,Web Service/网站?这些东西没有中间件后面的C+在支持,他们能有什么作用?Java是门不错的语言,但愿你不只是知道这个库那个库,而了解了这些库背后的思想,要不然你就是个Coder. 你也会成为Java一族的水泥工 一二(Java学生) 2009-07-02 09:58 楼主是老师?那么你完全在误导学生。c+的困难,根本不是你说的语言弱智。对于一个问题,cpp可以有多种解决方案,而其他语言,基本只有一种方法。也就是说,c+是自由的。解决方案多了,你必须权衡各种方案,也就是说,你必须对各种解决方案都需要了解。同时,你也可以只会一种方案,也能解决问题。你说说,c+的oo,和java,c#的oo有多大区别?c+的structured和c有多大区别?c+ 的template和。哦,这个是其他语言根本不能比的部分,我就不说了,以免像你这样可能只知道一对尖括号的人脸红。还有一个绕不过去的指针,也是其他语言没有的。很明显了,这些特性,覆盖了计算机开发的方方面面,想不困难都不行。世界时复杂的,那么就需要复杂的语言。但是你竟然得出困难是因为弱智,这不得不说你该测试一下你的智商了。从你对c+库的说法,明显看出你根本没用过什么库,不知道是不是连stl、boost都不知道。至少你说的socket,thread就有多种跨平台的解决方案。拿其他语言和这两个库比较一下吧,除了你所谓的“企业应用级”库-数据库部件,你就知道其他语言的库是多么贫乏。更不要说其他三方的库了。通用性方面,我倒是看到了很多跨平台的库。stl,boost就不说了,都是N个平台下测试过的。wx,qt也是N个平台测试的。一个是源代码,一个是解释器,有多大区别?接触的东西越多,才明白自己知道的越少。c+包含了这么多方面,它逼迫你思考,也给了你思考的方向,而不是你说的想自己思考就行。因为你连思考什么都不知道。如果你用只有一种解决方案的语言,你认为你的思考面有多大?从你这篇所谓的分析,倒是看出了一根筋思维的特点。这恰好符合你不了解c+。看了你的简介,竟然写有精通c/c+。如果这篇文章不是你装b,而真是你对c+的认识,我无语,只是建议你把精通c+改成用过c+,否则脸就丢大了。同时也希望作为一个老师,这样的水平就不要误导学生吧。回复 举报 代码人生(C/C+爱好者) 2009-07-02 11:47 一二(Java学生): 楼主是老师?那么你完全在误导学生。c+的困难,根本不是你说的语言弱智。对于一个问题,cpp可以有多种解决方案,而其他语言,基本只有一种方法。也就是说,c+是自由的。解企业级应用,博主指的肯定不是数据库类的,数据库的跨平台库,C+也有不少。在这里很多人指的企业级应用更多的是偏向于互联网应用,而不是包括中间件,业务层之类在内的。互联网应用,C+确实不是强项,没有J2EE和PHP之类语言来得简单方便,且成熟框架较少C+到底怎么样,我想每个喜欢和讨厌的人都心里有数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年关酒店安全培训课件
- 物业管理租赁合同书5篇
- 平面设计的色彩课件
- 体育赛事商业开发经纪合同5篇
- 平面与回转体相交课件
- 农发行郑州市新郑市2025秋招数据分析师笔试题及答案
- 农发行乌兰察布市集宁区2025秋招信息科技岗笔试题及答案
- 2025年工业互联网平台数据清洗算法在工业互联网平台数据采集中的应用报告
- 农发行钦州市浦北县2025秋招笔试创新题型专练及答案
- 私募股权投资热点行业2025年分析:退出策略与市场前景报告
- 2025年中小学国防教育知识竞赛活动考试题库200题(含答案)
- 校长讲法治课课件
- 村播培训直播课件
- 2025河南新乡长垣市公证处招聘合同制人员5人考试参考题库及答案解析
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 施工项目成本管理课件
- 文物建筑保护修缮专项方案
- 营销与2008欧锦赛ktv渠道方案
- 故障录波器课件
- DB32-T 2665-2014机动车维修费用结算规范-(高清现行)
- 《区域经济学》讲义(1)课件
评论
0/150
提交评论