CFG said:
BCB is good for rapid GUI development. So if you need to churn out lots of
windows, dialogs, buttons then this tool is for you. It's especially good
for writing GUIs for databases.
Agreed. And VCL is definitely nicer and more intuitive than MFC.
Unfortunately the future of VCL is very uncertain.
In all other cases MSVC is definitely better.
Probably true.
MSVC is less buggy, more robust, more popular (this means that many open
source projects contains MSVC project files, but only few are aware of BCB).
BCB IDE crashes far more often than MSVC.
Very true. The Borland IDE is horribly unstable, I have never seen any
other piece of software that is so unreliable. It often crashes when you
simply start or close the IDE. Building large projects from the IDE is
practically impossible because it will definitely crash within a one to
five minute time frame. The debugger is like Russian roulette, sometimes
it works, but it is quite likely it will crash when you need it the
most. Also the IDE sometime gets confused whether it is debugging or
not. And then there are many small bugs that can be quite annoying and
never gets fixed (probably because Borland doesn't use C++ Builder
themselves).
However if you don't use the Borland IDE, the compiler and linker are
very stable. And compared to the still popular MSVC6 the language
compliance of the Borland compiler is better,
BCB has handicapped build functionality (if your system consists of several
sub-projects then your work will be really painful with BCB - because it
tends to rebuild everything every time).
Yep, this is especially painful when working on large projects. I guess
the Borland IDE was only designed and tested with small project in mind.
If you are working on a large project with Borland, it is best to use a
build system that works outside the IDE.
BCB's C++ compiler's error messages are much less informative and intuitive
than MSVC++. Quite often they are plain impenetrable.
Like all compilers Borland error messages can be confusing or
misleading. But in my experience it is not that much worse compared to
MSVC. On Borland you can enable "Extended error information" which
provides some more context information which can be helpful.
Sometimes you suddenly get inexplicable build errors with Borland. After
you restart the Borland IDE and build again they are suddenly gone. If
strange things happen (code not behaving as expected, debugger not
working) the standard procedure is to remove all generated files and
rebuild everything again (from the command line) and restart the IDE,
this often fixes the problem.
BCB C++ compiler generates slowest machine code among all popular C++
compilers.
If you stick to just GUI and database stuff (this seems to be the
primary focus of Borland) this is not a real issue.
BCB doesn't like read only files - so if you use source control system - you
will be forced to do unnecessary check-outs.
The Borland IDE does notice when the contents of files are changed, but
doesn't notice when the read-only flag changes. This is very annoying
i.c.w. a version control system, if you check something out you still
have to explicitly tell the IDE that the file is writable now. Also at
times the IDE tries to be smart when you are working with .cpp, .dfm and
..h files, and in doing so it more often than not it gets in the way.
BCB uses different file format for static libs.
BCB's help system is less convenient
True.
I wish I could recommend Borland over Microsoft. And if you only do
small projects which involve only GUI and database stuff Borland is a
better choice. However all those bugs in Borland are real productivity
killers. In most cases I would stay away from Borland (as long as they
don't fix their QA). That doesn't have mean that the OP has to choose
Microsoft, there are many other alternatives that may be viable choices.
However depending on the situation and requirements MSVC may be the best
choice for the OP.