作者:RedStar81 出处:PConline
声明:这篇文章是本人一段时间思考、认识和言论的自我总结。纯属个人观点、经历的描述,紧供参考。 当然也欢迎大家[对本人]和[文中的观点]提出指点。
有人认为后期的C++趋向学院派风格,走进了一味追求技术和难度的误区,逐渐脱离主流的Programmers。
有人认为C++由于复杂度导致在现代软件工程中的地盘不断缩水。
也有人认为,C++无任对特定领域应用还是研究来说,都足够的优秀。
一、面对Object-Pascal、Java、C#等语言,还需要C++?
首先,就方法学来说,不可否认,OO方法学本身具有构造的系统,随着工程的进行复杂度膨胀速度惊人.而且,对于上点规模的工程,为了构建OO系统,在OOA、OOD阶段,设计者需要极高的水准.而以OOP为一典范亦作为OOP代表的C++,在语法语义的设计上,明显采用为了功能而不惜增加设计复杂度的策略.然而这一切的复杂,自然带来了好处,包括系统的可扩展性、可重用性等.这里好象存在一层很微妙的关系,上规模的系统为了可扩展性、可重用性等优点选择OO方法学,然而在OOA、OOD阶段就需要极大的投入(也许在00方法学中,A和D在软件工程中的地位体现的更明显吧.
这个世界关于语言之间的讨论可能时刻进行着,个人一直认为:
1.首先每种语言有自己的适用领域,就应用而言,没有必要将语言勉强的拿到一起比较.
构建企业信息系统,自然会选择Java、dotNET或其它的方案(事实上,这种系统一般应该多种语言协同开发,以获得部件性能最佳).可能多种语言同适合某个项目,那么具体就自己裁决了.譬如做一个信息管理系统,选择C++环境的绝对很少,PB或Delphi、VB都是不错的选择.在初学习阶段"因爱而选(更多的具有偶然性或者与身处环境有关)"、对于开发者基本是"因用而选".在成熟后,"因用而学"我感觉是根本也是最实际的指导原则.
2.关于语言复杂度的问题:语言是工具,是不需要也不能太复杂的.我一直支持语言应该朝专业化(这里指针对义务和特定应用场合)和简单化方向发展.这才是语言的本质之所在.业务是软件实施的根本.对于软件开发着来说很多情况下,业务是最难搞定的,或者说,用软件来真实细致安全的模拟业务是很困难的.前几天,学籍管理科的老师还跟我说,他们的一个学籍管理软件让两个研究生不断的完善,三年才算[完全符合他的业务要求].如果你只是耳闻某某语言何等的复杂、难学而学之,那么可能你错了~就个人而言,为了技术而技术是不可取的。