孟岩

孟岩ID:myan
[修改头像]
1560025次访问,排名6好友1人,关注者32
总是在思考存在的问题
myan的文章
原创 146 篇
翻译 0 篇
转载 3 篇
评论 5202 篇
最近评论
zfbp:现在成都的状况比较稳定了,已经有很多企业开始上班了。汶川、都江堰还是比较恼火。
jieao111:Kevin在成都啊,,以前记得在c/c++版抢过一同分,,bless!
YuLimin:我当时也在成都,大家都来尽一份力量吧!!!
sxbluebird:我老家后山有棵老苹果树很时尚,谁能看见?我公司桌面上有台PC很时尚,公交车上哪个mm会暗送给我秋天的菠菜?


这个话,说的太经典了。 人人都能懂, 这才是哲理。
Terry001:成都地震发生的时候,我正在午睡,我一般睡的会很死,房子把我摇晃醒了,太恐怖了,结果没穿衣服就冲下了楼,搞的甚是狼狈,从来没想到此生也有裸奔的时候。
直到现在,心情都没稳定下来,不过比512好多了,但是还是很担心余震,现在做在家里上网心都是虚的。成都今天不知道从那里报出的消息要缺水了,结果超市的饮用水一强而空。
目前感觉头脑是昏的,时不时会感觉在晃。目前待在成都似乎是一种折……
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    测试
    友情链接
    老赵的博客
    存档

    原创 9月17日Stan Lippman访谈录文字节选

    新一篇: 关于C++复杂性的零碎思考

    注:本文是我为《程序员》第11期技术专题《C++凤凰涅磐》所撰写的文章节选,未经许可,任何组织不得转载。

    另:本文是节选,全文可见于11期技术专题。该专题除了有这篇访谈的全文之外,还有Stan Lippman和李建忠先生为了他们合作的新专栏“C++/CLI锐利体验”而给中国C++程序员们写的信,以及其他C++/CLI相关的文章。

    ------------------------------------------------------------------------------------


    记者:你们是什么时候开始设计新的C++/CLI的呢?目的是什么?我的意思是说,你们觉得Managed C++ Extension失败了,是吗?

     

    Stan:微软聘请我的时候,我对管理层的每一个人说,Managed C++把我惹火了,我明确告诉他们我不会是一个听话的士兵。当年我跟Bjarne Stroustrup一起工作的时候就是这样,对一些事情我有不同意见,我发表了我的意见,而且也做了必要的努力。当然最后可能是别人赢了,我的意见可能被搁在一边,但我不会是个顺民。

     

    说正经的,如果要说Managed C++有一点成功之处,那就是它还能用,而且是把现有代码移植到新平台上的唯一途径。这真的很了不起,我确实感到惊讶。但是从编程语言的体验来讲,它实在是不怎么样。我觉得一部分原因是,MC++的设计者(对于标准C++)过分虔诚了。我比他们更敢于得罪Bjarne,而后来公司的Herb Sutter比我还勇敢。他们应该更坚定一些,他们太缩手缩脚,不够大胆。我在贝尔实验室学到一件事情,那就是你应该对你认为正确的东西保持坚定的信心和热忱。

     

    我想说,MC++确实能够工作,而且是把C++放到.NET中并且包装起来的惟一办法。但是,它不是C++,它的实现就语言而言是不自然的,这一点伤害了很多人。

     

    我之前说过,CLI并不仅仅是微软的平台,它是目前唯一有前景的技术。Java已经基本到头了,我是说它只是一种技术而已,它没有更远大的目标了,它已经竭尽所能了。而.NET是当前唯一一种前景远大的技术。就算这一代的编程语言发展到尽头,也不意味着这个平台本身发展到了尽头。所以,对一种语言来说,如果打算超越原生代码,就必须移植到.NET上。这就是我对C++的义务。(设计C++/CLI)的工作开始以后,很多人参与其中,尤其值得称道的是Herb Sutter,他非常非常重要,C++社群里的很多人都贡献了自己的力量。我很高兴。但是你知道,这并不能归功于我。

     

    C++的路线是Bjarne确定的,我当然觉得这条路线是很成功的,我对于ISO C++的发展方向感到很振奋。但是,我确实不认为ISO C++有多么有趣,我说这话不是要冒犯谁,只是谈我的真实看法。ISO C++很了不起,但是它跟C99一样,只是对语言机制的一些修补和加强。它没有给我提供线程机制,也没有网络的支持。这事放在21世纪,简直是是一种犯罪。而.NET提供了完备的支持库。在我看来,这是C++早就应该做的事情。

     

    你知道,整件事情很令人惊喜:我离开了C++的发源地,贝尔实验室,也没打算再回去,然而我居然还能够参与C++的改进工作,我很高兴。其实我并不认为现在的C++/CLI就很完美了,不过我们已经有了一些非常棒的想法,你们会在下一个版本里看到。

     

    这对C++社群当然是一个挑战。我个人感到ISO C++社群已经变成一个闭关自守的社群了,我们要把它打开。这当然不是一个能取悦所有人的事情。有些人对我们的做法很反感。这跟当年发生过的事情是一样的。当年Bjarne创造C++的时候,很多用C的人也很反感。C++刚出来的时候,有些人觉得它是有史以来最烂的语言。他们要抛弃那些导致性能下降的机制,把虚函数戏称为“破烂函数”。我是说,在实验室内部就存在着这样对立的两派。现在我看到这一幕在重演,有些人警告说,微软正在搞阴谋。我们尽了很大的努力,虚心地听取社群的意见,邀请他们,倾听他们的声音,这一切正如Bjarne在1980年代中期所做的一样,当时他获得了管理层的许可,直接询问IBM和Apple对新语言的看法,其范围和深入程度超过了管理层事前的预期。我的观点是,我们是在发扬Bjarne的精神。所以我想,就算他不是绝对支持我们的做法,也不会是完全反对。

     

    记者:Bjarne并不完全支持C++/CLI,是吗?

    Stan: 他根本不需要如此。他本人就参与了这项工作。我和Herb Sutter在牛津的一次C/C++使用者会议上跟他交谈过,我们向他展示我们的设计,Herb花了很大的力气深入细节,Herb真是一个强人,他非常善于深入细节,相比之下我并不是一个很喜欢深入细节的人。我们每星期都跟他开会。Bjarne会建议我们采纳不同的思路,更重要的是,我们都能听到他的想法,他也知道我们的目的,所以,我觉得我们搞出来的这个语言还是不错的。

     


    记者:也就是说,您觉得C++/CLI已经成功了?我是说,这次革新已经成功了?

     

    Stan: 要我说,是一次进化,而不是革新,跟Bjarne当年往C中加入抽象数据类型和面向对象一样。在这些过程中,在不同的设计范型(paradigms)之间,总是会出现一些不和谐。跟CLI的整合是很困难的,因为CLI是最高统治者。举个例子,你试图在基类构造函数中调用派生类的虚函数,这应该是非法的,因为那个时候派生类对象还不存在,但是因为CLI的统治,我们对这种非法行为无能为力。再比如,如果你想绕过值类型的缺省构造函数,在CLI的统治下,也是不可能的。我是说,我们确实不得不在很多地方向CLI让步。那么是不是说我认为CLI问题多多呢,完全不是。像值类型构造函数这种问题很复杂,我无法在这里说清楚。总而言之,CLI还是不错的。

    在微软内部存在很多争论,我并没有赢得每一场争论,即使我认为我应该赢,也不一定能赢。没人能百战百胜。但是Herb Sutter有能力使大家达成共识,从而确保C++/CLI在一个动态编程环境中拥有美好的未来。我认为C++/CLI是C++面对Java和C#挑战的一个合理的反应和完善。

    记者:C++/CLI在未来的.NET平台上将扮演怎样的角色?

     

    Stan:我们希望它能变成.NET平台上的系统编程语言。就是说,它可以用来开发那些驱动一切的程序。你不可能用C#来写.NET驱动程序,也不能用C#来写C#编译器,起码现在不行,但你可以用C++/CLI做到。你可以在C++/CLI上达到最高的效率和最大的能力,因为我们对于CLI模型的整合更为完整深入。C#的编程模型跟C++/CLI相比是有所不及的,没有我们这么“先进”。所以我觉得,如果你以前是一个C++程序员,现在打算学习.NET,C++/CLI是一个很好的选择。.NET编程是让人兴奋的,而C++/CLI让你能够发掘.NET的全部能力,这真的是很让人兴奋的事。

    坦率的说,我对传统的编程已经感到厌倦了。我以前在梦工场的时候,在那里构建了一个Linux开发平台,在其上进行软件开发。这本身确实没什么不对,但是我的感觉是一下子回到了20年前。我被绑在了GCC上,这让我感到不舒服。我找到了更好的编译器,更快,产生的代码质量更好,但是我不能用,我们要确保与GCC的二进制兼容。这些事情让我烦燥,我觉得我花了20年时间改进计算平台,却一下子一无所得。

    相比之下,.NET真的是一个有趣而又富于创新的技术。我经常跟人说,并不是因为我在微软,我才说.NET好,而是因为我觉得.NET好,才决定加入微软。

    对于一个C++程序员,你可能跟我一样觉得.NET很有趣,C#当然是一个不错的选择,事实上我就写过一本C#的书。但是说实话,C#有点“傻瓜”。对于很多人来说这是好事,我们并不希望所有的人都被拖到机器层次上。但是如果你想要那种最终的能力,而且你有把握运用好,那么C++/CLI就是你的选择,此外别无他选。我觉得我们的工作赋予你们这样的能力,我自己就渴望这样的能力。

     

    发表于 @ 2004年10月13日 15:39:00|评论(loading...)|编辑

    旧一篇: Stan Lippman印象记

    评论

    #soloist 发表于2004-11-12 14:01:00  IP:
    TrackBack来自《我看C /CLI和.NET》

    Ping Back来自:blog.csdn.net
    #tyt2008cn 发表于2004-11-13 08:07:00  IP:
    TrackBack来自《我看C /CLI(转贴)》

    Ping Back来自:blog.csdn.net
    #debren 发表于2005-02-25 08:55:00  IP:
    TrackBack来自《C /CLI——2004年9月17日Stan Lippman访谈录文字节选 》

    Ping Back来自:blog.csdn.net
    #Justin Shen 发表于2004-10-13 17:43:00  IP: 221.137.114.*
    非常不错!!!!!!!!

    越来越觉得stan lippman可爱了。

    另外也期待myan能写更多的文章,像你这样优秀的写手,如果不多写一点,真是巨大的损失。
    #myan 发表于2004-10-14 10:34:00  IP: 218.247.132.*
    to 周星星,
    有话就直说嘛,Stan Lippman敢说,我想他就不会介意反对的意见;我敢于如实地写出来,也就表明我愿意看到各种不同的声音。这篇东西出来,肯定是毁誉参半的,有争议不是件坏事。

    访谈的特点在于,脱口而出的话更多地体现的是内心的一种情绪,而不是经过深思熟虑的逻辑严密的论断。读访谈文章,你更多的是要体会对方的情绪,而不是抓住他言语里的漏洞去攻击。朗咸平说要清算那些倾吞国有资产的人,并不意味着他真的赞成把顾维钧张瑞敏抓起来杀头。同样,Stan Lippman说IBM不做研究,并不是说IBM研究中心的那些博士们整天喝茶聊天,他说ISO C++是一个封闭的社群,并不是说C++的支持者都是榆木脑袋。他只是在表达一种情绪给你。情绪是不是没有用呢?不是的,人带着情绪说出来的话,逻辑上当然是不严密的,但是却能够清晰地体现出他对整个问题的总体看法。就好像毛主席说,帝国主义都是纸老虎,逻辑上问题多的很,但是表达出来一个总的观点却是鲜明的。这就是访谈的意义,也是我们做访谈的目标。四平八稳的官样文章,你爱看吗?

    最后,千万不要叫我什么师。
    #joe tribioni 发表于2004-10-14 10:55:00  IP: 165.170.128.*
    本来准备学java为了以后再找工作的时候。
    希望c++/cli马上牛比起来,我就不用再费劲学java或者csharp了。
    孟岩老师,你比gigix那厮要好的多。那厮太张狂了。
    #joe tribioni  发表于2004-10-14 10:57:00  IP: 165.170.128.*
    对不起,我一不小心叫你老师了。
    #周星星 发表于2004-10-14 09:26:00  IP: 218.2.111.*
    晕,写了很多才发现原来是孟岩大师的著作,不得不删除掉,看来我不具备……的品德和胆识,但这也是避免麻烦的一个方法。留下一句评论:Stan Lippman并不是《节选》中表现出来的糟糕无知的人。
    #kingofark 发表于2004-10-14 12:38:00  IP: 221.232.73.*
    Stan Lippman 这位拥有艺术学位、去过迪士尼/梦工场干活儿的技术大家,一如既往地带给人一种有活力的感觉。他的感染力好像迪士尼动画,从此专业变成了一种乐趣。
    #pootow 发表于2004-10-14 20:44:00  IP: 221.232.33.*
    Stan跟我的性格很像啊。
    #firingme 发表于2004-10-15 20:51:00  IP: 61.49.232.*
    看myan的的文字,会有种觉得Stan是中国人的感觉,呵呵……翻译得太到位了,不过Stan的很多论断……难说啊。去买本《程序员》看完再说吧。
    #beyondlei 发表于2004-10-16 00:49:00  IP: 218.79.160.*
    这真的都是stan的原话的吗
    孟岩先生没有加入自己的个人喜好吧
    知道孟岩先生对C++非常青睐 当然本人也是
    总感觉大师很少像这样直露的表明自己所青睐的技术比别的技术好或更有前途等等
    或许stan就是这样敢于说话坚持己见的人
    #javaer 发表于2004-10-15 22:01:00  IP: 219.133.173.*
    的确敢于论断阿!
    #左传长剑 发表于2004-10-15 23:02:00  IP: 210.51.217.*
    我们会继续在Linux中坚持自己的东西,标准。
    坚信linux会开花结果的,这才是软件界的真正进步,而不是只一两个大公司在唱,一大群在后面做跟屁虫。
    #nomagic 发表于2004-10-15 23:47:00  IP: 220.191.56.*
    C++/CLI代码到头来也会转换成中间代码让CLI去执行,.NET世界里只有CLI是本质不变的东西。C++/CLI真能有这么大创意吗?怀疑中……
    #joyfire 发表于2004-10-16 09:49:00  IP: 61.149.142.*
    Stan Lippman是我比较喜欢的几位大师,原因就是他比较有激情.而不是老学究的感觉(我没有说老学究不好啊),所以尽管从感情上来说我还是C++ Funs,有些话听起来不是很舒服,但是可以放松处之.Stan是搞技术的,不是外交官或者CEO

    不妨把这当作朋友之间聊天,如果一个有很多共同点的朋友(但同时也是心直口快的家伙)说出一些你不认同的观点,大家都怎么做呢?

    同时作为一个Open Src爱好者和参与者,我要说说题外话,又看到很多因为Stan说不喜欢Linux/GCC以及他的MS身份而吐的口水.尽管有技术上的异议,但这种讨论应该受欢迎.诚实一点,自由软件从来都不是完美无缺的.(但我们能倾听,能快速改正缺陷)

    认识的很多国内自由软件开发者都在私下说,他们最讨厌的不是MS,而是不允许别人说一点点不好,动不动就在论坛"MS傻X ...万岁"的意识形态狂徒.自由软件本身就是为了避免唯一选择产生的.
    #pinxue 发表于2004-10-16 00:30:00  IP: 61.170.214.*
    本来觉得Stan Lippman应该个很有水平,可以跟Bjarne Stroustrap比肩的巨人,看完这篇文字,印象顿时降了一个档次。
    #cgsw 发表于2004-10-16 11:25:00  IP: 219.133.15.*
    看完後感覺得Stan跟Bjarne的性格完全不同。希望C++/CLI能如他所說的那樣會取得成功!
    #Royal 发表于2004-10-17 09:20:00  IP: 222.94.128.*
    在我看来,Managed C++和C#都没能将传统的C++程序员吸引到.NET,C++/CLI只是微软做出的进一步的努力而已:)

    结局之一可能是:传统的C++程序员最终抛弃了.NET(而非Windows)(当然了,这话往往可以反过来说:)),不过同时诞生了一小撮C++/CLI新粉丝:)
    #Royal 发表于2004-10-16 11:42:00  IP: 222.94.128.*
    痛快,合我口味,不过观点我不赞同:)
    #re 发表于2004-10-17 17:12:00  IP: 218.62.1.*
    re
    #littlestone 发表于2004-10-16 12:34:00  IP: 220.112.179.*
    非常期待C++凤凰涅磐!
    在unix/Win32下有纯净的C++和几大完备的标准库尽展C++的优美,在.net下有简单快捷功能强劲的C++,这必将为我们这些C++fans带来至少十年的快乐。。。
    #Corer 发表于2004-10-17 17:25:00  IP: 218.62.1.*
    这只代表Stan Lippman个人的观点,而且特别偏激。 如果你是初学者的话 你还可以暂时相信他的话,都是商家为了扩大自己的阵营炒作而已,坚持走自己的路,不要被他们迷惑。否则你永远是初学者。 程序员编程是靠设计思想, 而不是语言本身。重要的掌握核心设计思想。单纯评论这个好哪个不好简直就是饭桶。
    #dawn 发表于2004-10-16 19:52:00  IP: 221.228.48.*
    不知C++/CLI是否牺牲了C++的可移植性,另外其编译器的实现是否一定要打上微软的烙印。
    对于嵌入式系统和其他手持设备上如何移植和性能如何?
    我认为革新是好的,但是要看这革新的针对性如何。
    前面提到的C++中缺乏网络和线程机制,是有历史原因的,因为各个平台的线程处理和网络协议的支持千差万别,
    Stan说Java已经走到尽头,我认为Java发展的比较快,虽然在某些方面发展的不是很好,如Swing的内存泄漏问题,但是仍然可以说,Java比C#优秀,我到认为C#不怎么样,语法抄袭Java和C++,语言机制也是参考Java,其跨平台能力也太差(Mono项目发展也很一般,其实现的性能有待改进),还没听说哪一个程序用C#开发的可以移植到其他平台上。
    假如C++/CLI确实如Stan所说的那么优秀,但是最好标准不要被微软所左右和控制。
    #blueoxygen 发表于2004-10-16 20:01:00  IP: 210.30.107.*
    这是不是说,MS也默默宣布了native c++得死亡?如果不考虑传统windows疑留下来得市场,是不是不需要继续学习vc了?做纯粹得c++只能到linux下面搞了??
    #XXX 发表于2004-10-16 20:07:00  IP: 210.30.107.*
    to dawn:
    你太狭隘了.不要总用历史得眼光看C#.现在J2SE5.0中JAVA得语言特性又有多少是抄袭C#得呢??
    本来语言中得互相借鉴优秀思想是好事,可是因为是MS借鉴就成了抄袭.那么所有得开源都可以用所谓得"无耻"来形容了?
    其实当初ANDERS做VJ++,这是当初十分优秀得一款IDE,但是给JAVA加入了太多MS专有得东西,导致了整个JAVA界得恐慌,怕MS把它变成四不象而使他垮掉,才和伙把VJ++搞掉.anders早就对JAVA有自己得想法,最后是借助.NET实现自己得理想吧,所以其中才有太多得JAVA OP得痕迹...看10期程序员.NET2.0和JAVA5.0相差无己了,我想这是好事,因为你无法说自己一定不接触JAVA或者.NET,最起码得语法层得相近还是给学习带来一些好处得.
    #李建忠 发表于2004-10-17 11:28:00  IP: 222.64.54.*
    其实我理解孟岩的苦心,我也一样能够感到Stan在谈论一些问题时那种掷地有声,充满自信的感觉。我后来回忆起来,感觉就有四个字“图穷匕见“。孟岩选择这样的方式表达出来,我觉得很自然。

    说“暴跳如雷的战士”完全是调侃,初读文字之后一种扑面而来的感觉而已:) 细读之后不觉得有什么,只能说这些问题问得非常到位,Stan特别愿意回答——我甚至相信即使有些问题孟岩不问,Stan都会主动说出来。从这个意义上来讲,我觉得这篇采访是成功的。

    我的感觉像gronlet说的一样,Stan至今对技术仍然充满激情,而没有那种惯常的淡漠。说实话,Stan在梦工厂虽然淡出了语言发明创造这样的角色,但是他对技术的思考一直没有停息,尤其是从历史的角度来看技术的发展,只不过他的观点最后和微软不谋而合而已——我们一个普通的程序员尚且都对技术有自己的见解,Stan为什么不能有?何况Stan是那种不仅有见解,而且有能力实现的人。

    “但假如我们设想几年以后C++/CLI大获成功,则今天的话或许会被当成是Stan的一个有强烈信心的预言,又有什么不可以接受的呢?“,说得非常好,我感觉Stan对此简直是百分之百的信心。

    我倒想对那些成天骂微软的人多说几句。骂微软不会证明任何东西。微软是有些地方做的不够,但并不像你们说得那样表现的一无是处。微软值得我们学习的地方还很多,比如它的进取心,创新能力,对待人才的方式,等等。如果你看看微软这几年在技术上突飞猛进的发展,我想任何人即便不去惊叹,也应该有起码的尊重。Stan,Anders这些天才般的巨星到微软也并非股票所能打动,简单的理由是微软可以实现这些天才的想法。



    其实对很多东西,我觉得如果能保持一份善良、宽厚的心态,你就能慢慢理解它,理解它真正的精髓。
    #jjj 发表于2004-10-16 13:54:00  IP: 218.18.25.*
    首页上说:虚怀若谷,深刻睿智——Stan Lippman访谈
    看来即便是虚怀若谷,他也忘了表现了。
    #SteveGYCN 发表于2004-10-17 19:03:00  IP: 222.65.164.*
    good and perfect!
    我是说,表达了一种节制的、但又非常有力的“情绪”。C/C++有天生的平台相关性,或者说,也有能力可以工作与任何平台上。Stan更希望看到一种对系统软件开发更有力的工具,而不是return back to the 20 years ago and lose everything:-),确实需要好的库的支持,但这一点已经被提到将近刚才所说的20年的时间了,有很多好的C++库被开发出来了,但还是不够的,或者说太少了,没有什么比每一件事情都要从轮子造起更糟糕的了。
    我想,正是Stan的这种“情绪”在推动他,朝一个更好的方向在努力,我从来不想拒绝一切好的东西。其实,在当初,我也是仅仅为java比C++方便的socket通讯库所吸引而已,好吧,继续努力,明天一定更美好!
    #abc 发表于2004-10-16 21:02:00  IP: 202.118.194.*

    我感觉每个公司或者团队都有自己对事物的看法和梦想. 或许真象 blueoxygen 所说的, 若干年以后, 是这种距离让我们走入不同的方向.

    是我们认识的不完整和意识的差别导致了这种变化. 我们仅仅是看到自己认为美的地方...
    #renheihei 发表于2004-10-16 14:45:00  IP: 218.98.129.*
    请问楼下:
    c++/CLI出来后,managed c++就完全被放弃了,无用了?
    #c 发表于2004-10-16 14:50:00  IP: 202.108.157.*
    看了大师的话,更能激励自己天天向上。
    #gronlet 发表于2004-10-16 21:21:00  IP: 211.68.35.*
    在技术圈混了这么久,谈起技术,stan 却没有丝毫的倦怠和漠然,我想,程序员的最高境界也莫过于此吧!
    #Jeans 发表于2004-10-16 15:06:00  IP: 218.17.78.*
    想探究底层的人不用搞什么.net, 另外写个更有创意的os 吧!!!
    #iski 发表于2004-10-17 12:15:00  IP: 221.11.141.*
    我经常跟人说,并不是因为我在微软,我才说.NET好,而是因为我觉得.NET好,才决定加入微软。

    这句话绝对是真实的,像stan,anders这些大师来说,相对于他们的成就,在金钱或者微软工作根本就不能算是另一件让别人觉得了不起的事情,所以他们不会,也绝对不可能为了保住自己在微软的职位而违背自己的意愿干自己不愿意做的事情,他们对待工作的态度,绝对是一种理想,兴趣或者是信仰。假如微软的做法与自己的兴趣或者是意愿相违背了,他们多半就一走了之。
    那些拼命发表什么stan是微软的无耻吹鼓手的人,其实是以小人之心度君子之腹,如果有机会,他们自己肯定是个无耻的枪手。
    #Royal 发表于2004-10-16 21:46:00  IP: 222.94.130.*
    微软终于搞出了一个像点样子的“Microsoft C++”或“C++ .NET”,这不应该是Bjarne所乐意的,至少和他的一贯言论相矛盾。也许在生存面前,尊严已了无价值:)

    不过,我有一点比较好奇,到底是C++去傍的微软,还是微软泡了C++:)
    #Avlee 发表于2004-10-16 15:55:00  IP: 220.163.56.*
    C++/CLI到底是什么?MC++的语法升级?CLI的另一种表现层?它为程序设计带来什么?
    希望各位有能力者立个专题探讨一下吧。
    #Royal 发表于2004-10-17 12:41:00  IP: 222.94.128.*
    To 建忠:

    到目前为止,几乎所有灌水都很纯真(孟岩一贯的号召力使然:)),我的不过加了点柠檬,无非表达对C++/CLI自身的个人看法,也许态度明确了一些,但谈不上“骂微软和不善良”:)

    鉴于Herb Sutter的“双重”身份,C++/CLI对C++发展的影响不可不注意。现在的问题是,C++的阵营会不会从此更加分化,C++的明天究竟向何处去,这才是每一个真正关心“C++”而不仅仅是“Microsoft C++”的人所要关注的问题。

    微软Managed C++失败到底,而C++/CLI尚未最终成型,无论如何,即使作为C++的一个“分支”,希望它这一次表现得好一些:)

    也许《程序员》有责任去问一问Bjarne先生的看法:)

    - 荣耀
    #李建忠 发表于2004-10-17 12:56:00  IP: 222.64.54.*
    荣耀兄多虑了,我所言非指你的调侃,而是其他遇微软必匾的人,我当然理解你啦:)

    无论如何C++/CLI是拉近了ISO-C++和.NET之间的距离,而不是相反。我觉得是件好事情。当然未来的发展谁也说不准。
    #别动不动就大师什么的 发表于2004-10-17 20:24:00  IP: 218.246.97.*
    只想问:在.Net 平台,有C#了,还要C++作什么?

    C++应该作自己应该作的事情...
    #cleni 发表于2004-10-17 20:44:00  IP: 221.208.17.*
    程序员编程是靠设计思想, 而不是语言本身。
    保持语言的纯正,用库去扩展。
    我同意,在理论上没有真正的突破时,妄谈革新,不知所云
    #yliang 发表于2004-10-17 20:46:00  IP: 218.72.6.*
    C++\CLI的目标:
    Firstly, Visual C++ is positioning itself as the lowest level programming language for targeting the CLR. There should be no cause to use any other language, not even Microsoft intermediate language (MSIL). Secondly, .NET programming should be as natural as native C++ programming
    #yliang 发表于2004-10-17 13:36:00  IP: 61.153.123.*
    期待C++\CLI,因为我非常讨厌Managed C++,Managed C++用起来太痛苦了,而C++\CLI则很多时候可以做到比C#或JAVA更简洁。
    我在Herb Sutter的Blog(http://blogs.msdn.com/hsutter/)上看到
    (完整、正确的)Dispose pattern的比较:

    Consider this C++/CLI code:

    String^ ReadFirstLineFromFile( String^ path ) {
    StreamReader r(path);
    return r.ReadLine();
    }

    The minimal C# equivalent is the “using“ patterns which semiautomates the Java Dispose pattern (I'm showing the {} around the block to be explicit that there's a block, although since there's only one statement you don't really need them):

    String ReadFirstLineFromFile( String path ) {
    using ( StreamReader r = new StreamReader(path) ) {
    return r.ReadLine();
    }
    }

    The minimal Java equivalent is the Dispose pattern (this is what C#'s “using“ generates under the covers):

    String ReadFirstLineFromFile( String path ) {
    StreamReader r = null;
    String s = null;
    try {
    r = new StreamReader(path);
    s = r.ReadLine();
    } finally {
    if ( r != null ) r.Dispose();
    }
    return s;
    }
    在微软VC++主页上看到STL.NET的介绍,下面的代码让人感觉真爽:
    vector<String^> ^svec = gcnew vector<String^>;
    svec->push_back("Pooh"); svec->push_back("Piglet");
    svec->push_back("Eeyore"); svec->push_back("Rabbit");

    // generic algorithm: sort
    sort( svec->begin(), svec->end() );

    个人感觉:C++\CLI一旦成形,将集Na
    #5drush 发表于2004-10-18 00:00:00  IP: 221.11.141.*
    以后的windows很有可能是只有一小部分的本地代码内核,外围全部用托管代码包装,甚至连驱动这一级别都采用托管接口,所以说用C++/CLI来开发驱动程序是可以理解的。
    其实抽象出来,CLR本身也就是一个“软CPU”,以后硬件发展到了一定程度,开发出来一个可以直接执行MSIL指令的芯片也不是没有可能,到那个时候“用来开发那些驱动一切的程序”的CLI就成为现实了。
    #Soundboy 发表于2004-10-16 23:13:00  IP: 203.187.161.*
    希望到时候能把英文也发表出来.贴在这里就可以.

    有这个可能吗?
    #Avlee 发表于2004-10-17 14:03:00  IP: 220.163.56.*
    其实仔细看看你用过的C++开发工具,就能感觉到微软这几年对C++的贡献。虽然VC6很长一段时间没有更新,但是不可否认VC6在Windows平台上的稳定性。在看VC71,可以说已经很大程度上可以满足大家所谓的ISO C++标准支持程度的要求了,可以说VC71并没有置Native C++而不顾,在Windows平台上VC++依然C++最好的选择。

    Managed C++是微软式C++扩展,失败了。Stan和Herb发扬了Bjarne的思想,至少在语法上与标准C++更接近了。不管C++/CLI在让C++和.Net的结合上是否能取得像Stan期望的那种效果,不可否认他们在.Net环境中为C++提供了更好的生存方式。

    Stan和Herb都是为了C++而来到微软(他们为C++还有更好的选择方式吗),Bjarne没有反对C++/CLI,但是感觉得到他在忧虑,显然是对这个扩展的平台相关性感到忧虑。我想这许可以说是很多C++使用者不愿接近C++/CLI的原因吧。

    C++这么多年的广泛应用,已经让很多人对C++形成了一个固化的思维:保持语言的纯正,用库去扩展。要想让她变成IL字节码,无论如何很多人是无法接受的,宁愿去研究晦涩的template也不愿看一眼CLI。这也许是很多对C++有点心得的人感受。

    所以C++/CLI的发展,正如Stan所说的当年C到C++的过程(不过C++/CLI还没有这个境界)要受到来自程序员的可怕的阻力,未来如何真是谁也说不清,还是关注吧~~。
    #李建忠 发表于2004-10-16 23:20:00  IP: 222.64.54.*
    这篇访谈中Stan的某些观点虽然不是太令我意外,但是言语间流露出来的语气确实有点......看来,孟岩是个采访高手:)我在上海的时候,和Stan谈到ISO-C++时他看上去还是个和蔼可亲的老人,到了北京就成了一个暴跳如雷的战士了:)

    To Royal,
    既非傍,也非泡,两厢情愿,再正常不过的爱情:)

    BTW,Stan和我的专栏为《C++/CLI全景体验》,关于专栏如果各位有什么想法,可以到Stan和我的blog上留言,非常感谢大家的feedback。
    #fhuc 发表于2004-10-17 22:22:00  IP: 219.139.231.*
    理论如未突破,相信也不过是个杂交水稻.
    不会亩产10000斤的!
    #myan 发表于2004-10-17 01:32:00  IP: 219.236.72.*
    to Janson et. all:
    Stan确实是说话和气,温文尔雅的人。我采访的时候,只注意了他的神态和主要观点,并没有完全搞清楚他说的是什么,所以当时还觉得不会有什么很“刺激”的内容。回来一听录音才发现,他说的时候虽然很安静祥和,但是内容确实非常激进。比如说C++不加入基础库支持的行为在21世纪是一种criminal,说ISO C++ community是dead ended的,说要challenge ISO C++,确实有一定刺激性。我第一次翻译的时候,把很多词句都弱化了,为的就是避免给大家留下不好的印象。我要把语气弱化,举手之劳而已,但是还是决定按照原话翻译。是非功过留待历史评说。

    英文稿是我的一个同事整理的,我又结合录音校对了一遍,加上自己当时的记忆,自认为可靠性比较高。翻译语气是特意选择了比较口语化的风格。对比一下,“如果我们没有成果,C++就可能面临绝境。” 和 “我们失败了,C++也就死定了。” 这样两个句子,后者无论是在感情的强烈程度,还是在与原意的符合程度上,对于一个访谈来讲,都是更为合适的翻译。而如果是书面文章,可能选择前者会更好一些。

    可以理解大家的反应。首先我自己也没有认真研究过C++/CLI,其次C++/CLI前景如何还未可知。Stan说的这些话是显得即气势盛了一些。但假如我们设想几年以后C++/CLI大获成功,则今天的话或许会被当成是Stan的一个有强烈信心的预言,又有什么不可以接受的呢?我不喜欢永远都不犯错误不说错话的人。
    #5drush 发表于2004-10-17 02:00:00  IP: 221.11.148.*
    呵呵,我喜欢stan的性格
    #5drush 发表于2004-10-17 02:02:00  IP: 221.11.148.*
    这表示了stan对技术充满了激情,正是这种激情才会产生创造力!
    #myan 发表于2004-10-17 23:19:00  IP: 219.236.72.*
    嗯,杂交水稻,这个比喻很好。如果真能像杂交水稻那样,当是C++/CLI的最大成功。至于亩产万斤,不难从各大公司的宣传稿中看到。
    #Naven 发表于2004-10-17 04:12:00  IP: 219.232.32.*
    我崇拜他,说到我心坎里去了
    #TripleX 发表于2004-10-17 23:32:00  IP: 211.167.203.*
    C++/CLI如果也是需要在CLI上运行的 怎么能用来写”用来开发那些驱动一切的程序“呢? 没明白 有人能解释一下吗? 也许我对"用来开发那些驱动一切的程序"的理解有误 我觉得这个象在说硬件驱动什么的
    #权威 发表于2004-10-18 11:18:00  IP: 211.97.51.*
    真的好笑吗?我不太懂!
    你首先可以解释一下!
    再则,java1.5都弄出了一些元标签,好象是进步啊,但是否是被逼无奈!
    C++已经完善的一塌糊涂,何需此劳!
    还敢大言"创新",C++的固有的标准,束缚谁了,.Net架构稳定成熟了吗?及Corba的几分啊?长角敢拿出来吗?(姑且不谈安全性)
    #yjh1982 发表于2004-10-18 11:24:00  IP: 210.21.95.*
    C#和Java将被更动态的Python等代替.不过是两个可悲的
    过度语言而已.

    C++还会是现在这样.M$以库方式支持.net才是正道.不然就得面对C++社团的怒火.
    #ccBoy 发表于2004-10-18 11:27:00  IP: 61.141.169.*
    Stan Lippman说了他想说的,正在做他想做的事情。
    Myan给你一个建议,为什么不去访谈一下Herb Sutter,问问他怎么想,他在做什么?我想一定收获颇深。

    《C++凤凰涅磐》的命名是谁起得名?不是很喜欢,记得以前的侯捷特喜欢这样的命名风格,《C++/CLI 三剑客》,下一代VC++前瞻,什么的更中性,我想许多C++的用户并不关心CLI,这样他们不会因为买了杂志而说你题不由衷:)


    #权威 发表于2004-10-18 11:29:00  IP: 211.97.51.*
    M$以库方式支持.net才是正道.不然就得面对C++社团的怒火
    ====================================
    听起来就是舒服!
    #rainman123 发表于2004-10-18 09:22:00  IP: 220.173.9.*
    唯一?太武断了
    #Iagree 发表于2004-10-18 11:46:00  IP: 219.236.75.*
    我赞成yjh1982的观点,.NET和Java平台上的企业应用集成型开发最终将是Python和Ruby等动态脚本语言的天下。C++凭借其系统威力仍然将占据一席之地,而Java作为JVM的原生语言也应该可以安心度日,恐怕最尴尬的是C#,呵呵,anders想让C#上九天揽月,下五洋捉鳖,但恐怕几年以后,上有Python压,下有C++顶,滋味不会好手。
    #支持ccBoy 发表于2004-10-18 11:48:00  IP: 219.236.75.*
    这个题目是挂羊头卖狗肉!

    #Iagree 发表于2004-10-18 11:53:00  IP: 219.236.75.*
    补充两个消息:
    1. IronPython的作者已经被微软雇佣,微软官方支持Python.NET恐怕只是一个时间问题了。且该牛人的目标并不仅仅是Python而已,而是研究在CLI上高效率地实现动态语言,一旦取得突破,将为Ruby, Lua等一系列动态语言大举进军.NET铺平道路。

    2. Anders Hiljesberg自己承认,面对Python, Ruby这样的动态语言,C#和Java这种编译型语言“所能够做出的反击是很有限的”。
    #突击召唤师 发表于2004-10-18 15:59:00  IP: 170.252.155.*
    也许我是天生的保守派,要动摇C/C++的纯正性,让它依赖于CLI或者其他什么而不是直接生成机器码,我是无法接受的。
    #yjh1982 发表于2004-10-18 09:47:00  IP: 210.21.95.*
    Stan Lippman现在是M$超级推销员
    #amstrongest 发表于2004-10-18 12:37:00  IP: 61.186.84.*
    不了解.Net,也不了解C++/CLI,只了解ISO C++和Java。

    我想问:C++/CLI的定位在哪里?应用在哪里?

    偏离定位的谈语言我觉得不是很合适。

    如果说做底层(比如说CLI就算底层的),相信还是C、汇编的天下。因为我不能理解一个需要托管的语言开发的程序如何能真正意义的去控制底层,因为托管环境尚且需要底层的控制。
    企业应用,关键在于一个完备的平台支持,而且就语言来说MS已经有了C#、VB。NET了,真的需要那么多语言吗?另外动态脚本语言的发展也不可忽视。谈起Java,Java程序员迟早会被标准、厂商、开源这三座大山给活活压死累死。
    #saierdia 发表于2004-10-18 10:06:00  IP: 210.22.146.*
    c++/cli 必然是将来.net上的最强语言。

    stan的这句话
    “我经常跟人说,并不是因为我在微软,我才说.NET好,而是因为我觉得.NET好,才决定加入微软。”
    是真心的
    #lei 发表于2004-10-18 22:29:00  IP: 219.157.192.*
    stan很随我!
    #yfwill 发表于2004-10-18 10:06:00  IP: 210.104.83.*
    任何语言都要不断地向前发展,C++本身就是C与其它语言的杂交。C++已经发展的非常庞大了,但是面对网络时代,C++在很多地方有些力不从心。
    我们希望一门语言简洁优雅,同时又希望他功能强大,内容丰富,还希望他标准规范,跨平台。我们对C++的崇拜使我们给了他太大的期望。而这些期望之间又有些矛盾之处。
    C++的路到底该怎么走?
    #曾毅 发表于2004-10-18 10:10:00  IP: 219.239.98.*
    看了一些良师益友的评论,也不完全赞同。C++/CLI仍然是一个C++的新生超集,正如Stan在访谈中描述的,对于CLI的限制,版本2的语言中C++/CLI仍然有诸多不可控的束缚。对于ISO C++的全力支持者,我认为如果真的觉得在使用C++的时候没有任何的不便并且它工作得很好,就只当C++/CLI做一种新的编程范型了解一下好了。而对于.NET平台下的C++使用者,如果你已经打算跟随微软的道路迁移到下一代操作系统及其应用程序的开发上来,也不必大吹C++/CLI有如此这般牛。大师Peter Norvig在他的文章Teach Yourself Programming in Ten Years中曾言“尝试参与到一项语言标准化工作中。”我们大有一展拳脚的地方,提出我们认为在语言推广初期暴露出来的诸多问题,并以合适的方式反馈给语言改进组,事实上任何一门语言的改进社群的力量都是不可估量的。C++,C# 都是程序设计语言进化的中间过程,C++/CLI同样也不是凤凰涅磐后的终极。我们需要做的工作是经过仔细的学习和思量后提出我们认为好的,以及认为值得改进的东西,从而来促进语言的进化,而不再是跟随着语言的发明人东跑西颠了。
    #叶君临 发表于2004-10-18 10:11:00  IP: 218.94.89.*

    我觉得stan的话颇有道理,一直以来,cpp就苦于没有一个包容一切的类库,使得cpp开发人员常常被“聪明的”delphi开发者所嘲笑。但是一旦cpp能够以一种优雅的方式栖身于.net,那么.net framework这个庞大的库都可以为我所用,cpp将会释放出惊人的能量。

    不过天边还有两朵小小的乌云。
    1. 怎样才是优雅的方式,能不能真的实现.net 和 cpp 的无缝对接?
    2. 失去了可移植性的cpp,是不是会被降格为一种应用层面的语言——类似于VB,C#?
    #c++ 发表于2004-10-18 22:44:00  IP: 222.65.161.*
    微软太烂了,凭着有钱什么都要垄断,却又统一不起来!
    #virushuo 发表于2004-10-18 13:09:00  IP: 211.101.189.*
    我们是否需要ASM/CLI?
    #joyfire 发表于2004-10-18 13:12:00  IP: 159.226.42.*
    有没有可能实现C++语言对JVM的操作,就好像C++/CLI对.net做的一样,用一个^代表虚拟机里的内存对象

    不知道这在编译技术上的难度如何,JVM目前不是公开标准,不过IBM和BEA都有自己的JVM……
    #TripleX 发表于2004-10-18 13:12:00  IP: 220.249.10.*
    To AM 5drush
    我可不认为真的能用CLI来实现硬件驱动 至少要实现一个内核态的
    "软CPU"是极其困难的 内核有完全不同的内存管理策略 不同硬件
    对内存需求也不同 有的需要物理上连续的内存 在某些cpu上
    (比如arm) 总线发生DMA的时候内存控制器不会保证cache的一致性
    更致命的是 在中断上下文里是不能处理某些例外的 因为那会导致
    重入... 反正是极其麻烦 就是做了也没什么特别的好处 还要占用很多
    内存来cache jit生成的目标代码  
    #权威 发表于2004-10-18 10:27:00  IP: 211.97.51.*
    垃圾!
    目前C++足以"应付"java/C#所谓的威胁!
    CLI肯定没有前途!
    #6128 发表于2004-10-18 10:31:00  IP: 211.136.27.*
    这些评论没有意义,因为大家在使用盗版WINDOWS,.NET
    当一个人懂得尊重版权后,他才有资格评论。
    #权威 发表于2004-10-18 10:31:00  IP: 211.97.51.*
    特别是这个符号 "^"
    要么就用单词, 更纯一点, 如java
    C#里面已经"不伦不类"了,什么"[bb(),gf()]"都用上了!
    #温少 发表于2004-10-19 00:10:00  IP: 210.83.253.*
    CLI是否是唯一有前景的技术,将有市场来决定。

    虽然目前微软的市场的策略看起来很成功,但是最近两年Java发展的更快了,Java发展快的并不主要在语言本身,而是基于Java的企业应用、开发工具发展的很快。包括Eclipse、J2EE等。

    微软吸引开发者的一个重要的利器是便利高效率的开发工具,现在Eclipse在代码编辑方面作得比Visual Studio要好得多。

    微软在企业应用方面,目前还是没什么进展,甚至比以前VB 6时代都没有大的进步。ADO .NET和COM+ FOR .NET,都是易用性的改进,而非功能的增强。目前看来,在企业应用方面,微软被抛开很远了。

    由于Eclipse的出色表现,基于Eclipse的RCP技术客户端程序也可能流行,那么使用Java也能写出高效、美观的客户端图形界面了。
    #joyfire 发表于2004-10-18 13:41:00  IP: 159.226.42.*
    我想各位对有些原话有误解。Stan说“驱动”正是说VC++既支持.net机制,又有更好的native支持,所以什么都能做,比C#强很多。他说这话带着很大的自豪感。实际上在.net刚刚推出的时候,大多数人都以为VC++要歇菜了,现在看来,正是这几位牛人的努力,VC++依然是微软的第一开发工具。我看了新版VC++的Beta,有一种“王者归来”的感觉

    至于和“传统C++”之间的纠结,有一些意识形态的东西在里面。我不否认(像Avlee说的)作为很多年C++程序员,我好像内心里很反感把代码编译成IL字节码。不过另外一方面我们不得不承认一些什么。

    很多时候是人适应环境的,我现在看着老妈(中国最早的程序员吧,现在50多岁玩Linux)摆弄汇编debug,感慨当初第一次看到这个只需要敲键盘的东西的兴奋(不用打穿孔纸带了),“真正快的程序是汇编写的,不是什么C”,是不是有一天我们也变成这样。
    #littleliang 发表于2004-10-18 13:47:00  IP: 219.232.50.*
    请问孟老师,哪里能找到C++/CLI的资料啊,当然除了在微软网站上下载的标准外。毕竟新东西出来,还是需要学习资料的,光摸索也不知办法啊。谢谢了!
    #好笑 发表于2004-10-18 10:51:00  IP: 202.100.200.*
    先问问自己懂不懂"[bb(),gf()]"是什么意思,再来评价
    #cnss 发表于2004-10-19 01:13:00  IP: 61.149.51.*
    依我看,微软对C++/CLI的定位就是longhorn的系统级语言.如果真是这样,在longhorn上市以前谁学它谁就是吃饱了撑的.还有好几年,谁知道longhorn上市的时候它发展成什么样了.

    String^ ReadFirstLineFromFile( String^ path )
    瞧瞧这语法,也敢叫C++?就怕蒙了那些刚入门的爱好者,让他们以为C++就是这玩意儿
    #uframer 发表于2004-10-18 18:22:00  IP: 218.25.19.*
    拭目以待,最近的好像又有新一轮的语言出生大潮,D出来了,C++/CLI也出来了,不太清楚会发展成什么样,不过我是不太喜欢C#,总感觉是复杂的简单性,每个新特性都是为了给程序员带来便利,但是都凑到一起又令人很不舒服,或许是我已经绑到编译语言上了,更期望D能发展的好一点,毕竟当你想偶尔用针扎一下处理器时,还是native好用。
    #myan 发表于2004-10-19 09:43:00  IP: 218.247.132.*
    to ccBoy:
    ccBoy兄,你的意见很对,这个“C++凤凰涅槃”这个题目确实有不妥之处。我们再考虑一下,看看有没有更准确的题目。

    另外,做为国内最早关注.NET的程序员之一,你对于C++/CLI有何看法?我想很多人都应该愿意听到你的声音。
    #FK.ms.gates 发表于2004-10-18 18:40:00  IP: 218.13.192.*
    记得看过一片文章,是说intel公司如何用摩尔定律来掏国人的钱的。年初一款新产品买1000。年底就变成了300。要买更好的,对不起请付1500。
    相信微软在manage c++已经赚了不少了把。现在又搞出一个c++/CLI,又不知道有多少人花一些冤枉钱买他的光盘书籍了。

    现在讨论这些,真不知道有什么意义。还不是在和你做广告。
    Lippman那家伙应该收了不少微软的钱把!!!!!!!
    #zJH135 发表于2004-10-19 09:56:00  IP: 218.88.38.*
    用来开发那些驱动一切的程序,C#有一天也能作的!要不去帮助一下C#实现用来开发那些驱动一切的程序,C#借鉴了那么多语言的优势,又是新的语言,如果超不不过C++的话,那JAVA对MS的笑话库大家都来继续吧!!!
    #哈哈 发表于2004-10-19 09:15:00  IP: 218.94.6.*
    孟岩翻译得很好。这期程序员买定了:)
    #rwxybh 发表于2004-10-18 19:40:00  IP: 211.93.93.*
    manage c++真是垃圾,这个CLI也不怎么样,归根结底是C++没有一个通用的库,这当然不是C++天生的缺陷!!MS是把C++搞的一团糟!
    #ahphone 发表于2004-10-19 10:43:00  IP: 218.80.226.*
    开始bs Stan Lippman!!!!
    #ilovevc 发表于2004-10-19 09:30:00  IP: 218.17.229.*
    同意温少的。
    给你个D++语言,在作企业开发的时候,也需要依赖一个很好的中间件。但是MS的中间件好像几乎没有什么发展。还是那些老的COM+的services。
    #one 发表于2004-10-19 09:30:00  IP: 218.75.240.*
    微软的目标:借.NET平台的触角触及我们生活的方方面面,以达到他统治信息世界的野心,语言只不过是吸引我们眼球去编织他的梦想的工具。当然世界需要这样的野心者,事实上从来不缺乏这样的野心者。有人要统一,当然有人会反对,反对的人并不是不想统一,而是别人的统一会损害他们的利益,他们不过是想以自己的方式去统一而已,至于谁是胜者?各领风骚数十年!
    #vc 发表于2004-10-18 20:12:00  IP: 221.11.141.*
    MS是把C++搞的一团糟?

    你看看VC的市场占有率再说话
    #cc 发表于2004-10-18 20:16:00  IP: 211.147.229.*
    许多的评论已经远远偏离了技术的范畴,变得面目可憎。
    关于C++的发展,我想bjarne和stan都有自己的想法,而c++/cli正是stan的尝试。这样的尝试成功与否,我看不到,因此根本没有资格来批评或赞赏。但有一点我很赞同,那就是stan心中永远都不会熄灭的创新的火苗。
    且看三年之后吧。
    #Zebingxu 发表于2004-10-19 11:51:00  IP: 218.65.10.*
    计算机行业发展至今,已经在不少方面出现了瓶颈,令人郁闷。

    原因至今为止,这个行业从来就缺乏理论指导(一件新事物的诞生与发展不外如此),但总体上,我们依然依循着一个简单而又确定的体系来发展(运算器、控制器、存储器、I/O)。个人觉得计算机行业要再作突破,就得在根本上有所突破。

    程序设计语言虽然有所谓的标准,但从根本上来说,还是植根于硬件,从大的角度来看不论java、c++与汇编没有本质的区别。所以标准化的过程,首先是“根本”的标准化,然后才会有“分支”的标准化。

    但是计算机是新生事物,所以标准化的工作只能循序渐进,一步一步来。“根本”的标准化和“分支”的标准化是一个互动的过程。

    对于软件行业而言,没有什么比CPU体系结构的标准化更重要了。当芯片集成技术发展到极致的时候,X86指令系统也应该走向尽头,以现在的发展速度而言,不知道还有几年?

    (打字好累,个人表达能力不能,简单表明一下个人观点):

    软件行业的总体指导思想应该是走向效率化、智能化。

    面向对象的方法的确不错,但不当的话,就会将简单的事情复杂化。

    MS并不适合作标准化的工作,标准化的工作应当是独立于商业企业之外的。

    信息时代中,需要一本《宪法》来奠定信息时代的基础,这本《宪法》就是根本标准。

    如果没有大的突破的话,计算机的应用已经被发掘得差不多,现在的最重要的问题应该是将应用进一步普及,谁来结束当前信息行业的混战时代?
    #飞云 发表于2004-10-19 15:39:00  IP: 221.218.43.*
    CLI可以在其它平台使用吗?
    #jeric 发表于2004-10-19 14:10:00  IP: 207.46.89.*
    c++/CLI最大用处在于实现了native code和manage code的协作。我现在在写的程序要用到大量的数据和字符串,如果纯用C#或者java实现的话,那么效率是不可忍受的。如果用C++,数据库的操作,web的发布又是一个问题,但是核心用native c++,需要的时候才用manage c++,配合的相当好。
    还有就是有人认为manage c++全部要编译成il,这个是不正确的,就只有__gc class才会编译成为il,而native code还是会变成汇编代码。
    我觉得CLI可以同时发挥C++对资源的精确操作和高效率(我想这两者是大多数c++程序员喜爱c++的原因)而且可以调用.net的强大功能,的确非常的期待。BTW,manage c++虽然也可以,不过语法实在是让人受不了。
    #ComplexAdaptiveSys 发表于2004-10-19 14:12:00  IP: 202.120.113.*
    Java和.net对C++市场的威胁,我感觉还是VM对原生的威胁,而不是语言上的。C++支持的编程范型和语言特性绝对是最丰富的。而且如果你不喜欢哪种范型,你也完全可以不用。但是在网络时代,原生的语言不太适合融合动态的异构的环境。如果CLI使C++也能在VM上用,可以扩大C++的运用领域,何乐不为?作为程序员,我不喜欢语言满天飞,反而希望只用一种语言表达思想,不管它是跑在二进制上还是VM上。我愿意把精力集中在思想的创新上,而不是成天学习如何表达它。
    程序语言,我觉得还是一种宗教崇拜。我是C++教的,也许会加入CLI教派。:)
    #sunmast 发表于2004-10-19 16:06:00  IP: 211.144.20.*
    说C++/CLI是为.NET而生,还不如说C++/CLI结合了.NET使C++也带有了动态语言的特性,这是利用.NET的机会,把C++扩展了

    语法的改动是必然而且容易接受的,对于动态的对象,如果还像现在的MC++那样使用*和&,肯定会造成语义上的误解,原因见:http://blog.sunmast.com/sunmast/articles/860.aspx
    况且改动并不多

    坚持用库扩展C++的想法是容易理解的,但是只用库显然很难实现动态语言的特性
    #FK.ms.gates 发表于2004-10-19 12:43:00  IP: 218.13.192.*
    如果c++/CLI也成为主流的话。我发誓今生今世都不使用微软的东西,我要去搞linux.去tmd微软,去tmd比尔盖茨。去tmd孟岩
    #chen3feng 发表于2004-10-19 21:47:00  IP: 218.2.250.*
    我觉得与其折腾C++, 还不如扩充以下C#算了
    #AAAAAAAAAAAAAAA 发表于2004-10-19 14:58:00  IP: 202.109.103.*
    臭屁!!
    #willko 发表于2004-10-19 17:36:00  IP: 219.137.219.*
    c++/cli 是什么,和IOS C++有什么联系目前还没弄清楚。
    #赚钱买BMW 发表于2004-10-20 11:06:00  IP: 61.144.67.*
    MS是片子,BILL是混蛋
    但是混蛋与片子能领导业界,能赚到钱,你们呢?

    有本事也能骗到银子啊
    #tinyfool 发表于2004-10-20 11:16:00  IP: 219.238.144.*
    标准是保护用户和商家都不重复投资的唯一办法。如果ms的c++/cli的市场认知度超越了c++标准,那将是一场灾难。因为标准一旦掌握在某家公司手里面,也就名存实亡了。

    ie对w3c的阳奉阴违,就是鲜明的例子。有人总是把.net和c#也提交了iso来说事儿,那有什么用,实现这么复杂的标准本身就是很大的一个壁垒。
    #warp 发表于2004-10-19 20:12:00  IP: 219.236.92.*
    俺就关心用cli干活方便不,挣钱利索不,其他的爱谁谁
    #KILL ALL 发表于2004-10-20 12:45:00  IP: 61.171.20.*
    native 与manage刚出现在VC++中时MS如何说?
    #哈哈 发表于2004-10-20 12:51:00  IP: 218.18.74.*
    这家伙现在不像个搞技术的了。
    #我说几句 发表于2004-10-20 21:29:00  IP: 219.237.41.*
    // 有没有可能实现C++语言对JVM的操作,就好像C++/CLI对.net做的一样,用一个^代表虚拟机里的内存对象

    // 我现在在写的程序要用到大量的数据和字符串,如果纯用C#或者java实现的话,那么效率是不可忍受的。如果用C++,数据库的操作,web的发布又是一个问题,但是核心用native c++,需要的时候才用manage c++,配合的相当好。

    其实单说语言是没有意义的,必须一起讨论附带的平台。

    C++/CLI的"^"用来访问VM里面的对象,这和Java/JNI其实是走了不同的路子。JNI实际上是用纯粹的C/C++和库实现对JVM及内部Object的访问。

    我个人比较倾向后者,因为我可以通过精心的设计分开VM上面的模块(对效率要求相对不高)以及native的模块(对效率要求相对高),并且使用两种“标准”的语言:VM的原生语言和native的C/C++分别实现,感觉“一切尽在掌握”。而且,JNI提供了把VM嵌入native以及把native(比如,win32 dll, linux so)嵌入VM两种方案。而C++/CLI...感觉有点“杂”,只是感觉,了解不多,高人能否详细介绍。
    #总是好心情 发表于2004-10-20 21:37:00  IP: 220.184.167.*
    C++的路线是Bjarne确定的,我当然觉得这条路线是很成功的,我对于ISO C++的发展方向感到很振奋。但是,我确实不认为ISO C++有多么有趣,我说这话不是要冒犯谁,只是谈我的真实看法。ISO C++很了不起,但是它跟C99一样,只是对语言机制的一些修补和加强。它没有给我提供线程机制,也没有网络的支持。这事放在21世纪,简直是是一种犯罪。而.NET提供了完备的支持库。在我看来,这是C++早就应该做的事情。

    放屁一样。。。这么多C++类库,都不已经做过了。C++只是一种语言,而不是功能集!!!你可以加载任何一方的类库,进行自己的实现,不是很灵活吗?难道,我们一定要选择。NET框架吗?。NET框架就是万能的吗?。NET也是2002才有,而众多C++支持库,十几年前,我就看到了。。那时。NET去哪儿了。在BCB里,提供众多的第三库时,。NET在哪儿。。什么C++早就应该做的。。C++开发社区,没有做吗?看看,现在众多的行业框架设计,。NET能做到吗?!!!!
    #再说几句 发表于2004-10-20 21:49:00  IP: 219.237.41.*
    // 放屁一样。。。这么多C++类库,都不已经做过了。C++只是一种语言,而不是功能集!!!你可以加载任何一方的类库,进行自己的实现,不是很灵活吗?难道,我们一定要选择。NET框架吗?。NET框架就是万能的吗?。NET也是2002才有,而众多C++支持库,十几年前,我就看到了。。那时。NET去哪儿了。在BCB里,提供众多的第三库时,。NET在哪儿。。什么C++早就应该做的。。C++开发社区,没有做吗?看看,现在众多的行业框架设计,。NET能做到吗?!!!!

    确实,不过还是那句话,抛开语言应用的平台讨论没有意义。
    .NET和Java其实关键是有一个庞大全面而且相对比较标准的类库。设想:
    如果存在一个跨平台的、包括GUI、网络、线程、数据结构(这个STL凑合)等等的整合C/C++类库存在,并且比较优秀,而且应用比较广泛,那C++岂不完美了。所以说,语言的应用环境非常非常重要。目前C++库是很多,可是不标准化;有些很优秀,可是架不住bug多(比如Qt)。所以现在大软件的解决方案很复杂:有些综合运用各类C++库,有些干脆Java+JNI,比如MATLAB。
    #总是好心情 发表于2004-10-20 21:54:00  IP: 220.184.167.*
    晕,发完了,才发现是孟岩老兄写的,我想这纯属他的情感表白,C++/CLI 一定会 比 manage c++好,我相信这点,也绝对相信孟岩老兄他的才识,绝非文中口述所表达的。
    #总是好心情 发表于2004-10-20 22:05:00  IP: 220.184.167.*
    //确实,不过还是那句话,抛开语言应用的平台讨论没有意义。
    .NET和Java其实关键是有一个庞大全面而且相对比较标准的类库。设想:
    如果存在一个跨平台的、包括GUI、网络、线程、数据结构(这个STL凑合)等等的整合C/C++类库存在,并且比较优秀,而且应用比较广泛,那C++岂不完美了。所以说,语言的应用环境非常非常重要。目前C++库是很多,可是不标准化;有些很优秀,可是架不住bug多(比如Qt)。所以现在大软件的解决方案很复杂:有些综合运用各类C++库,有些干脆Java+JNI,比如MATLAB。

    不标准化,可以选择已经标准化的类库呀。。比如Boost,ACE。。等有强大支持和成熟的框架库,还有如JAWS框架库应用开发,不是比直接应用各种类库的开发更好,我想中间件的概念,不只是开发框架,模板,类库,更多的是从另一个角度应用了设计框架,继承了设计模式。
    #lao_6_mao 发表于2004-10-20 14:09:00  IP: 211.157.111.*
    n年前 ,我也听过某人这么说.COM
    #petcat 发表于2004-10-20 16:38:00  IP: 61.182.30.*
    如果CLI脱离不了。NET的话那么它和JAVA或C#也没什么区别
    #jmchxy 发表于2004-10-20 14:11:00  IP: 211.162.156.*
    同意: jeric c++/CLI最大用处在于实现了native code和manage code的协作!

    如果不需要本地 C++ 支持,直接开发一个 C++ 到 IL 的编译器就可以了,不需要修改语言本身的语法是最好的了(源码级兼容,语义可能需要重新定义),重写所有的 C/C++ 库的 .NET 环境版本 和 .NET 的 C++ 版本, 这样可以编译成本地代码 或者 IL 代码(用不同的目标编译器),这是我最期待的解决方案!

    即使不能完全实现,如果可以实现大部分的移植也不错!
    #Royal 发表于2004-10-20 14:53:00  IP: 222.94.128.*
    这期《程序员》可得多印几本,免得到时不够卖:)
    #sobluesky@163.com 发表于2004-10-20 17:28:00  IP: 211.94.138.*
    有件事情一直很困惑,计算机语言,不论java/c#,c++/c还是汇编语言,最终都是按照一个特定方式描述业务逻辑,只不过不同语言在解释成为计算机能运行的代码的过程不同,我觉得在发展各种语言根本就是浪费,因为最终不过是把业务逻辑描述清楚,更关键的是怎么解释,让计算机运行。就是说,不管你语言是什么,要解决的问题,确切点说是业务逻辑是一定的,关键是计算机运行这个逻辑的优化方法。要我说最好程序能画出来,而且是立体的,这更适合人们的习惯。不过好像现在没有人认同。
    #fengj 发表于2004-10-20 18:05:00  IP: 219.220.210.*
    stan Lippman 写的C++ Primer我买了,觉得写得还可以。

    现在他加入微软为微软说话,这可能说明了:人穷智短啊!

    managed C++ 是一个垃圾!
    C++/cli尽管有所改善,但仍然是一个垃圾!
    微软的特点就是加入很多关键词,对语言进行较大的修改!
    任何理解C++的人,都不认为managed C++ or C++/cli是
    一个C++语言。
    让C++程序员认同的C++语言应该是标准C++,其它厂商
    充其量只能对其进行较小的扩展!典型的例子是C++ Builder
    进行的扩展就比较小,而且可以使用功能强大的类库VCL。
    而微软将C++扩展到.Net上的语言让人们已经无法认可它是一个
    C++语言!还不如重新起个名字如:C#-!免得伤了C++程序员
    的感情!

    Stan Lippman进行的推销可能是言不由衷!也可能是真的相反。
    牛顿最后不也研究神学吗!
    但我们不会人云亦云,毕竟我们也有大脑!
    #anliu 发表于2004-10-21 07:32:00  IP: 221.232.76.*
    MS是片子,BILL是混蛋
    但是混蛋与片子能领导业界,能赚到钱,你们呢?
    -----他为什么能赚到钱,根本原因就是你这种SB程序员太多了,喜欢被微软牵着走。
    #grayM 发表于2004-10-20 18:28:00  IP: 218.106.82.*

    我不知道.Net或者说C#比java“先进”多少,至少有一点,在语言的表现能力上,看不出来有什么特殊的地方,延伸到架构来说,又能怎么样的“先进”。
    #kk 发表于2004-10-20 18:41:00  IP: 211.167.58.*
    我觉得一个心的开发语言的诞生意味着一个时代的结束,
    不过如果是一个名称的扩展的话,他始终还是本身语言的扩展,
    到不如说是 c++ 7.0呢
    #不断发展 发表于2004-10-21 11:22:00  IP: 61.130.50.*
    看看某些人杞人忧天的样子,发展是好事啊!看见新事物就害怕的人一般比较适合做遗老遗少。语言不过是表达的手段嘛,评价一个文学作品的优劣并不以他所用的语言为准呐,c/c++/java/c#不都是表达吗?语言,工具而已,你觉得哪个适合就用哪个,胸中有沟壑才重要啊,计算机专业的核心课程从来就不是语言本身,掌握原理才重要,语言工具么,多拿几个试试,掂掂分量,哪个合手就用那个。
    #Houziko 发表于2004-10-21 09:43:00  IP: 218.18.140.*
    不管怎么说C++\CLI都是很值期待,C++\CLI是C++的发展,只有发展了才不会被淘汰
    #guoxu 发表于2004-10-21 12:09:00  IP: 218.247.150.*
    对stan的看法持商榷态度:
    1)我们首先得区分平台、语言、库,CLI/.NET是平台,Java则把语言、平台、库混合起来,C++则是一种语言
    2)把平台和语言相比并不合适,用CLI/.NET与C++相比是没有可比性的,如果要比,那就和windows自身、unix\linux、Java虚拟机去比吧,与后面提到的这些平台相比,CLI/.NET真的有那么多优势吗?就算是跨硬件平台、跨语言,Java虚拟机不也有类似的能力吗?
    3)如果将C++/CLI与C++自身比较,它实际上只是C++的一个扩展而不是替换;如果这个扩展会改动C++本身的大量语义,那么在c++标准中纳入该扩展可能是相当长期的工作,而C++社区中有多少会转变到该语言则是另一个问题,很可能会以Managed C++的下场结局
    4)如果说C++/CLI是唯一有前途的技术,那就更有问题
    a)在企业级开发中,Java仍然占据绝对优势
    b)大量商业软件仍然以unix平台为主要平台,在Windows平台上的功能往往受限,就不要提C++/CLI了
    c)即使其功能再强大,也只能受限于.NET平台,何来唯一之说?
    5)关于提到C++中缺乏线程和网络支持的问题,从C++/C本身的设计就知道为什么,以Stan的知识,何以提出此类问题?就线程而言,不太可能标准化,不同实现的语义差别太大;就网络而言,已经有了事实上的标准socket,m$来这里折腾个上面劲?难道是又想把标准复杂化,自己来掌控,而程序员又要重新学习吗?
    6)文中大有把CLI/.NET抬高到前无古人的趋势,不过就是虚拟机罢了;殊不知,虚拟机技术在60年代就从IBM的s360中发端了,在后续的系列大型机中确实发展到了相当的高度,OS400就是一个例证;至于Sun和M$,都不过是拾人牙慧罢了,Sun可能还谦虚一点,M$干脆就收买几个C++社区中头面人物,来为自己张目了,可能是前些年就开始力推的.NET战略至今没什么效果的原因吧!唉,可惜又少了一些厂商中立(vendor neutral)的技术高手啊。

    #cx 发表于2004-10-21 15:25:00  IP: 218.88.41.*
    没有理论的突破而妄谈革新是不恰当的,
    感觉这些都是ms为了卖自己的产品。为了垄断而在玩花招。大家最好不要盲目跟风
    #jjy 发表于2004-10-21 20:35:00  IP: 61.159.246.*
    感觉guoxu说的很对啊
    #BinaryPoet 发表于2004-10-21 17:17:00  IP: 61.187.54.*
    还是这里的气氛和谐,呵呵!
    #silentduck 发表于2004-10-22 15:00:00  IP: 210.22.101.*
    什么标准化?什么跨平台?别指望MS会在这些方面推动C++的发展,一个商业公司的终极目标是追求利润,MS搞个C++/CLI旨在吸引更多的开发人员投入到.net平台上来
    #别动不动就大师什么的  发表于2004-10-22 15:02:00  IP: 218.246.97.*
    "C++应用的缺点大家应该是有目共睹"???

    我怎么不知道啊?请赐教!
    #FJGoodGood 发表于2004-10-22 00:11:00  IP: 218.17.79.*
    或许是 stan 太有名气,他的一番言论不自觉中把读者注意力都吸引到一门古老的计算机语言身上了。其实C++/CLI只是一门语言,它的存在,只是为了迎合 C++ 程序员以自己喜欢的方式去使用 .Net Framework 的功能。C++/CLI 能作出超越 .Net Framework 的事情吗?无论是 C#/C++/还是VB.Net,甚至现在的 Delphi.Net,语言本身的功能都可以发挥到尽致,而他们的共同局限其实都是一个 —— .Net Framework。

    #badboy007 发表于2004-10-22 12:56:00  IP: 210.3.7.*
    花了很多时间来看所有的跟贴,然后明白了一点:
    C++/CLI其实只是微软对C++语言的又一次改造,目的只有一个,让它可以使用.NET Framework。微软之所以费这么大力气去做,根本出发点不是C++的发展(当然可能确实会使得C++获得一定程度的发展),而是推广他的.NET Framework!更根本的是.NET Framework 和JVM的竞争在语言上的表现而已。
    就像当年微软推出VB一样,根本出发点不是为了发展Basic语言(当然也对Basic的发展起到了作用),而是借推广Windows编程来推广他的Windows操作系统。现在他的目的达到了,他又要推广他的.NET Framework,所以就毫不犹豫的踢开了VB,要众多的VB程序员转向.NET编程方式,这是一个多么大的转向呀!
    为了吸引众多的C++程序员转向.NET Framework,微软又推出了C#,大家还记得微软推出C#时说过:C#是在.NET Framework上开发的最得力的工具。如果推出了C++/CLI,那这句话岂不是在放屁吗?!
    其实选择哪种语言,关键不在于语言本身,因为所有语言都有自己的优势与劣势,都有自己的适用环境。选择语言的关键是作为语言使用者的程序员他所处的开发环境。

    想想吧,如果某天又有一个.XXX出现,是不是还要继续推出一个新版的C++来兼容这个新的.XXX?
    #step_by_step 发表于2004-10-22 13:04:00  IP: 220.163.17.*
    我是一个纯粹的unix程序员,C++/CLI对我的工作有帮助么?
    #badboy007 发表于2004-10-22 13:06:00  IP: 210.3.7.*
    C++凤凰涅磐,这个名字本身就充满了广告气,让人觉得你是在为自己的文章做广告,在为微软的C++/CLI做广告!!!

    你确定C++/CLI就能让C++凤凰涅磐吗?你凭什么这么肯定?如果有一天JVM打败了.NET,如果有一天你所吹捧的C++/CLI也象MC++一样了(这是完全有可能的事情),请问你如何自处?

    建议你在写文章和拟题目时给自己留点余地……

    如果语言刻薄了点,请原谅!
    #noiile 发表于2004-10-22 17:08:00  IP: 219.137.242.*
    "我个人感到ISO C++社群已经变成一个闭关自守的社群了"

    这话我觉得对,我几乎不知道.net到底为何物,我也很少关心其他语言的层出不穷的新技术。我认为C++是最强大的,它能满足一切。
    不过我还是很羡慕java有象eclipse这样优秀的编辑器。
    我佩服stan,我只看过他的一本"Inside C++ object model",我认为他有资格评论C++的不足。虽然我不全部赞同他的所有观点,而且我也没打算去了解C++/CLI。

    可是这又何妨呢?每个语言都有他的好处,只在于你喜欢哪种而已。就象你喜欢Linux,但也没有必要把MS踩的一文不值吧?

    很乐意看见有C++/CLI, 但它是否真如stan说的那么好?我冷眼旁观。
    #badboy007 发表于2004-10-22 13:17:00  IP: 210.3.7.*
    整篇文章充满了对.NET的吹捧,要知道,迄今为止.NET还仅仅起步而已,距离JVM还有相当大的距离,更何况“成功”了!

    透过表象看本质,根本是微软在借用C++来推广.NET罢了,如果能够对C++的发展起到推动(肯定会,否则谁跟他走?)的话,那也只是微软不得不如此的结果而已。

    通过这篇文章,我们可以清楚地看出.NET和JVM的竞争已经激烈到了什么程度……
    #Illum 发表于2004-10-22 13:38:00  IP: 218.201.40.*
    有时候,我觉得大家实在很好玩
    说白了这个其实只是一个C++在.net平台上的应用而已,这也并不是C++的所有,有必要这么在这儿散失你们基本的理智么?你难道不能平心静气的来看看他怎么去发展么?
    C++/CLI在我的理解上是不错的设计,C++应用的缺点大家应该是有目共睹的,解决这些缺点,也需要不断的尝试,如果说是错了,自然会消亡掉.
    不过,我也对C++/CLI的前途堪忧,由于MS一贯的作风,C++/CLI成为C++标准的可能性较小,然而如果不成为标准,它存在的必要性恐怕就不那么好了.当然,我并不知道C#在.net上的性能是否不如C++(我的理解中应该是C#更好些).
    #JON 发表于2004-10-22 19:56:00  IP: 218.5.18.*
    Stan Lippman确实可称为现代IT业的一名将军,他的精神值得我们这些后辈学习。

    #yomi 发表于2004-10-23 09:13:00  IP: 220.189.213.*
    C++的确遇到了很大的问题,就是所依赖的库。
    C++的库有很多,但是标准化的只有STL,而开发所需要的线程、网络库等等却没有标准化。这就导致了每个人都在不兼容的库的基础上开发新的库,要跨操作系统平台更是难上加难。最终导致几乎所有的库都无法适应新项目的需求。然后开发者在需要库支持的时候只有去找,找到了还要比较,比较就要深入细节,找不到还要自己写,极大地降低了开发效率。(并且最终的结果还是一个难以重用的库)。C++社团应该反省这个问题了,应用为王。
    如果C++实现了各OS上的原生标准库,其效率将比JAVA虚拟机,或者动态语言高许多,开发库的完备可以让程序员关注更高层面的问题。
    然而现实是JAVA轻易地赶上了c++,甚至进入了c++都难以进入的嵌入式领域。我是喜欢c++的,但现状太令人遗憾了。
    #kaonidaye 发表于2004-10-25 15:36:00  IP: 219.237.6.*
    人的生命是最宝贵的,生命属于人的只有一次
    除非你用c++赚了钱,否则,c++浪费你的生命,你为什么要学习c++? 那是一个叫做死兔子讨破的秃顶男人,当然他是剑桥大学博士,在上世纪,70年代的一个实验室花费了10多年时间搞出来的一个庞大复杂的东西,你,一个亚洲青年,活在2004年,你为什么要和这个家伙的破东西较劲?你傻不傻?
    #空见(aiirr@hotmail.com) 发表于2004-10-25 19:32:00  IP: 210.22.83.*
    我喜欢c++,因为她的优美(十年前看孙玉方用优美形容c,我想用于形容c++也是非常恰当的),希望c++/CLI不会破坏这种感觉,句柄的运用就有破坏之嫌疑:Type^ obj = gcnew Type();虽然区分了托管的内存和CRT堆,但是总觉得怪怪的。我很不喜欢托管的内存,也就是那个GC,我认为这是不优美的制造者,不明白为何自己申请的资源自己为何不去释放?却要“垃圾回收”(安德森的想法有时候也满怪的),却又做不到统一,有的时候还必须显式的调用Dispose(虽然c++/CLI的表现形式和析构函数已经很相近了)。
    Derived^ d = gcnew Derived();
    d->SomeMethod()
    delete d;//“仅仅调用Dispose,内存等会GC来释放,简直搞笑”

    这样的代码又体现了多少内存自动回收的思想呢?晕倒。

    牢骚发完了,我希望有人给我一点建议,我不愿意放弃c++,又想用.net(毕竟用于开发web service会很方便),大家有何建议?
    特别是孟老大,给点意见。
    #adult-galleries 发表于2004-10-26 06:20:00  IP: 211.250.81.*
    <a href=http://www.britgals.com/content/rs/laura/laura200503/laura200503362.html>adult galleries</a>
    #alaska 发表于2004-10-28 02:50:00  IP: 61.141.242.*
    guoxu先生分析的深度和广度都比较令人信服。
    #alaska 发表于2004-10-28 02:53:00  IP: 61.141.242.*
    感觉用“世间熙攘,皆为利往”来形容这些变化是最准确的。
    #刘未鹏 发表于2004-10-28 16:27:00  IP: 202.119.32.*
    to 空见(aiirr@hotmail.com):

    Dispose()释放的是“资源”而不是“内存”。至于内存到底由谁来释放,我的看法是:能者为之。

    请弄清楚资源和内存的本质区别。

    另外,对于GC,就连B.S都不否认它。GC是不错的思想。对于C++,最好的情况是可选的GC。而这一点恰恰在C++/CLI中达成了——别忘了C++/CLI是一个Mixed环境。

    感觉更多的人评价这件事多少都有点信仰的成分在里头(我也是^_^)。

    从语义上说,C++/CLI还是比较一致的。只有一点我觉得需要改进的,就是box和unbox,这个混乱的语义来源于一个效率的折中,却恰恰深深的扎根与.NET平台中。想想看《Applied Micorosoft .NET Framework Programming》一书中花了多少唇舌来讲解这个问题。但是在C#中这个问题还不算严重,而到了C++/CLI中,由于指针(^,又叫handle)和引用(%)的语义区别,这个问题变得更为模糊。
    个人觉得这是个有待精化(refine)的地方。
    在C++/CLI标准草案1.5中,对GC -value的解释很不能令我满意,感觉这一块由于value class和ref class的区别而变得特别模糊。
    #绝对支持者 发表于2004-10-30 11:20:00  IP: 202.198.169.*
    有改进才有进步..支持!!!
    #google 发表于2004-11-03 15:59:00  IP: 219.146.180.*
    支持!
    #vc6程序员 发表于2004-11-04 13:20:00  IP: 203.93.38.*
    我看了两遍......

    单从个人爱好讲,我热爱C++语言,尽管它复杂,有缺陷,那是世界万物的客观本质;但是它却有一种更甚于其它语言的“魅力”一直感染着我!

    我相信所有的C++爱好者都有感触!

    虽然目前CLI还未成熟,但是我相信Stan,相信Herb,相信Bjarne,当然,还有许许多多工作在C++,热爱C++,为C++语言的发展做贡献的人们,只要有他们在,C++的未来是美好的,是可以期待的!

    永远支持伟大的C++语言,希望它更上一层楼!
    #大家好啊 发表于2004-11-05 15:19:00  IP: 61.143.33.*
    我爱VB
    #