主题:庆祝Python跃居世界第四程序语言 -- 空格
一口气看完了所有的回帖,做为一个天天跟汇编,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++这样的程序,很容易保护,有各种各样的加密加壳程序,相对于脚本语言,逆向起来没有点技术水平是比较困难。
啥事都有好坏两方面,就看个人选择了,喜欢一门语言就跟恋爱一样。和版本功能实现,代码维护管理相比而言,语言之间的比较真就是浮云。。。
- 相关回复 上下关系8
🙂井大能抽空普及下外汇知识吗 冰火 字208 2011-03-12 06:58:04
😮井大竟然跟我最近做的工作一样 1 熊仔 字32 2011-03-11 23:44:06
🙂我刚才就有点乱,都不敢回帖 1 无力 字10 2011-03-12 00:50:15
🙂看完回帖说两句,说的不好,欢迎送草
🙂语言发展的趋势要与大势一致,给您补充几句 2 华恩 字758 2016-05-18 10:28:27
🙂不错 2 相信逻辑和常理 字96 2011-03-11 18:23:26
🙂其实有些东西在你看来很重要,但是在别人看来就是另一回事, 20 蚂蚁不爱搬家 字1943 2011-03-10 10:12:54
🙂话说音译应该是“拍桑”吧 1 冷酷的哲学 字0 2011-03-07 19:53:41