C++将走向何方?

gigix 2003-04-14 11:48:59
idioms:

  我不相信stroustrup会说“Loki聪明过头”这样的话。请看这个文章:http://www.25hoursaday.com/CPlusCPlusIn2005.html,stroustrup说c++应该支持Persistence, Reflection, Constraints for template arguments, GC等等,先谈谈Reflection. 如果你使用过java, python这类动态语言,你应该知道Reflection是什么,实际上很多问题域空间需要Reflection的(请看这个文章:http://www.vollmann.com/en/pubs/meta/meta/meta.html)。Loki库搞复杂了吗?其实一点也不,其中的typelist,Loki只用了static meta programming部分,实际上如果解决Reflection,更需要dynamic meta programming技术(MOP是其中一个特点),就是在运行时查询对象有哪些属性和方法(RTTI很cheap,不能算数),能够无中生有地"创建"一个"类",并从这个类new出一个对象。这些特性在项目(尤其是大型项目)里面确实有现实需求的, 不然java不会提供reflection的支持。stroustrup很清楚,所以你说的那些我认为不可能是他说的。

  再谈谈Persistence,也是有很迫切的现实需求。Persistence解决什么呢?举个例子:O-R mapping(Object Relation Mapping),为的是解决RDBMS和OO系统之间的阻抗失配。如果要从原有的db schema产生DB Access Layer class,则必须使用meta programming技术,必须使用reflection。你可能会这样说,那我直接用java好了,它支持Reflection,也有很多O-R mapping解决方案。话可不能这么说,原因很简单,不少项目在效率上是赔不起的!
很多人认为Loki过于复杂,实际上里面的各种技巧都不是什么新的东西,建议常常去看看http://www.cuj.com. 其中policy pattern,老早被用得到处可见!你可以去看看ACE库,哪个重要的class不用policy pattern?

Modern C++ Design这本书到底告诉了我们什么?就是以后的Design都能够通过另外的引擎generate出来!!!软件界的无人工厂就要诞生在我们面前了!!到时程序员不需要了,只需要设计师。如
果现在我们还不懂这些技术,以后就等着下岗吧。:) 开玩笑的, 这个理想可能还要很多年,不过计算机技术从来都是几何级数增长的,谁知道呢? 不过现在确实看到这个端倪了。

C++虽然只是一种语言,但它的语言表达力是任何其他语言所不能比拟的。就因为有这种超群的表达力,才能催生出这么多idiom!也大大地促进了软件工程的design部分,如果一个设计人员C++功力深厚,对他的OOD帮助是很大的。当然,软件工程还包括其他很多内容,C++不会有任何帮助,呵呵... :-)

第一次发表,就说了那么多废话。呵呵...
以上是我个人的愚见,如有意见,可email联系: xworkshop@vip.sina.com

...全文
87 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonth 2003-05-25
  • 打赏
  • 举报
回复
值得关注啊
Zark 2003-05-14
  • 打赏
  • 举报
回复
C++++不长的,C#就是个4个++++,没有看出来吧! :)
oyd 2003-05-11
  • 打赏
  • 举报
回复
c++不仅仅是一种工具,也是我们的信仰!
lxwde 2003-05-11
  • 打赏
  • 举报
回复
java真的很牛么?c++导致了java。
glasswing 2003-05-11
  • 打赏
  • 举报
回复
c++ 上的generic programming是一个了不起的探索。

正如c++导致了java, 或许c++还将催生另一种新的语言
uooyoo 2003-05-11
  • 打赏
  • 举报
回复
to 回复人:Zark(金陵五月):
D、E、F都有了。
C++++太长了,C++无路可走了。:-)
wonth 2003-05-10
  • 打赏
  • 举报
回复
我不懂,看了这么多人的看法,好迷惑啊
payday 2003-05-06
  • 打赏
  • 举报
回复
第一次呀?
我第一次发贴子比这还要长呀!

C++C++将走向何方并不重要,
重要的是我们的薪酬走向何方!
dhfly 2003-05-05
  • 打赏
  • 举报
回复
看来我又该迷茫了
fullsail 2003-05-05
  • 打赏
  • 举报
回复
就是以后的Design都能够通过另外的引擎generate出来!!!?

我不同意,可惜。软件工程什么时候也难到这一天(也许不是吧),
软件工作类似传统的手工业,所以用现代工业管理思想难以实现完美管理(当然这是目标)。

C++不是C,而底层开发大部分都用C,上层开发如webservice都用Java。你说C++能用在哪里?

是吗?呵呵。
zhaobong 2003-05-05
  • 打赏
  • 举报
回复
好像又在开始讨论哪个地方该用哪种语言了?!
msf1234 2003-04-24
  • 打赏
  • 举报
回复
底层C++
应用开发DELPHI
时尚JAVA
weiqingclyz 2003-04-21
  • 打赏
  • 举报
回复
rtghsdf
idioms 2003-04-18
  • 打赏
  • 举报
回复
tony75qu(小甜甜和牛夫人) :
"对于C和C++,偶以为C++并不是一门新的语言,它只是C的"扩展"而已!"
Oh, no! 请把C++作为一个新的语言来学习吧! 谢谢。

ThinkX(思考中·求职中) :
"没有二进制的原数据表示的标准,很难想象各个编译器生成的模块可以互相的混合使用。"

这真是个大问题,C++的一个可能的解决办法是,索性抛开二进制兼容接口, 使用任何平台
都认识的元语言 - xml,利用Persistence, 对于类包,通过mop(meta object protocol)
序列化其实现, run time可以反序列后创建对象(reflection的功劳)。 看看开源项目:
sf.net/ACDK。

最大的问题就是xml parser要绝对高效!!!现在很多软件公司都公布自己的xml parser
跟其他parser的比较,可想而知,xml parser的效率是非常关键的!不单单用在这里有这种
需求,其实,在其他领域,xml解释引擎的高效也非常重要,你抬头看看现在浏览器的url,
是一个xml呢。:) 这个xml实际上只是单纯数据,要怎么layout出来,其实是需要一个管
presentationg的xslt控制的,这些都需要parser解释了后才产生html显示出来。试想,
以前的html都是静态的,httpd只要简单送出html就可以了。现在这种方式,还要经过parse
,当每天都有上百万的点击,parse效率的重要性就不言而喻了。

只要xml parser足够高效,加入一点cache机制,这个问题应该可以解决。请看ACDK。
ch_builder 2003-04-18
  • 打赏
  • 举报
回复
都是一种语言,不会象你说的那样吧,我现在还在用C,我觉得也没有什么不方便的
:P
wyqiang 2003-04-18
  • 打赏
  • 举报
回复
没法谁让你我是程序员
LoveCreatesBeauty 2003-04-18
  • 打赏
  • 举报
回复
up
ThenLong 2003-04-18
  • 打赏
  • 举报
回复
普通应用开发未必要用c/c++
中低层开发最好用C/c++

一句话 讨论工具本身是研究人员的本质工作
程序员嘛 就负责开发(了解一些)和编码(熟悉语言工具)
sunzhengke 2003-04-18
  • 打赏
  • 举报
回复
to ThenLong
DanielWYO(无望的爱情海)
其他人:
C++不是C,而底层开发大部分都用C,上层开发如webservice都用Java,你说C++能用在哪里?
普通的桌面应用,我想在中国这个盗版的地方,最好还是不要提了,他足以影响整个C++产业的积极性,所以我认为在中国搞技术要么潜下去,用C,汇编;要么升上去,作EJB,.Net;C++在中国只能是鸡肋。
Zark 2003-04-18
  • 打赏
  • 举报
回复
我个人认为C++只有两条路可走:

C++ --> C+++ --> C++++ -> C+++++ ......

或者

C++ --> D ---> E ---> F .......

加载更多回复(14)
Doc文件目 录序 ……………………………………………………………………………… Ⅰ某些背景 ……………………………………………………………………… Ⅲ命名约定 ……………………………………………………………………… Ⅳ引 言 ………………………………………………………………………… Ⅵ第1章 假想的编译程序 …………………………………………………… 1第2章 自己设计并使用断言 ……………………………………………… 8第3章 为子系统设防 ……………………………………………………… 31第4章 对程序进行逐条跟踪 ……………………………………………… 53第5章 糖果机界面 ………………………………………………………… 60第6章 风险事业 …………………………………………………………… 75第7章 编码中的假象 ……………………………………………………… 98第8章 剩下的就是态度问题 ……………………………………………… 115后 记 走向何方 …………………………………………………………… 129附录A 编码检查表 …………………………………………………………… 130附录B 内存登录例程 ………………………………………………………… 133附录C 练习答案 ……………………………………………………………… 140参考文献 ……………………………………………………………………… 160

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧