Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

These are well-renowned books but I agree that it was hard to get started writing windows software. Win16 and Win32 were very strange APIs with a mixture of having to do things yourself, having the OS do it for you, and the OS calling you at unexpected times to get things done. WndProcs were re-entrant, because while you are handling WM_MOUSE you could get called by the OS to do a WM_PAINT. The whole architecture lends itself to spaghetti.

Or, you could use MFC, and then you just had to trust the library to do things right. Debugging your code wasn't easy because it would get lost in things that MFC was doing that you don't fully understand. A lot of the source code was available, however.

Or, you could use WTL, which was a third party library at the time that gave you a different way of doing it.

Debugging into/through Windows itself was really difficult due to the lack of source code. All you had were symbols and assembly. Because of how it worked, you could easily find memory corruption in your program because of some boneheaded thing you did, but finding the cause of it was hard because of its highly non-sequential nature.

Qt had a nicer approach with signals and slots, and used a more object-oriented way of building the software. Software was easier to understand. It also worked on Windows, but IIRC that part wasn't free. It is a long time since the late 90s so I am not sure about my memory. I enjoyed using Qt, though, and found it to be a much better programming model than straight Win32 or MFC. KDE was a great little system circa 2000, and it introduced the Konqueror browser that gave us the future we have today.

Anyhow, that is a lot to say that I understand how an intelligent person could read Petzold and still feel like a dummy. Writing Windows software in the late 90s/early 2000s was often humbling and there wasn't as much support from things like StackOverflow and the rest at the time.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: