Eponasoft said:
If you have a background in VB, then gambas might be an interesting choice. I've written a couple of things in it; a few notable differences between the dialects but nothing you can't figure out pretty quickly, despite the total crap documentation. I don't know how well it would work for what you want to do though...it has some pretty severe limitations regarding the GUI.
As for the whole C vs C++ thing...C is not a subset of C++, C++ is a superset of C. C will always have more potential for higher performance, since C++ abstracts a bit too much and is more complex than it needs to be. Potential doesn't mean guarantee though...I've seen programs written in QuickBASIC that run circles around botched x86 assembly programs. When you code in C, you aren't too far off the metal much of the time...the same can't be said for C++. Of course, with modern computers being so fast and compilers being so intelligent, the gap has closed tremendously, but some of us still prefer the knowledge that our C-based programs, even if only 0.1% more efficient, are still going to be that much more efficient.
Few things about C++ incorrect there.
You have started off with the fact that C++ is a superset of C, but not vice-versa. The categorization is irrelevant, given the fact that nowadays any ANSI compliant C++ compiler will compile a well written C program (that leaves out really archaic C language features) with minor warnings.
The speed thing is another FUD propagated by people that never use C++ for large scale industrial grade development.
Is a C++ binary larger (implies slower) than that of a comparable C program? Yes, if you use make use of advanced features like overloading and templates.
Is the difference noticeable? No, not even on elderly 486s.
>>
People tend to forget that a C++ class method after all is good old C function.
If your compiler (and later the loader) doesn't have to muck around deciding whether Foobar() means Foobar@# or Foobar %$ in the current context then the generated opcode for Foobar from a C++ code is similar to a C one...byte by byte.
The moral of the story is C++ doesn't puts a gun on your head to use templates or virtual functions.
They are features that makes your program structure maintainable, extendable and reusable at the fraction of speed penalty.
>>
Does anyone uses inline assembly inside C++ program? Do that and you'll have the benefit of assembly code inside a structured program.
>>
How many of the forumites here maintain product lines that involves system software with LOC running into half a million or so?
I do and I say with authority that a C++ codebase is easier to maintain in an environment that sees occasional handover of code, new staff induction, emergency fixes by relatively junior developers.
A large C++ application enforces certain degree of structural discipline which is important if you let the application to be handled by a people with varying degree of experiences.
>>
If speed is an arguement then one should code in assembly. C is a trade off you need readibility and portability and similarly C++ is a trade off if you need structural integrity in the application.