By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,549 Members | 1,717 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,549 IT Pros & Developers. It's quick & easy.

To Borland Builder or to Visual Studio

P: n/a
Hi. I want to get a C++ IDE, but I dont know whether to go for Bill Gate's
solution or Borland's. Could any kind folks detail the relative strength
and weaknesses of both, and also tell me which you yourselves prefer.
Thanks in advance.

Ziggi
Jul 22 '05 #1
Share this Question
Share on Google+
17 Replies


P: n/a
Ziggi wrote:
Hi. I want to get a C++ IDE, but I dont know whether to go for Bill Gate's
solution or Borland's. Could any kind folks detail the relative strength
and weaknesses of both, and also tell me which you yourselves prefer.
Thanks in advance.

Ziggi


There's always a third alternative.
I personally perfer Borland because I have an affinity against MS.

Do a search of this newsgroup for "IDE" and you will find the others.
Why limit yourself to two choices?
Also, the ultimate preference is yours. I make like one because it
is purple, which may not have any bearing for your decision.
--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book

Jul 22 '05 #2

P: n/a
Ziggi wrote:
Hi. I want to get a C++ IDE, but I dont know whether to go for Bill
Gate's
solution or Borland's. Could any kind folks detail the relative strength
and weaknesses of both, and also tell me which you yourselves prefer.
Thanks in advance.

Ziggi


What I particularly like about C++ Builder is that you program in terms of
GUI objects. The Visual Component Library (VCL) provides a very good
abstraction of a GUI.

Unfortunately, now is not a good time to start using C++ Builder as its
future as a product is currently unclear (and has been for some time).

If you want to know more have a look in
borland.public.cppbuilder.non-technical

I suppose a Windows alternative to Borland and MS might be Dev-C++ and GTK
or Qt.

If you want to work in Linux, then KDevelop is an excellent (and free)
development environment for GUI applications.

--
Chris Gordon-Smith
London
Homepage: http://graffiti.virgin.net/c.gordon-smith/
Email Address: Please see my Home Page
Jul 22 '05 #3

P: n/a
Ziggi wrote:
Hi. I want to get a C++ IDE, but I dont know whether to go for Bill Gate's
solution or Borland's. Could any kind folks detail the relative strength
and weaknesses of both, and also tell me which you yourselves prefer.
Thanks in advance.

..NET framework is the most viable technology and currently only VC++
..NET supports it. Also VC++ .NET 2003 has become a good one since it is
very high standard compliant and has a RAD (the same RAD with VB, C# etc.)!

(2 years ago I would have suggested BC++ but things are quite different
now).


Regards,

Ioannis Vranos
Jul 22 '05 #4

P: n/a
Ioannis Vranos wrote:
Minor addition:

Ziggi wrote:
Hi. I want to get a C++ IDE, but I dont know whether to go for Bill
Gate's
solution or Borland's. Could any kind folks detail the relative strength
and weaknesses of both, and also tell me which you yourselves prefer.
Thanks in advance.
..NET framework is the most viable technology


in MS Windows

and currently only VC++
..NET supports it. Also VC++ .NET 2003 has become a good one since it is
very high standard compliant and has a RAD (the same RAD with VB, C# etc.)!

(2 years ago I would have suggested BC++ but things are quite different
now).



Regards,

Ioannis Vranos
Jul 22 '05 #5

P: n/a
CFG
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.

In all other cases MSVC is definitely better.

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.

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).

BCB's C++ compiler's error messages are much less informative and intuitive
than MSVC++. Quite often they are plain impenetrable.

BCB C++ compiler generates slowest machine code among all popular C++
compilers.

BCB doesn't like read only files - so if you use source control system - you
will be forced to do unnecessary check-outs.

BCB uses different file format for static libs.

BCB's help system is less convenient
Jul 22 '05 #6

P: n/a
CFG
Just FYI: Some people pronounce Borland as Bugland

Jul 22 '05 #7

P: n/a
I am 5 year BCB user and 1/2 year VC++:
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 certain software integration houses this is the point. VCL is much more
rapid than MFC. However the score changes with .NET and VC++ 2003
BCB IDE crashes far more often than MSVC.
Cannot confirm, but we have had problem with debugger many times. Builder 5
loads the project, but does not place "blue dots". Sometimes we get around
and sometimes we would use debug messages out of desperation. Builder 6 is
better on this.
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).
There is a make functionality, but I remember couple cases, when make did
not work and I had to build. So I got into the habit to always rebuild.
BCB C++ compiler generates slowest machine code among all popular C++
compilers.
I did couple benchmarks with BCC/GCC/VC/LCC on std::map, floating points and
dynamic vs static arrays. BCC 5's std::map is way-way faster than all of the
others, but VC++ optimized compiler with /Ox is far better on floating
point.
BCB uses different file format for static libs.


Use COFF2OMF.EXE to convert GCC or VC++ libs.
Jul 22 '05 #8

P: n/a
Roman Ziak wrote:
I did couple benchmarks with BCC/GCC/VC/LCC on std::map, floating points and
dynamic vs static arrays. BCC 5's std::map is way-way faster than all of the
others, but VC++ optimized compiler with /Ox is far better on floating
point.

By the way in VC++ /Ox is better or /O2? I have seen in documentation
that /O2 should be preferred instead of /Ox.


Regards,

Ioannis Vranos
Jul 22 '05 #9

P: n/a
"Ioannis Vranos" <iv*@guesswh.at.grad.com> wrote in message
news:cb***********@ulysses.noc.ntua.gr...
Roman Ziak wrote:
I did couple benchmarks with BCC/GCC/VC/LCC on std::map, floating points and dynamic vs static arrays. BCC 5's std::map is way-way faster than all of the others, but VC++ optimized compiler with /Ox is far better on floating
point.

By the way in VC++ /Ox is better or /O2? I have seen in documentation
that /O2 should be preferred instead of /Ox.


Don't know why would it be preferred. I just use it because is easy to
remember combination of all optimizations.

Running cl.exe from command line I get that /Ox = /Ogityb2 /Gs, so it
contains also /O2.

This switch really does make difference. Although access to the dynamically
allocated array stays unoptimized and keeps reloading same register again
and again (well ... Borland too)
Jul 22 '05 #10

P: n/a
Roman Ziak wrote:
By the way in VC++ /Ox is better or /O2? I have seen in documentation
that /O2 should be preferred instead of /Ox.

Don't know why would it be preferred. I just use it because is easy to
remember combination of all optimizations.

Running cl.exe from command line I get that /Ox = /Ogityb2 /Gs, so it
contains also /O2.

This switch really does make difference. Although access to the dynamically
allocated array stays unoptimized and keeps reloading same register again
and again (well ... Borland too)

From the help file:

"Ox

/Ox combines optimizing options to produce code that favors execution
speed over smaller code size. /Ox can be combined with /Os (/Oxs) to
favor smaller code size (optimize for size).

In general, /O2 should be preferred over /Ox and /O1 over /Oxs."


Regards,

Ioannis Vranos
Jul 22 '05 #11

P: n/a
"Ioannis Vranos" <iv*@guesswh.at.grad.com> wrote in message
news:cb***********@ulysses.noc.ntua.gr...
Don't know why would it be preferred. I just use it because is easy to
remember combination of all optimizations.

Running cl.exe from command line I get that /Ox = /Ogityb2 /Gs, so it
contains also /O2.

This switch really does make difference. Although access to the dynamically allocated array stays unoptimized and keeps reloading same register again and again (well ... Borland too)

From the help file:

"Ox

/Ox combines optimizing options to produce code that favors execution
speed over smaller code size. /Ox can be combined with /Os (/Oxs) to
favor smaller code size (optimize for size).

In general, /O2 should be preferred over /Ox and /O1 over /Oxs."


Ioannis, I did not mean to argue, just wanted to say that I did not know
that :)

Anyway, looking at those switches little more, I wonder if /Ogityb2 contains
/O2 or /Ob2. Maybe it would be worth to run some benchmarks with both
switches.

Roman
Jul 22 '05 #12

P: n/a
CFG
BCB IDE crashes far more often than MSVC.
Cannot confirm, but we have had problem with debugger many times. Builder

5 loads the project, but does not place "blue dots". Sometimes we get around
and sometimes we would use debug messages out of desperation. Builder 6 is
better on this.
I use BCB6 with latest service pack and it crashes quite regularly
at least for the project of our complexity :^)

Another problem I noticed is that sometimes BCB linker
just stops to work - it always pops up some error message
- this can be healed only be restarting the whole Borland IDE.
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).


There is a make functionality, but I remember couple cases, when make did
not work and I had to build. So I got into the habit to always rebuild.


So BCB promotes bad habits in the developers.
BCB C++ compiler generates slowest machine code among all popular C++
compilers.

I did couple benchmarks with BCC/GCC/VC/LCC on std::map, floating points

and dynamic vs static arrays. BCC 5's std::map is way-way faster than all of the others, but VC++ optimized compiler with /Ox is far better on floating
point.


Hard to believe.

Your test either incorrect or has something to do with the STL library used.
Try STLPort with MSVC and you will see the difference.
It is not the question of compiler's quality.

BTW, you forgot to mention Intel C++ compiler, which is currently wins
almost all tests on the speed of generated machine code, and can be
transparently used with MSVC IDE. It has lots of advanced features such as
automatic vectorization.

My version of BCB doesn't support SSE/SSE2 instructions in inline assembly
(that's where the speed comes in, isn't it?)
BCB uses different file format for static libs.

Use COFF2OMF.EXE to convert GCC or VC++ libs.


Have you ever tried this automatic conversion?
this utility does not work properly for most real life libs

Also I must add that BCB is shipped with a lousy memory manager
which just doesn't scale well and which causes a serious memory
fragmentation and multithreading performance issues.
The BCB users have to consider buying 3rd party memory manager.

Jul 22 '05 #13

P: n/a
CFG
BCB C++ compiler generates slowest machine code among all popular C++
compilers.


http://www.realworldtech.com/page.cf...WT071302231228

Metrowerks CodeWarrior is even slower in this test,
but it can hardly be called "popular" in Windows world.
And the champion (Intel C++) didn't participate.

Jul 22 '05 #14

P: n/a
CFG wrote:
BCB uses different file format for static libs.


Use COFF2OMF.EXE to convert GCC or VC++ libs.

Have you ever tried this automatic conversion?
this utility does not work properly for most real life libs

This utility does not work with static libs:

COFF2OMF will convert a COFF _import_ library file (InputFile)
to the corresponding OMF type _import_ library file (OutputFile).
Jul 22 '05 #15

P: n/a
CFG wrote:
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.

--
Peter van Merkerk
peter.van.merkerk(at)dse.nl

Jul 22 '05 #16

P: n/a
"Ziggi" <on*******@hotmail.com> wrote in message
news:cb**********@jura.cc.ic.ac.uk...
Hi. I want to get a C++ IDE, but I dont know whether to go for Bill Gate's solution or Borland's. Could any kind folks detail the relative strength
and weaknesses of both, and also tell me which you yourselves prefer.
Thanks in advance.

Ziggi


BCC's VCL has very fast learning curve and development is very rapid.

BCC is very tolerant comparing to MSVC, the code with no warnings from BCC
may compile with a lots of warnings by MSC

BCC's settings are very simplistic, MSC offers more flexibility

Optimized MSC (i.e. /Ox or /O2) produces faster code than Release version
from BCC

MSC compiles faster than BCC

MSC compiles inline assembly, BCC requires TASM for that (i.e. extends
compilation time).

MSC accepts platform SDK as downloaded, but Borland ships with header files
modified for Borland compiler

BCC has quite cumbersome ActiveX, for more complicated interfaces sometimes
compiler does not even compile its own imported header file

Talking about developing commercial apps: Borland's price is unfriendly.
Standard version of Visual C++ was comparable with BCB 5 Standard (around
$100), but BCB5 is not available anymore; and BCB6 does not have Standard
version.

Borlands free command line compiler also does not allow commercial apps. On
the other side, one who needs MSC compiler (even for commercial apps) can
get it from various sources:

Windows DDK ($20 for shipping) w/ optimizing compiler

Visual Toolkit 2003 (free download)

Yes, and did I mention that IDE is way better, I personally like functions
like outlining, tabify and untabify and reformatting (CTRL-K F I think).
Jul 22 '05 #17

P: n/a
CFG
> ... compared to the still popular MSVC6 the language
compliance of the Borland compiler is better


It's true, Borland compiler has better standard compilance in a sense that
BCB can "understand" and compile standard compliant C++ code.

On the other hand, in Borland's flavor of C++, there is a slew of
non-standard language extensions and special keywords which no other C++
compiler supports. Borland IDE has a tendency to insert these non-standard
things here and there. It may tempt newbie C++ developer and divert him/her
from the Standard C++.

Jul 22 '05 #18

This discussion thread is closed

Replies have been disabled for this discussion.