在sourceforge上找到个Visual Component Framework--开源c++ builder一点构思

hemiya 2011-03-15 12:53:58
加精

一个跨平台的库。
最早的文件日期是2001-10-20,最近svn上的日期是2011-01-07。

项目声明,借鉴了Borland的vcl库和Java的Swing框架。

作者ddiego,个人很佩服,一个人开发了那么久还在继续更新。

这段时间大家讨论的搞个开源的类似c++builder的可以参考一下。

项目主页Visual Component Framework

原版项目说明

The Visual Component Framework is intended as a cross platform class library, that supports, among other things, an advanced GUI framework strongly influenced by Borland's Visual Component Library and Java's Swing framework.

开源协议:BDS

//--------------------------------------------------------------------------------------------------------

这段时间 chla 的帖子 开源c++ builder想法不知道可行不?

个人觉得可行性还是有的,不过做的工作比较多,个人有个简易的框架,希望各位c++builder粉丝讨论,也希望其它板块的高手给点意见和建议。 希望妖哥看到了,推荐一下

一、先要了解什么是c++builder
c++builder(以下简称cb,不要和code::blocks搞混了呵呵)是最早是由Borland开发出来的一个c++语言的为主的ide,如果认为c++builder就是个c++编译器和ide的简单结合体就错了,实际上cb是由c++编译器,vcl库,ide这三个紧密的联合在一起组成的缺一不可,少了哪个都没有了cb的精髓。

二、我们最基本需要完成什么
1,c++编译器
2,一个类似vcl的跨平台gui库
3,一个有可视化界面设计的ide

三、c++编译器
基本上c++编译器的有两个思路,一个是扩展g++编译器可以编译那些cb特有的c++关键字和语法,另一个是直接用g++编译器不扩展语法通过其它的手段进行祢补。

个人倾向于第二个方法:
1,实现的代价低,比扩展g++编译器代价和难度小多了,最起码c++的编译器扩展和修改一般人玩不了,本人就是呵呵,水平菜菜。
2,维护的代价小,g++有专门的团队进行维护,并且在很多平台上都已经实现了,x86构架的windows、linux、mac,arm构架,mips构架,减少了入门门槛和以后的维护麻烦。

四、跨平台gui库,wxwidgets、qt、vcf三选一或其它
首先,应该把qt排除,排除的原因不是因为qt不优秀而是qt的“商业味”,说不定哪天又变天了,这个必须要小心,并且qt有qtcreator用这个开发qt也挺好的。

wxwidgets好像是个欧洲大学首先搞得,以后开源的,协议比lgpl稍宽松点允许静态连接,发展的很久了,影响力比较大,但是整个库的结构和mfc很像,有基于这个的可视化ide(code::blocks),但是这个可视化说实话用起来还真有点不方便,也许我的要求高吧。

上面说的vcf,刚接触,搜索一下vcf实现了本库的rtti和property,当然这个property不像cb的写法,是标准的c++语法只是cb的property的模仿,这两个对于ide的事件通知、响应、以及实现cb的__published是有帮助的,如果我们需要写一些组件的__published属性通知ide就方便点,不过不像cb的写法罢了。

gtk+ ? 这个没接触过。

五、ide
ide的思路可以参考一些开源的ide,codeblocks,CodeLite,qtcreator,qtdesigner(界面设计),和c++builder本身。
原先我的想法是搞个codeblock的插件,但是这个虽然实现上简单点,但是这个没有cb的精髓,ide和本身的组件库联系起来并不方便,特别是对于一些自己写的组件。
ide还是应该重新设计开发一个,思路和结构上参考以上的ide,虽然前期搞个原型很困难,但是后期组成个整体的开发环境代价会小一些,先苦后甜吧。

六、简要思路
c++编译器:gnu的c++编译器,拿来主义。
跨平台的库:vcf这个和cb的vcl风格很像,但是如果我们要搞个山寨版的c++builder的需要重写大量代码,主要是和ide事件有关的。
ide:参考其它,重新设计。

欢迎大家讨论,感谢为开源界作出贡献并默默工作的人们!!!!!!!!!!!!
...全文
4706 163 打赏 收藏 转发到动态 举报
写回复
用AI写文章
163 条回复
切换为时间正序
请发表友善的回复…
发表回复
niezhongstyle 2011-03-28
  • 打赏
  • 举报
回复
顶一下
学习 哈
h_jian2009 2011-03-24
  • 打赏
  • 举报
回复
great 找时间玩下
CenDor 2011-03-24
  • 打赏
  • 举报
回复
虽然我用VC 但是还是顶
guanguan456 2011-03-23
  • 打赏
  • 举报
回复
就该是这个样子的哦
biganchor 2011-03-23
  • 打赏
  • 举报
回复
有点兴趣
lethwei 2011-03-23
  • 打赏
  • 举报
回复
另外, 代码库建议放到 github, 感觉比 sf 好用些
lih618 2011-03-23
  • 打赏
  • 举报
回复
个人觉得很难啊,软件和硬件发展的速度都挺快的,如果没有一个足够规模的社区或者团队来支撑的话,开发的速度肯定跟不上变化的速度
lethwei 2011-03-23
  • 打赏
  • 举报
回复
想法很好, 但难度太大了, 编译器, 跨平台库, IDE, 都不是省油的灯
真要搞的话, 需要很多牛人一起努力才行

btw. 刚查了下, Qtcreator 的代码是 LGPL 协议, 而且 Qt 本身协议已经很宽松了, 何不考虑一下
caocheng8230 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 142 楼 dong4464he 的回复:]
C++发展这么多年了,一个好用的IDE环境还真难找啊!
在国内,还有很多人在用VC6啊,真杯具啊!
[/Quote]
真希望有一个方便如VC6,强大如g++的C++编译器呀。
测量猿 2011-03-23
  • 打赏
  • 举报
回复
最近vcl没落了啊
shuoshuo_mt 2011-03-23
  • 打赏
  • 举报
回复
深奥...
wxshu 2011-03-23
  • 打赏
  • 举报
回复
额 没看太明白, 哦也
iq34126824 2011-03-23
  • 打赏
  • 举报
回复
不懂,,哎,,,拿分,,有木有?
hemiya 2011-03-23
  • 打赏
  • 举报
回复
论坛地址:https://sourceforge.net/userapps/phpbb/hemiya/

有兴趣的朋友欢迎参加讨论和开发。
jaffy 2011-03-22
  • 打赏
  • 举报
回复
C++builder 上了头条了,不错,顶顶。很想参加,就是不知道自己能不能坚持啊?
WAolen 2011-03-22
  • 打赏
  • 举报
回复
这个。。。有点难懂
xqqkl 2011-03-22
  • 打赏
  • 举报
回复
有想法!赞一个

不过,个人觉得好的开源IDE那么多,如果有闲心和时间可以考虑参与其它开源项目的开发。

如果实在是想自己弄开源项目可以将C语言的标准给向前推进一点创造另外一门语言,千万不能像C++,一定要完全兼容C语言,不仅从语法上编译的二进制结果上也要兼容,目标仍然是底层开发,C++的多态啊、运行时类型识别、多重继承啊、复杂的泛型都没有必要。

为C语言增加类,增加单一继承,增加访问控制,增加命名空间,增加默认参数,增加方法重载等,只要是增加后不会导致二进制结果和C语言不兼容就行了。如果需要二进制结果需要在其它的地方直接使用导出C语言API就行了。

模板类、模板函数可以有,但是只能从源代码上加以重用。

运行时类型识别和多态可以通过设计模式来实现绝对不能从语言上进行支持,此时这些东西可以作为另外一个单独的源码库加以重用,如果需要运行时类型识别或者多态引入相应的头文件在编码时加以利用就好了。

这中语言的目标千万不能是进行快速的应用开发而是底层开发,否则就会和C++没有区别了,臃肿不堪。
andylianggq 2011-03-22
  • 打赏
  • 举报
回复
我还是精神支持一下吧
dong4464he 2011-03-22
  • 打赏
  • 举报
回复
C++发展这么多年了,一个好用的IDE环境还真难找啊!
在国内,还有很多人在用VC6啊,真杯具啊!
yeyaxx 2011-03-22
  • 打赏
  • 举报
回复
好啊!项目什么时候开始呢
加载更多回复(91)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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