User forums > General (but related to Code::Blocks)

Improvement - Comparison with Borland C++ Builder 6 (BCB6)

(1/4) > >>

Curieux:
Hi!

This comparison is aimed at improving Code::Blocks (build 5274 tested, under Windows Vista, using MingW and WxWidgets).
This is my impression after a few days of experimentation.
Of course, I guess many people will answer a solution for each point, in a form of a trick, a hack, or a plugin.
But my idea is to obtain CB (Code::Blocks) as a true and integrated IDE for RAD.

FeatureBCB 6CB 5274ImportanceRemark for CBIncluded framework libsyesNO**WxWidgets should be included and compiled (As Mingw is).Separated window for edited Dialog.yesNO***Most programs need big windows as their main dialog.
CB editor does not allow a plain view of the edited window, only included in the small part of the tabbed edition window.
That is not enough.Integrated framework helpyesNO****In BCB, when you select a component property, a component declaration or implementation, or select a resource, and press F1 (help), the help is opened directly on the component (or function, or property)'s description.
That is essential, and makes work very efficient and quick.
CB should provide that kind of help as a priority, and integrate closely the WxWidgets help.
On addition, CB could provide a limited help using the function (or component, or property) declaration (through F1).Choose alternative keyboard shortcuts sets. For example Visual Studio shortcuts,  Borland shortcuts, etc..yesNO*I know the possibility to modify the shortcuts one-by-one, but it would be easier to select a complete set.While debugging, passing above a variable displays its value.yespartly****CB does it, but only partly:
Many local variable or function parameters are not displayed.
The informations are often incomplete, forcing the use of the Watch window, which does not display global variables (why???)
For example, the very used WxString is frequently not displayed as a string, but as a byte table.
It is not constant. The mouse-over often displays different information from the Watch window.

In Watch, classes are not always displayed as it. For example, a button if displayed in one line:
“Button1 = (struct wxButton*) 0x12345678.
And I try to dereference it, I obtain:
“*Button1  = <incomplete type>.

I suggest a tough work at checking and improving this feature, as an essential feature.

By the way, BCB proposes two windows: Watch and Evaluate.

Evaluate displays a variable (or class) with details and forget everything when closed (unlike Watch). It is very useful to see more information than the mouse-over, and also to modify a value. Under BCB, I use it very much more often than the Watch window, as it is limited to one variable at a time (a small, quick and efficient window).Integrated environmentyespartly***Basically, you install BCB and obtain a complete environment. Nothing to add or configure, everything is made to work together and is integrated.

CB is partly integrated, but:
WxWidgets is not included.
Plugins are available, but it is difficult at first to know what which of them will do, and if there are bad interactions between them.

I suggest to integrate as many things as possible in CB by default, including the plugins (AFAIR, they are not checked at install by default). And improve CB as a complete set, well integrated.

For example, the Help plugin is not well integrated. I'm sorry to say that it appears clearly to be an added tool, not an integrated component of the IDE.
I don't want to say BCB is perfect. There are things CB does better.
But BCB is a very efficient tool, and I hope one day CB will be too.

In my opinion, the development of CB should be aimed at making its utilization very easy and efficient, not doing it more and more complex.
I'd rather a simple and ergonomic tool, than a complete, very complex, hard to use and buggy tool.
That's the way FireFox is made, and it is quite successful.

CB is good, but it can be improved. There is no perfection in that world.   ;)

I hope constructive remarks and replies. :)


P.S.
I know BCB 6 is an old version (of 2002), but the recent versions of CodeGear's RADs are not very convincing to me, as they are slow and not well integrated.
Ergonomy needs integration, and ergonomy produces efficiency.

aurisc4:
Some ideas are nice, but I personally don't think, that BCB is something to look at...
Since I work in my daily job with BCB 6, I can give several reasons not to use it:
1) It is slow. It depends on project size, but some things are just not understandable, as number of files in a project, number of open files in the IDE has great affect on compilation speed. When you have 100+ files in a project, compilation is few times slower with 20 open files, compared with compilation of same project with only 5 files open. Compilation from command line is up to 5 times faster, than from IDE. The compile dialog shows rows compiled wich indicates god knows what... and, if turn that thing off, it will make compilation about 2 times faster :)
2) It is very buggy. Just bugs here, there and everywhere...
3) BCB's windows, flying all over the place is not usefull decision.
4) VCL is horrible. From desing to implementation many things are just not right. Only a good GUI designing tool makes it usable, but it still is a PITA.
5) BCB code-completion is so slow, that the only thing you can do with it is to turn it off. Even a poor C::B code-completion is more usefull.

I agree with wxWidgets integration (should be optional), since you have wxSmith. But I really doubt about more libraries.
My experience with BCB shows, that many components included in it does not make it much better, since most of included things are simply piece of garbage.

Maybe C::B has still far to go, to reach BCB's level, I see big potential here.

stahta01:

--- Quote from: aurisc4 on October 20, 2008, 10:50:14 pm ---I agree with wxWidgets integration (should be optional), since you have wxSmith. But I really doubt about more libraries.

--- End quote ---

The problem has always been which wxWidget Library to integrate and is it worth the band width.
I say what we need is an replacement of DevPak that works better with Code::Blocks. And use it to download the desired type of wxWidgets.

Tim S

Ganbito:
The thing I really miss from BCB in CB is the two set of tabs, with the modules open in one of them and in the other the diferent files or parts of the actual module (header, source and window layout, wxSmith for CB). This is requested in some threads throw this forum and I hope that one day the developers apply it.

The first time I try CB I miss integrated framework libs (I was on windows an I come from Visual Studio, BCB, wxDevC++) but the I change to linux and I see that in linux there is no need to do these. In fact, right now, I prefer CB way because it provide me flexibility to use wxWidgets build that I want, that is, version and static/dynamic libraries, wich can be difficult with integrated framework libs.

At first, I also miss the complete window in wxSmith (with menus and the border) but I see it is something usual in wxWidgets dialog editors. At least, in wxSmith you have a button that allow you to see the entire window without building the project. I think that menu and status bar can be added to normal editing window, someday. I really miss more integrated controls, but they are being integrated, its a matter of time.

I really miss integrated help before I found throw this forum a way to integrate linux wxWidgets help with yelp in CB with a simple bash script. Now I have that script a little bit modified to obtain wxWidgets help of the svn version from the web. Despite that, I really want to see integrated help in CB, it will be a very good improvement, maybe someday.

Pecan:

--- Quote ---Choose alternative keyboard shortcuts sets. For example Visual Studio shortcuts,  Borland shortcuts, etc..   yes   NO   *   I know the possibility to modify the shortcuts one-by-one, but it would be easier to select a complete set.
--- End quote ---

Already exists.
Settings/Editor/KeyBoard Shortcuts/KeyProfile/Add new

Navigation

[0] Message Index

[#] Next page

Go to full version