Author Topic: Improvement - Comparison with Borland C++ Builder 6 (BCB6)  (Read 20434 times)

Offline Curieux

  • Single posting newcomer
  • *
  • Posts: 6
    • Soft.Translator.free.fr
Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« on: October 20, 2008, 05:33:58 pm »
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 CB
Included 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.
Constructive replies, or nothing.

Offline aurisc4

  • Multiple posting newcomer
  • *
  • Posts: 14
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #1 on: October 20, 2008, 10:50:14 pm »
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.

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #2 on: October 21, 2008, 05:31:00 am »
I agree with wxWidgets integration (should be optional), since you have wxSmith. But I really doubt about more libraries.

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
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline Ganbito

  • Multiple posting newcomer
  • *
  • Posts: 79
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #3 on: October 21, 2008, 02:15:09 pm »
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.

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2750
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #4 on: October 21, 2008, 02:27:39 pm »
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.

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

Offline Curieux

  • Single posting newcomer
  • *
  • Posts: 6
    • Soft.Translator.free.fr
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #5 on: October 21, 2008, 06:33:30 pm »
Thank you for your replies.  :)

Pecan:
Quote
Choose alternative keyboard shortcuts sets...
Already exists.
Settings/Editor/KeyBoard Shortcuts/KeyProfile/Add new

Thanks for that.
Now it would be interesting to have default key profiles, from other IDEs.
Maybe I will do one from BCB6 and send it to the authors.

stahta01:
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.

I agree. I first tried to install a DevPak but could not compile. So I had to download WxWidgets, find a tutorial to compile under CB, and tried 3 settings before finding the right one. Not very "user-friendly".

Ganbito:
Quote
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.
A possibility is to integrate by default the last version of WxWidgets and let the option of choosing another (personal) build. Isn't it ?

Quote
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.
Yes, there is a preview button. But my problem is to build a big window, so to work (edit) its (big) components, which is obviously impossible with the preview.
I wonder about building big windows. Is it really feasible ?  :?

Quote
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.
I understand there are "tricks", but I believe it is very important to have an integrated environment.
I don't know for most people, but personally I tried CB in order to use WxWidgets, not to replace existing IDEs under Win32. WxWidgets and CB seem to be linked, as a logical solution to many problems of programming (portable framework, compilation, independence,..). So CB team should do a big effort for this integrated help.

aurisc4:
Quote
I personally don't think, that BCB is something to look at...
Each point of view is interesting, but I insist: this thread is not really about BCB6, in the way of a competition (or worst, a fight).
I mentioned BCB6 as a comparison, in the sense of a simple example of some practices.

Yes, BCB6 is rather slow at compiling and at showing code completion, but its defaults are not the object of this thread. I did not mention this kind of defaults about CB not either, because it will be debugged and improved.
My goal is to definite what is missing, inconvenient, or even wrong in the design of CB.

Quote
VCL is horrible.
I won't troll about that and the rest, in my point of view there are defaults, bugs, and bad design in all frameworks. I read the documentation of WxWidgets, and I noticed it has a very old design, not really using C++ technicals. Win32 is old and complex too, dot.net seems to be a bit more modern, but I guess it joined the design of VCL (same designer, as I read), GTK and QT are not native (draw components, not using the O.S. ones), etc..


I listed a few aspects of BCB6 I don't find in CB, and I think some of them could in fact improve CB.
But in fact, I would like CB to be more integrated and homogeneous.
This thread is here to collect ideas about what should be changed in CB, from details to the general design.
There are many points of view, but the overall design should be something homogeneous.
Constructive replies, or nothing.

Offline Alexis

  • Multiple posting newcomer
  • *
  • Posts: 62
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #6 on: October 22, 2008, 03:56:40 pm »
Quote
A possibility is to integrate by default the last version of WxWidgets and let the option of choosing another (personal) build. Isn't it ?
This is a quite old issue. Read this thread: http://forums.codeblocks.org/index.php/topic,8752.0.html
Under Windows, I personally think C::B should be packaged in two ways: "single" package (only C::B) and "out-of-the-box-GUI-dev" package (C::B + minGW + wxWidgets lib release and debug). It could help a lot beginners. But I can understand C::B team has something else to do...


Quote
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.
True! When I select a class name and press F1, wxWidgets help runs, but I very often have to perform a search to get into class description. It's a pain in the neck!


Quote
While debugging, passing above a variable displays its value.
Debugger limitations are THE thing that prevents me from dropping VC++. wxSmith limitations don't bother be. A better integration between gdb and C::B (like the one in Eclipse/CDT for example) is probably difficult and long to achieve. Let's be patient.

Offline Curieux

  • Single posting newcomer
  • *
  • Posts: 6
    • Soft.Translator.free.fr
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #7 on: October 22, 2008, 07:37:57 pm »
Hi Alexis!
Quote
Under Windows, I personally think C::B should be packaged in two ways: "single" package (only C::B) and "out-of-the-box-GUI-dev" package (C::B + minGW + wxWidgets lib release and debug).
I agree with the idea of linking MinGW and WxWidgets.

Another possibility is to develop a true package tool in CB.
As in ReactOS or Ubuntu, after installation the tool could list additionnal software. One click = A quick installation (and configuration).
And something similar to firefox plugins manager: the ability to update packages with ease.

That would solve problem of the official releases of CB, which are very rare.   :lol:

Quote
When I select a class name and press F1, wxWidgets help runs, but I very often have to perform a search to get into class description.
Personaly, though I installed CB with all plugins, more WxWidgets, Nothing happen when I press F1!  :(

Quote
Let's be patient.
Yes, but my question is: what is really important to users ?
I read the thread you mention (http://forums.codeblocks.org/index.php/topic,8752.0.html). I guess many users share the same need for some essential things. Maybe a forum is not sufficient to synthesize a global opinion.

I mean users opinion should lead CB development. I believe things could be different than just waiting new features with hope.
Constructive replies, or nothing.

Offline Alexis

  • Multiple posting newcomer
  • *
  • Posts: 62
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #8 on: October 23, 2008, 01:10:27 pm »
Hello dear fellow frenchman !

Quote
Another possibility is to develop a true package tool in CB.
As in ReactOS or Ubuntu, after installation the tool could list additionnal software. One click = A quick installation (and configuration).
And something similar to firefox plugins manager: the ability to update packages with ease.
Yes, this would be very nice. But a all-in-one setup has an advantage: it could allow to set all the relevant paths (toolchain, help... see below) and also to make sure all components work well together (toolchain, C::B, wxWidgets) ; there are sometime various compatibility issues.
A guy made it, but a not very elegant way : http://www.uiversalbuilder.com/. No respect of licencing  conditions, no respect of other people's work.


Quote
That would solve problem of the official releases of CB, which are very rare.
Another old complaint. For example, read http://forums.codeblocks.org/index.php/topic,7772.0.html
But C::B guys obviously are the masters and manage the project as they please !

Quote
Personaly, though I installed CB with all plugins, more WxWidgets, Nothing happen when I press F1!
Go in menu Settings>Environment, browse icons and select the "Help files" icon, then press the "Add" button to add the path to your wxWidgets help file. A "F1" press will yield wxWidgets help opening.


Quote
I mean users opinion should lead CB development.
I'm not sure CB team completely agrees with this statement (see above) :).
And I'm not sure, that practically it always happens like this in FOSS projects in general
No troll inside  :)

Quote
I believe things could be different than just waiting new features with hope.
We are in open-source world : if you think something should be done, then develop it yourself !
I have no time to do it myself (time is THE problem !)

Offline JGM

  • Lives here!
  • ****
  • Posts: 518
  • Got to practice :)
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #9 on: October 25, 2008, 12:55:02 pm »
I have no time to do it myself (time is THE problem !)

LOL, thats true, I started developing a plugin named codepacks to solve library problems since it was going to work like synaptic downloading libraries from repositories and giving you the option of configuring your current project with a given configuration from the library, but then i stopped programming it because of lack of time. First started working on the downloader and analysis and banggg!!!!!!! no more, but I still want to do it, just not in the time i would like it to be.

But it seems it could solve some of the problems here like the wxwidgets one!

Offline Alexis

  • Multiple posting newcomer
  • *
  • Posts: 62
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #10 on: October 27, 2008, 04:03:14 pm »
Quote
LOL, thats true, I started developing a plugin named codepacks to solve library problems since it was going to work like synaptic downloading libraries from repositories and giving you the option of configuring your current project with a given configuration from the library, but then i stopped programming it because of lack of time. First started working on the downloader and analysis and banggg!!!!!!! no more, but I still want to do it, just not in the time i would like it to be.

But it seems it could solve some of the problems here like the wxwidgets one!
I hope you'll find some time to complete this plugin soon!
Good luck!

Concerning wxWidgets help, there might be something interesting in wx wiki:
http://wiki.wxwidgets.org/MSDN_Library_And_WxWidgets_Help_File

Offline Curieux

  • Single posting newcomer
  • *
  • Posts: 6
    • Soft.Translator.free.fr
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #11 on: October 29, 2008, 03:40:34 pm »
Hi!

Alexis:
Quote
C::B guys obviously are the masters and manage the project as they please !
Of course.  :)
On the other side, C::B has a particular aspect: it is a basic brick of software development (as frameworks are). So its development has an influence over many software. That is the reason why I consider its design should be more 'shared'.

I thank guys who created C::B and its plugins, but at some point this software become more than just one project like many, it is now (potentially) a crucial tool for our profession (developers), and our profession is for certain the basis of all software aspects of computers.
In other words, this kind of tool is strategic and has an impact on all computer world.

So , at a minimum, voice of users should be quite important in the design decisions of this kind of tool.
It would deserves a public survey, something more organized and large than just a forum.
I believe we need not only developers for that project, but coordinators, and an effort to build a different web site, allowing more communication and more 'democratic' decisions.

There is room for individual enterprise and group decisions (or coordinated work).

Quote
a all-in-one setup has an advantage: it could allow to set all the relevant paths (toolchain, help... see below) and also to make sure all components work well together (toolchain, C::B, wxWidgets)
Yes, that's true.
Maybe there is a way to integrate the two possibilities through one technical solution (in order to avoid doing the job twice).
For example, a little update and plugin manager could be used at the end of (or during) installation, and at will later.

Quote
Go in menu Settings>Environment, browse icons and select the "Help files" icon
Thank you!  :)

Quote
I'm not sure CB team completely agrees with this statement (see above). I'm not sure, that practically it always happens like this in FOSS projects in general
No troll inside
That world is not perfect. But we can help it.  ;)

I remark that two major free open-source soft, FireFox and OpenOffice, become more important each day, and have a very unusual development structure (based on old commercial software, lead by companies organising volunteers). See also Mono.
As anybody, I watch these two aspects (lead by companies, and attractive projects), with many thoughts.

Are the independent projects able to be organized as well as these projects ? That is a major question, especially for essential tools (essential to our professional future).

Quote
if you think something should be done, then develop it yourself !
I have no time to do it myself (time is THE problem !)
Precisely!  :)
Another aspect, which take much time, is the complexity of projects and their failure of documentation.
Currently, it is difficult to understand large open-source projects, essentially because we, programmers, all know it is easier and much quicker producing code than creating documentation.

My dream is to see, one day, a project with a clear, reliable and updated diagram of its structure. A precise and short explanation on the main technical decisions (programming languages, framework) and relations between modules.

Currently, most project only have an automatic extraction of the header sources, and sometime a short documentation for end users.

If projects would be clearer, well documented, openly discussed by all the communities  of programmers and users, clearly they would be more integrated, efficient and supported.

I am interested in ideas about tools and technicals to help organizing open-source community and projects.  8)

Quote
I started developing a plugin named codepacks to solve library problems since it was going to work like synaptic downloading libraries from repositories
Bravo! :)


Constructive replies, or nothing.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #12 on: October 30, 2008, 09:11:11 am »
Alexis:
Quote
C::B guys obviously are the masters and manage the project as they please !
Of course.  :)
I see: So you want us to do what you suppose to develop, right? Is that how democracy works? Sure not.

If you want to help:
1.) Stop spamming our forum.
2.) Provide patches
3.) Don't steal our time (...e.g. that we need to read all your words).

If you have no time to do anything of the above: What do you think we are? We in the dev team are *all* real life persons. We have family we have work and we (especially these days) work very hard. But we still find the time to continue development of C::B. What about you?
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline Curieux

  • Single posting newcomer
  • *
  • Posts: 6
    • Soft.Translator.free.fr
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #13 on: October 31, 2008, 06:18:42 pm »

I did not expect such an aggressive reply from anybody.

To MortenMacFly:

Quote
I see: So you want us to do what you suppose to develop, right? Is that how democracy works? Sure not.
I could tell you "Democracy is not telling the others to shut up", but I won't troll about your reply (as I did not for another one in the same thread).

The subject of this thread was (and still is), on the contrary, to generate a constructive discussion.
Nobody has to read this thread (and forum) if he is not interested in an adult and respectful discussion. I presume anybody is free to read a forum or not, and free to participate or not.

Quote
Stop spamming our forum.
I presume (but you don't say) you are talking about my web site below. I changed my 'signature' to avoid misunderstandings.

Quote
We in the dev team are *all* real life persons. We have family we have work and we (especially these days) work very hard. But we still find the time to continue development of C::B. What about you?

I thought I was clear in my message: I say a big thank you to all developers, I say many people would want to participate, I exposed some difficulties, and made proposals.
I am sorry if you take that as a personal offense, but it was not, and you are the only one to take it that way.

Personally, I appreciate discussion and exchange, not useless aggressions, violence (and trolling, by the way).

So I persevere in this thread.
I hope the majority of C::B developers are willing to talk (and let talking) that way. Otherwise, it would be very sad for the Internet way-of-life.

I invite all (really) opened-mind people to ignore aggressive messages and go on exchanging ideas.
Constructive replies, or nothing.

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: Improvement - Comparison with Borland C++ Builder 6 (BCB6)
« Reply #14 on: October 31, 2008, 07:48:54 pm »

I did not expect such an aggressive reply from anybody.

To MortenMacFly:


@MortenMacFly
I did not consider your reply aggressive in any way; blunt and to the point is not aggressive.

@Curieux
From your lack of submitting patches can I assume you have no plans to submit patches in the future?

The people who try to improve Code::Blocks by submitting useful patches are treated with more respect on this board.

So far, you have done little to earn respect, but I also did not see you do anything to lose respect. Some other posters lose respect in all their posts.

Tim S
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org