C++ development environment suggestions

J

John A. Byerly

Sorry for the MS Windows-specific question, but I wasn't sure there was a
better newgroup in which to ask this.

Can anyone suggest a better environment for C++ development than MS VC++?
We have been doing our development in VC++ 6.0 and have gotten to the point
where we have to upgrade. I am really sick of the garbage Microsoft calls
an IDE, and was wondering (hoping) there were better alternatives. I know
there are a lot of Borland users. Is Borland considered to be the best
competition to Microsoft VC++?

By the way, I suppose this might sound like a troll, but it really isn't. I
just don't know what is available.

JAB
 
S

Sylvester Hesp

John A. Byerly said:
Sorry for the MS Windows-specific question, but I wasn't sure there was a
better newgroup in which to ask this.

Can anyone suggest a better environment for C++ development than MS VC++?
We have been doing our development in VC++ 6.0 and have gotten to the
point
where we have to upgrade. I am really sick of the garbage Microsoft calls
an IDE, and was wondering (hoping) there were better alternatives. I know
there are a lot of Borland users. Is Borland considered to be the best
competition to Microsoft VC++?

By the way, I suppose this might sound like a troll, but it really isn't.
I
just don't know what is available.

JAB

So, what you're saying is that the IDEs of MS suck, and that statement is
based on a piece of software that is 9 (!!!) years old? You're right - you
_do_ sound like a troll, and yes this is not the correct newsgroup. But for
what it's worth: download MS VC++ 2005 Express for FREE and perhaps maybe
you'd like to recall your statement (or not, it's your opinion, but just
don't base it on something that is very very old).

- Sylvester
 
J

John A. Byerly

Sylvester Hesp said:
So, what you're saying is that the IDEs of MS suck, and that statement is
based on a piece of software that is 9 (!!!) years old? You're right - you
_do_ sound like a troll, and yes this is not the correct newsgroup. But for
what it's worth: download MS VC++ 2005 Express for FREE and perhaps maybe
you'd like to recall your statement (or not, it's your opinion, but just
don't base it on something that is very very old).

Thanks for your reply.

I am not basing my opinion solely on VC++ 6.0. I only said that is what we
are currently using. I have also tried out VC++ 7 (2003), and found the IDE
to be worse. And I am also basing my opinion on the input of others who
claim that 2005 is even worse than that. I am also not saying that all IDEs
of Microsoft's are bad. I think that in many ways, the VB IDE is superior
to VC++, and I have not used VJ++ or the C# stuff.

My intention was not to post an MS stinks message. But I don't think that
Microsoft is concerned with C++ developers, and I think it shows in their
VC++ IDE. I have used IntelliJ for Java development and was blown away by
it. It made it awfully hard to go back to VC++ (6.0 or 7).

A friend of mine is an Eclipse user, but he has never used it for C++
development. I am in the process of downloading it and trying it.

By the way, thanks for the VC++ 2005 Express suggestion. I forgot it was
free. I will download it and try it.

Incidentally, there is no comp.ide.c++ newsgroup, so where do you suggest I
post?

Thanks!

JAB
 
D

Dennis Jones

John A. Byerly said:
Sorry for the MS Windows-specific question, but I wasn't sure there was a
better newgroup in which to ask this.

Can anyone suggest a better environment for C++ development than MS VC++?
We have been doing our development in VC++ 6.0 and have gotten to the
point
where we have to upgrade. I am really sick of the garbage Microsoft calls
an IDE, and was wondering (hoping) there were better alternatives. I know
there are a lot of Borland users. Is Borland considered to be the best
competition to Microsoft VC++?

I think Borland probably is the *only* competition anymore. All other
viable IDE vendors from the past have pretty much given up competing with
Borland and Microsoft (Watcom and Symantec are the only other major
competitors that even come to mind).

And by the way, Borland recently split off their development tools division
into a new company called, "CodeGear," though CodeGear has yet to release
anything since the spin-off.

As to whether or not the Borland (CodeGear) IDE's are any better than MS
IDE's, well, that's really just a matter of opinion. I find it interesting
that people who have been using MS IDE's for a long time are getting
frustrated with MS, and people who have been using Borland IDE's for a long
time are getting frustrated with Borland. Everyone swears they will switch
to the competition, but rarely does it actually happen because they tend to
stick with what's familiar. Even if their IDE has problems, a developer
often knows better how to work around the problems with their current
environment than they would if they switched.

For a very long time, Borland has been way ahead of MS in the RAD (Rapid
Application Development) arena, particularly with respect to C++ since MS
has no RAD tools for C++ at all. Borland's VCL (based on the Delphi/Pascal
language) is far superior to MS's MFC in many respects. Sure, the IDE has
its problems, but as you know, so does VC++/VS. Borland's most recent
release does a lot to improve the IDE and to bring their compiler into
better compliance with the C++ standard, and though it still falls short,
Borland/CodeGear is promising better compliance and IDE improvements in the
future.

Though I do get frustrated with Borland, I think their IDE is a better
choice than MS, simply because of the RAD aspect. I think if MS were ever
to create a RAD tool for C++ (which they might finally do that with
C++/CLI), Borland/CodeGear will have a lot more to be concerned about. In
fact, that might just be what Borland/CodeGear needs to get their butts in
gear and resolve those nagging issues we Borland users have been suffering
through.

Anyway, that's my opnion in a nutshell.

- Dennis
 
V

Victor Bazarov

John said:
[..]
Incidentally, there is no comp.ide.c++ newsgroup, so where do you
suggest I post?

I suggest you post to the newsgroup that deals with your platform.
There you will find more people getting similar problems solved on
the daily basis. They must use some tools, ask which ones, and why.

V
 
B

BobR

Sylvester Hesp wrote in message ...
So, what you're saying is that the IDEs of MS suck, and that statement is
based on a piece of software that is 9 (!!!) years old? You're right - you
_do_ sound like a troll, and yes this is not the correct newsgroup. But for
what it's worth: download MS VC++ 2005 Express for FREE and perhaps maybe
you'd like to recall your statement (or not, it's your opinion, but just
don't base it on something that is very very old).
- Sylvester

Just to have more choices:
Dev-C++ IDE: http://www.bloodshed.net/
MinGWStudio http://www.parinyasoft.com/
Also, look for Code::Blocks.
 
I

IR

Dennis Jones wrote:
[snipped the argumentation]
Anyway, that's my opnion in a nutshell.


I'll roughly second that opinion, only to add that (at least as of
C++Builder 6 / BCC 5.5 which is the latest version I used), the
compiler and linker are kind of crappy.

I recently had headaches on a simple ( ? : ) statement which did not
behave as expected, until I made it an if-else. This is just one of
many examples I could tell.

Also, if you are concerned by performance, you definitely won't want
to use Borland (again, I'm speaking of BCC 5.5). Examining both BCC
and MSVC assembly output will easily show that.


But let's be fair, as Dennis said, the RAD part is very well
designed. And some non-standard extensions really come handy (eg.
closures, deterministic static initialization, ...).


We usually use Borland, linking to MSVC dlls (through a C interface)
whenever performance is critical (which is very seldom anyway).

But I have to admit I'm lobbying to have MSVC8 + wxWidgets used for
new projects, I'm tired of all those strange compilation/linking
problems...


Hope this helps a bit.

Cheers,
 
J

jussij

John said:
Can anyone suggest a better environment for C++
development than MS VC++?

Provided you're from the old school of programming, meaning
you're at home with compiler and linker command line
configuration you should give the Zeus IDE test drive:

http://www.zeusedit.com/features.html

Zeus has many of the features of other IDE's (ie workspace
management, integrated version control, class browsing,
code completion, integrated help etc), but it does require
the user to get down and dirty ;)

So if you know you way around make files and setting up
compiler and linker command line options Zeus is very
easy to configure and you'll end up with somthing that
has the power of and IDE but without the bloat.

Jussi Jumppanen
Author: Zeus for Windows
 
L

Lionel B

Provided you're from the old school of programming, meaning
you're at home with compiler and linker command line
configuration

[snip]

You might also have a look at jEdit:

http://www.jedit.org/

Although it describes itself as a "Programmer's Text Editor" rather than
an IDE it has many features of an IDE (project management, etc.), some
available via a plugin architecture.

It is written in Java (and therefore very cross-platform) but supports many
languages, again via plugins.

Personally I find it has some performance issues on my platform, which is
a shame as I find it otherwise quite pleasant as an IDE "lite".
 
G

Grizlyk

IR said:

Free BCC 5.5.1 command line tools does not support last C++ standard
(at least my copies).
I recently had headaches on a simple ( ? : ) statement which did not
behave as expected, until I made it an if-else. This is just one of
many examples I could tell.

In most cases you can try find out command line keys, switching
Borland/Microsoft extentions of C++. What is the trouble with ( ? : )
statement there?
 
I

IR

Grizlyk said:
Free BCC 5.5.1 command line tools does not support last C++
standard (at least my copies).

FWIW, neither does the paying C++Builder 6.
My point, though, was not about standard conformance, but rather
about the fact that _all_ Borland compilers I have worked with
(namely, BC4/4.5, BCB4/5/6, and BCC5.5) are buggy like hell, even
when fully patched.
In most cases you can try find out command line keys, switching
Borland/Microsoft extentions of C++.

Sorry, but we won't change that kind of compiler settings on a
project which is already about 300kloc, and counting. ;-)
What is the trouble with ( ? : ) statement there?

This very case is indeed a strange BCB6 bug.
I don't have the code at hand, but it was something very
straightforward:


AnsiString __fastcall SomeNetworkMessage::getMessage() const
{
AnsiString msg;
//...
msg = msg + (bool_expression ? "a string" : "another string");
//...
return msg;
}


The "msg = msg + ..." line always added garbage to msg, no matter
the value of bool_expression.

Switching to


if (bool_expression)
msg = msg + "a string";
else
msg = msg + "another string";


solved the bug. Note that in other places, ?: works perfectly fine.

Debugging at asm level showed that both "a string" and "another
string" where in fact taken from the stack (hence the garbage) in
the ?: version, while the if-else version correctly points at the
data segment.

IR said:
This is just one of many examples I could tell. [...]
I'm tired of all those strange compilation/linking
problems...


Cheers,
 
S

Sylvester Hesp

IR said:
What is the trouble with ( ? : ) statement there?

This very case is indeed a strange BCB6 bug.
I don't have the code at hand, but it was something very
straightforward:

[some examples]

That's harsh. On VC++ (all versions AFAIK) I also had issues with the ?: in
combination when used with references.

#include <iostream>

struct A
{
virtual void foo() { std::cout << "A::foo()" << std::endl; }
};

struct B : public A
{
virtual void foo() { std::cout << "B::foo()" << std::endl; }
};

int main()
{
A a;
B b;
A & aRef = false ? a : b;
aRef.foo();
}

Guess what above program outputs. Right, A::foo(), because a temporary A is
copy-constructed out of a B, and tied to the reference (which shouldn't even
be possible according to the standard, as the reference is not const, but
VC++ allows it when language extensions are enabled). It took me some time
to find out why my data appeared to corrupt.

I fixed it by explicitely static_casting 'b' to an A&. So apparently the
compiler prefers value over reference when the two opererands are not of the
same type. "Luckily" this is only a mere misinterpretation of the standard,
it isn't as severe as wrong assembly code actually being generated (like in
your example) :)

- Sylvester
 

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

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top