五千年(敝帚自珍)

主题:庆祝Python跃居世界第四程序语言 -- 空格

共:💬100 🌺284
全看分页树展 · 主题 跟帖
家园 看完回帖说两句,说的不好,欢迎送草

一口气看完了所有的回帖,做为一个天天跟汇编,C/C++较劲,并且只用过PHP的程序员,我也谈点感想。感想挺多,统一回复在楼主贴下面,希望楼主不要介意。

我觉得,任何一种语言都有自己的特性,语言之间没什么可比性。飞机快,也没取代汽车;汽车快也没取代自行车。一个语言的出现,实际上是语言作者为了满足某种需求而开发,经过社区的力量,或商业推广发展壮大。

C++确实是个有争议的语言,从它出现的那天起就没消停过,C和C++争论过,java和C++也争论过。

脚本语言的优势是易于学习,易于使用,抱着本书一个星期就可以进项目开发,支持库也多,开发人员只需要把精力放到功能逻辑的实现,其他的就交给支持库来完成即可。程序搞定之后,想放哪个平台上就放哪个平台上,只要解析器、虚拟机支持,可以让写好的程序跑在咖啡机里。

如果是从事系统级别的开发,想用脚本语言实现点功能是门都没有;但是搞WEB应用,死抱着C/C++来干,那真是有点拙死。处理一个HTTP请求的数据包就够喝一壶。

有人说C++的语法功能太搓了,用起来很别扭,学起来太费劲,但是我感觉实际情况是,任何一种语言,要完全掌握语言特性,基本都需要一年的学习实践时间,C++和PHP相比,C++的入门难度大,PHP入门简单一些罢了。C++的难度体现在它的灵活,而真正的大师,正是那些能灵活运用语言特性写出一些让人无法理解,但是在跟踪调试之后令人感觉到心旷神怡的代码的人。

所以说,就按照需求选择语言,大型的跨平台应用,可以用java,python。别跟某某语言过不去,语言是死的,人是活的。如果项目非要用C/C++写跨平台的代码,那就努力写出高质量的代码,要么就把ISO的人给做了。至少ISO的人不是什么白痴,最恨他们的应该是编译器的作者。

再说说OOP的事情,我感觉这就是个思想性的东西,和语言无关,语言支持不支持并不重要,有这个思想,面向过程的语言一样可以按照OOP的思想来实现产品,Windows内核就是很经典的例子。即使不使用OOP照样也可以实现功能,和这个那个思想比起来,优秀的框架设计,良好的代码风格和充分的注释,以及功能实现的设计文档才是最重要的。说句良心话,一个版本的实现,时间花费最大的地方是调试和测试。

语言就是语言,现在的应用是越来越庞大,无论C++还是PHP,实现一个应用代码量基本差不多,西西河这样一套系统,至少也得有个10万行以上的代码量。就功能而言,语言对功能影响是比较小的,分配内存,释放内存能占多少行代码?那就是一个细心的问题,对于一个习惯使用C/C++的程序员来说,绝对不会认为这是一个诟病。

我觉得专注事务处理应该是语言发展的趋势,比如在企业应用整合和大型ERP系统中,事务过程处理的语言是脚本语言所无法比拟的。当然,效率也是要考虑的,不能因为硬件发展了,效率就忽略了。

脚本语言的一个问题是版本混乱,一开始是一个样子,之后添加特性过多,反而没了特点。版本间功能不兼容,特性不支持,对于生产环境来说,稳定才是最重要的,不到万不得已不会随随便便更新生产环境的配置。至少C++还能用个extern "C"保证编译后函数命名的统一,脚本语言用什么保证向下的兼容性统一呢?

安全是脚本语言面临的另外一个问题,看看各种脚本语言发布的release,都会有安全缺陷的修正,对于稳定第一的生产环境来说,某些安全缺陷可以是致命的。另外一方面,脚本语言基本是源码,即便是那种可以生成二进制中间码的也都很容易被逆向出源代码,保护源代码就是一个问题。C/C++这样的程序,很容易保护,有各种各样的加密加壳程序,相对于脚本语言,逆向起来没有点技术水平是比较困难。

啥事都有好坏两方面,就看个人选择了,喜欢一门语言就跟恋爱一样。和版本功能实现,代码维护管理相比而言,语言之间的比较真就是浮云。。。

关键词(Tags): #C++#脚本语言通宝推:红茶冰,铁手,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河