Ah...C++ vs. C debates. Have to say at least *something*...
First on the "hello world" example: Actually both are allowed. The standard form of doing it is actually returning an int, "int main()", the return value is given to the OS on program exit, 0 means success (this return value is frequently checked in shell scripts).
Arguments for using C++ instead: The thing that bothers me mest about C is that you can't make your own types. Many people consider operator overloading bad, personally I would prefer C++ just because I get to write:
string s = "Hello ";
s += "world!";
instead of the hideously ugly strcpy you C folks have to deal with.
The second thing is polymorphism. Things like widget libraries simply can't get done in a decent, extensible way without using polymorphism. Polymorphism is possible in C, but it's very messy, ugly, and slower at run-time.
In my experience, people who prefer C often don't get what polymorphism means. Comments like "the difference between a.DoSomething() and DoSomething(a) is pretty damn academic to me" (seen on Slashdot) reveals that these people clearly don't have a first clue what OOP is really about. You don't have to actually use C++, but at least learn yourself what the "virtual" keyword means (polymorphism = virtual member functions).
About Microsoft: That was code for writing a windows program. Microsoft is well known for creating horrible, illogical APIs. From what you say, I'm pretty convinced that a plain C version of the program would be the same length, the difference is that C++ users have a better chance of escaping that.
[EDIT: Typo]
[This message has been edited by dagsverre (edited June 06, 2001).]