The idea that Java is "much slower than C++" is largely a myth.
Sure, it once used to be slower, but no more.
For C++ GUIs (I guess you're working on Win32 platform only given what you already mentioned for options) there's another option to consider and that's VCL.
It's the standard GUI library for Borland C++ Builder which is included in the brand new Delphi Studio 2006 (to be released later this month) as well.
A breeze to work with, and far more consistent than is MFC.
I've used VCL extensively in the past under Delphi (how's that for commonality, one library under several languages) and it's very nice indeed.
Far easier than Windows API programming in C and C++ (which I've done) or MFC (which I've looked into but never done seriously, too convoluted).
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
Move to java. u'll b surprised the, sintax is the same. I think. and u can use applets so if u write programs to use 4 the web. Then i go with java.
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
I personally believe that following the Petzold Book ( I believe that is the book number one in your list ), is the best when starting GUI programming in Windows. So before starting on MFC you better go through that. Initially the Applications will look ugly, due to the use of system fonts, but later you will get the hang on how to improve them. I think it is essential you follow this book because you can get the concept of the message loop in windows. Once you get the hold of this, following the MFC Framework or other libraries will be easier. I have not used the VCL, but when I used MFC, the main problem was the meaning of Events and their Handler Functions. Since MFC does this automaticcaly for you, you dont get the basics of it, and when it come to changing the application even slightly you will have to rely on examples of previously done programs. Once you learn to do this directly using the Win32 API and the Platform SDK Documentation, you will be better off, even if you later transfer to MFC or other GUI Library.
One thing is, the Petzold book's examples are in C. But if your knowledge on C++ is good, I dont think you will find it difficult.
After trying this you can move into game programming in Windows. More advanced reading can be found in Programming Applications for Microsoft Windows by Jeffrey Richter.
And remember we are here to help you when you crash. :D . So go ahead.
WolfPack
Postaholic
2,051 posts since Jun 2005
Reputation Points: 572
Solved Threads: 115
I have been stuck in your corner for quite a while, guess I ran out of time... I also recommend that first book since it will tell you what all those classes in MFC does, really...
(Saw an example here a while ago... the MFC way was
CMenu *cMenu = GetMenu() ;
CMenu *cSubMenu = cMenu->GetSub... (something)...
cSubMenu->EnableMenu( ... )
while w32 way is
HMENU hMenu = GetMenu(hWnd) ;
HMENU hSubMenu = GetSubMenu( hMenu, ... ) ;
EnableMenu( hMenu, ... ) ;
I usually get annoyed when people trie to do things for me (hate wizzards) on the other hand you never get anything done, and I have spent quite some time trying to stick objects to windows to store common data, while you get that for free with MFC...
I recently read about wtl which sounded cool, but no time so I dont know if it is really any use trying.
However the layout of Java is much smother and much better documented, you pretty much do not need any books once you get a hang of the api (well I suppose that is true with any api but I hate msdn, they got so much stuff you never find what you want, and most of the time some c# or mfc shit turns up when you search for your favorite w32 api function (grabb a copy of devcpp w32.hlp file a must)...
Oh, and what I was originally going to write... Java is really not that much slover, it has some pain in the ass startup time (especially for small HelloWorld more time is spent loading shit that actually running anything)... Try Azerus (bittorrent) there is a kick ass program with damn good responsibility (thought it uses some native port ui I gather but still)... For gui programs you mostly iddle in loops anyway so speed is probably not an issue (once the startup cost has been paid the just in time compiled code can in theory be faster than c/c++ code I've been told but that requires a damn good optimizer) damn it less ranting more working, im off...
perniciosus
Junior Poster in Training
78 posts since Nov 2005
Reputation Points: 29
Solved Threads: 4
What you noticed with Java was the startup time of the JVM which adds to application load time.
With an application that runs for more than a few seconds that's a trivial difference.
Of course you need to program differently as well. While the syntax may LOOK the same it isn't (Java syntax is actually closer to Object Pascal than C++) and the paradigms to use are quite different as well.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337