To Borland Builder or to Visual Studio

Z

Ziggi

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
 
T

Thomas Matthews

Ziggi said:
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
 
C

Chris Gordon-Smith

Ziggi said:
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.
 
I

Ioannis Vranos

Ziggi said:
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
 
I

Ioannis Vranos

Ioannis Vranos wrote:


Minor addition:

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

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
 
R

Roman Ziak

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

Ioannis Vranos

Roman said:
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
 
R

Roman Ziak

Ioannis Vranos said:
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)
 
I

Ioannis Vranos

Roman said:
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
 
R

Roman Ziak

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
 
C

CFG

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

Moskvichev Nikolay

CFG said:
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).
 
P

Peter van Merkerk

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

Roman Ziak

Ziggi said:
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).
 
C

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top