Yesterday I opened up the source code for the Basternae Client in order to make a few changes, fixes, and updates. What I had forgotten in the two years since I had been programming C++ actively is what a pain in the behind it is to get anything done in C++.
Sure, you can do anything with it, but there’s so much tedium and overhead involved that it takes forever to get anything done. Sure, it’s great for low-level code where you’re tossing bits and bytes around, but for user interface development it’s just too unwieldy.
Out of frustration, I sat down and rewrote most of the client in C# in a few hours. Mind you, it’s not fully implemented, but it’s usable as a telnet client. I’d say about 8-10 more hours of development time and it’ll be ahead of where the other client was.
That makes this the third version of the client. The first version was pure SDL with C++. The second version was SDL combined with wxWidgets. The third version is C#.NET and WPF.
Another benefit of switching to WPF is that the CPU utilization of the client has gone down tremendously, mainly because we’re using only one interface drawing library now.