一次关于C++BuilderX的讨论
猛禽(整理)
本来打算把这次的聊天内容整理成文章,但一不小心写得太长,还没写完,加之最近事多,一时半会还写不完。Delphi8又出来了,需要研究一下,所以暂时先把这个聊天记录贴出来将就一下吧。
2003-12-11 16:16:12 令狐虫():还是谈谈BCB吧……最近版上对BCB的怀疑之风很盛啊
2003-12-11 16:17:06 玉笛书生:呵呵,怀疑前途是吧?没办法,哪个叫Borland不继续追加研发了。
2003-12-11 16:17:32 ccrun:看样子得转行了.
2003-12-11 16:17:43 玉笛书生:恩,都在想换工具。
2003-12-11 16:18:00 ccrun:不知道换成什么好。.net?
2003-12-11 16:18:50 令狐虫():其实BCBX是个不错的工具。而且BCB5、6仍然很好用。我觉得很多人喜欢追最新的,可能是国内盗版太好买了。呵呵。如果要换的话我还是觉得Java比较好,一来比较成熟,二来Java的社区力量比.NET要庞大。
2003-12-11 16:20:48 ccrun:cbx一上手有些陌生。
2003-12-11 16:21:48 令狐虫():嗯,要一个习惯的过程是肯定的了,那时候我从VC6转到VC7也熟悉了好一阵子的。不过现在BCBX的战略重点肯定是换了,重点不在可视化开发上了,我感觉更多是面向一些大系统了。包括多编译器、多平台的交叉编译能力,还有Together的集成、 等等,都体现了这一点
2003-12-11 16:25:59 ccrun:恩。其实这是个明智之举。
2003-12-11 16:29:33 令狐虫():是啊,如今C++都被用在一些中小型的软件开发上。而假如Borland能凭借BCBX整合发展出一套适合企业开发的Framework,我想对C++的贡献应该是很大的,可以算是里程碑式的了。现在Borland正在向这个方向努力,能不能成功就看他了
2003-12-11 16:30:16 玉笛书生:你们试用过了cbx?
2003-12-11 16:30:56 令狐虫():我在他出第一个beta版的时候用过,现在这些看法都是基于外界对他的介绍和评论
2003-12-11 16:35:11 猛禽:呵呵,偶也是用测试版的那个TOMAHAWK:)其实在OPENSOURCE领域,现成的东东多的是,看BORLAND是什么态度了
2003-12-11 16:36:03 令狐虫():对啊,我就是说,Borland来把这些东西来一个整合
2003-12-11 16:36:08 猛禽:比如要做多层应用,用标准C++实现的ACE/TAO就是一个非常好的东东,但BCBX只集成了ACE,没有TAO,因为TAO跟BORLAND的VISIBROKER有冲突。还有GUI库,BCBX如果换成WXWINDOWS,那对原来用VCL/CLX的人都是一个重大的打击但BORLAND也没办法,因为CLX是基于QT的,而QT的协议限制了在商业应用中必须付费
2003-12-11 16:37:25 令狐虫():现在C++的问题就在于你有很多的选择,但是每个选择都必须你自己做,而且你选择的东西之间的不兼容需要你自己去解决。而如果这些事情由Borland帮你完成,那是非常理想的
2003-12-11 16:38:35 猛禽:BORLAND未必愿意做这样的整合工作
2003-12-11 16:38:38 令狐虫():不是说了GUI方面有一个代码生成引擎么?如果这样的话,加入VCL应该不是难事,只要多加一个对这个引擎的接口就可以恶劣
2003-12-11 16:39:00 猛禽:但是VCL不是跨平台的,BORLAND不愿意再在这上面下工夫,因为这有违BCBX的目,BCBX必须要有一个平台无关的GUI库来作为它的FRAMEWORK。
2003-12-11 16:40:08 令狐虫():对,非windows平台下不能用VCL,这是很显而易见的。其实这个事情可以由社团做,Borland只要负责把那个代码生成引擎做完善就可以了。就像现在的Python的开发模式
2003-12-11 16:40:16 猛禽:要不然就要把BCBX定位在后端开发,PYTHON我不太喜欢,约束太多,还是C++自由。关键是整合这些OPENSOURCE的东东,BORLAND也必须是OPENSOURCE,而对BORLAND来说,它必须有利可图,换成IBM,它可能就会做
2003-12-11 16:41:57 令狐虫():没必要啊,Java也不是OpenSource的,但是社团很强大。关键是你要公开接口。Python我到是很喜欢,呵呵。现在有空就在琢磨它
2003-12-11 16:42:41 猛禽:JAVA社团中强大的只有两派:OPENSOURCE和大公司(IBM/BEA)。C++不同,没有哪个大公司能吃下它
2003-12-11 16:43:29 令狐虫():C++作为语言是这样,但是类库还是可以有一个领导者的,我认为
2003-12-11 16:44:07 猛禽:现在C++的类库也有很多了,只是各自为政
2003-12-11 16:44:46 令狐虫():所以需要一个整合者啊。当然,我希望Borland能借BCBX扮演这个角色,至于它自己会不会去扮演,不是我说了算了
2003-12-11 16:45:20 猛禽:但现在BORLAND只是提供了BCBX这样一个供整合的平台,整合的工作没有人做。而且据说OPENSOUCE社团对BORLAND没有什么好感,传说是始于Denny.Thorpe和LINUX社区的那次大吵
2003-12-11 16:46:52 令狐虫():哎,Borland毕竟不是大公司,不能像Sun对java那么做。而且……,这也是没办法的
2003-12-11 16:47:31 猛禽:所以我们这帮跟BORLAND混的人也挺惨,难怪别人会看衰BCBX。其实现在要拿BCBX做也行,只是把它当一个IDE环境而已。比如做后端的开发,用TAO做CORBA中间层,用DBX访问数据库,客户端通过IIOP连接实现
2003-12-11 16:50:25 令狐虫():它只要提供一个IDE,全部的开放引擎和OpenSource的类库就可以了,最重要是那个引擎,有了这个就会有人为它移植其他类库的。哈哈,那时候的BCBX就可以像现在的Eclipse那样本身只是一个框架。不知道会不会是这个样子
2003-12-11 16:51:29 猛禽:理想很好,但希望不大,BORLAND还要靠BCBX赚钱的。而ECLIPSE是IBM靠VISUAL AGE已经赚不到钱了,才OPENSOURCE出来诞生的
2003-12-11 16:52:40 令狐虫():不过其实BCBX给我们提供了很不错的思路,我想过不了多久就会有类似的OpenSource项目出现的
2003-12-11 16:52:41 猛禽:如果BORLAND在BCBX中没有一点自己的东西,赚钱很难
2003-12-11 16:53:18 令狐虫():那是当然了。
2003-12-11 16:53:31 猛禽:现在的BCBX中编译器可以用G++或INTEL的,以后GUI的FRAMEWORK又用WXWIN,BORLAND靠什么赚钱?我很怀疑
2003-12-11 16:53:46 令狐虫():现在Borland的实力还只能靠产品赚钱
2003-12-11 16:54:12 猛禽:现在BCBX里唯一值钱的就是DBX了,这算是BORLAND做KYLIX得到的最大的收获
2003-12-11 16:54:48 令狐虫():在没有类似产品出现之前,它的这个架构还是很吸引人的。应该会有人感兴趣
2003-12-11 16:54:52 猛禽:关注BCBX2会有什么表现,除了WXWIN以外,BORLAND应该要提供一些更有价值的东东才行,至少应该加入对VCL的兼容,否则将使绝大部分BCB/KYLIX用户流失,虽然现在已经流失部分了。
2003-12-11 16:56:30 令狐虫():VCL的兼容是肯定有的,问题是以什么形式提供。Borland不可能这么傻。它的BCB3还提供OWL的兼容呢
2003-12-11 16:57:30 猛禽:但对CLX的兼容我是不抱希望了,毕竟CLX的用户还少,保持兼容的代价太大
2003-12-11 16:57:56 令狐虫():呵呵,我一直认为这个CLX有点鸡肋,不知道到底有多少人在用
2003-12-11 16:58:09 猛禽:刚开始看CLX还是不错的,保持和VCL几乎一样的用法,但同时提供跨平台访问能力,可惜它的底层库选择错误,如果一开始选择WXWIN就好多了。别的BORLAND还有什么可以提供的?
2003-12-11 16:59:06 令狐虫():不过Borland收购的Together还有一家什么公司,对Borland的帮助应该会很大。
2003-12-11 16:59:18 猛禽:一个是TOGETHER,一个是BOLD。这是目前BORLAND最有希望赚到钱的方面。ECO是目前.net平台下第一个ORMAPPING的解决方案
2003-12-11 17:00:05 令狐虫():这两家都是提供企业级产品的,而且口碑都不促,这样的产品融合到Borland的产品里,对客户吸引力还是很大的
2003-12-11 17:00:23 猛禽:TOGETHER又提供了在。NET/JAVA下的MDA开发能力,这是BORLAND目前最有优势的方面。BCBX集成了TOGETHER如果不能加强自身的企业应用开发能力,还是白搭
2003-12-11 17:01:32 令狐虫():我觉得Borland还是可以走它原来的长处,就是整合不同的技术。原来的对DCOM和Corba的集成就很有特点,这次的C#Builder提供了对Java的集成也很有个性。
2003-12-11 17:01:53 猛禽:关键看BORLAND将在BCBX中采用什么技术来实现
2003-12-11 17:02:02 令狐虫():所以我开始就说了,我希望Borland能凭借BCBX整合出一套企业级的Framework
2003-12-11 17:02:32 猛禽:从利益的角度上说,BORLAND一定会整合BES(即原来的VISIBROKER)。但我不看好BES,因为在CORBA领域,BES不是ORBIX的对手,在EJB领域,更不是WEBLOGIC/WEBSPHERE的对手
2003-12-11 17:02:42 令狐虫():是的。呵呵,这个领域我不熟悉。可是它不用去做J2EE的容器,它只要做一个中间层就可以了
2003-12-11 17:03:41 猛禽:再说BES是用JAVA写的,性能上不能完全发挥C++的优势,IDE是因为有图形界面,为了使它表现一致,用JAVA开发我可以理解,但中间层应用没有GUI,完全可以用C++来实现,而最方便的莫过于采用TAO这样的现成方案,这就要看BORLAND舍不舍得牺牲BES了。不过还有一个方案就是像MIDAS一样,提供一个通用的开发技术(中间层的FRAMEWORK),底层可以自由选择,这样最好。现在用C++实现的CORBA方案中,比较好的就那么几个。像MICO虽然不错,可是它对BORLAND的编译器兼容性不好,我曾经为了用BCB6编译这玩意儿,改了它N多源码,还是未完全成功。后来发现TAO,它支持的编译器非常多(据我所知是所以C++ CORBA方案中最多的)。现在多层技术就是三种:COM系列/CORBA/EJB。能用于C++而跨平台的,只有CORBA。BCBX要是能在这点上做得好,还是很有前途的。EJB是兼容CORBA的,通过RMI over IIOP可以直接访问CORBA对象。只要BORLAND在.net中提供CORBA解决方案就好,反正现在BORLAND已经有了一系列.net产品,开发一个像李维说的Corba.net,应该是可以的
2003-12-11 17:10:51 令狐虫():那是的
2003-12-11 17:11:21 猛禽:而且正好现在.net上的多层技术还空着,MS现在在.net中是用COM+,相对来说比起.net来说算是比较落伍的
2003-12-11 17:13:00 令狐虫():不过按.NET的能力,开发中间层问题不大,只是现在的.NET还没有成熟而已
2003-12-11 17:13:56 猛禽:如果CORBA.net能在MS下一代中间层技术出来前抢占市场,对BORLAND就会非常有利
2003-12-11 17:14:08 令狐虫():对,没错
2003-12-11 17:14:11 猛禽:EJB也是在JAVA出来三四年后才出现的。.net现在才出来两三年,Corba.net还有机会。就要看BORLAND怎么做了
2003-12-11 17:14:59 令狐虫():而且J2EE整个都还在不断发展和演化,1.2还不支持WebService呢
2003-12-11 17:15:12 猛禽:OMG制定的Corba 3.0规范已经在赶超EJB和COM+了
2003-12-11 17:15:23 令狐虫():呵呵,我们帮Borland出这么多主意,不知道他们自己怎么打算的
2003-12-11 17:16:45 猛禽:李维是BORLAND的人,出的主意BORLAND都不一定听,更何况我们这样的无名小卒
2003-12-11 17:19:31 令狐虫():其实我倒觉得Borland是在给我们提供了很多新的思路,原先我肯定想不到BCBX可以这么走。这点来说还是很佩服Borland的。
在本文写到一半时,刚刚从ChinaBCB—http://www.chinabcb.com上得到一些关于BCBX2的好消息(原始出处为--http://wxwindows.sourceforge.net):
BCBX2已经在开发中,可能会在未来几个月内发布。
BCBX2将包含完整的编译器,Designer,Object Inspector。新的BCBX编译器将是全新开发的,据说与以前的编译器不可同日而语,并且它应该还可以兼容VCL。Designer拥有对不同的Framework的整合能力(有一个DEMO演示了对wxWindows和JavaBean的支持)。
对于VCL用户来说,也不用再担心VCL的未来了,已经确定在BCBX2中会有一个与BCB非常相似的被称为“VCL Bridge”的实现。它支持对已有的BCB项目进行打开、编辑、设计、更新等操作,就像是现在的VCL设计器一样(如BCB或DELPHI)。不过BCBX支持的VCL不会再作改进,只是兼容现有的VCL,BORLAND建议将现有的BCB VCL应用程序向两个方向转移:一个是用Managed C++移植到.net或用wxWindows移植成跨平台应用。至于所谓的这个“现有版本的VCL”是哪个版本尚未确定,可能是BCB6的,也可能是DELPHI7甚至DELPHI8(去掉其中.net部分)中的VCL。
至于COM/ActiveX等,可能会被支持。
如果对下个版本的BCBX有什么建议和要求,请给BORLAND发邮件并说明理由:cpp_open_letter@borland.com
那篇文章除了上面说的这些,还有一段很长的答疑内容,专门回答BCB用户对BCBX的各种疑问,所有对BCBX有疑问的BCB开发人员相信都可以在这个答疑里找到满意的答案。
看来BCBX2还是很值得期待的,只是我所期望的企业应用开发的Feature暂时还没能实现。