January 9, 2003 by Allen George
Free Software APIs
Well…what can I say. Took a look at the code today. Let me tell you something. I understand the beauty (yes I said beauty) of OO. The project I’m working on is rather large and has been created by a number of developers working over aperiod of years. The fact that its written in standards compliant C++ makes it *much* *much* easier to understand. Not *only* that – here’s something else to remember if you’re ever working on a project. Document Everything. And I mean absolutely everything. Why? Because every single architectural decision you make, every config file you create etc. needs to be documented if someone different is working on it. Trust me on this. Compare Fresco which has almost no inline code comments and a very generic architectural documentation with the project I’m working on (in which the documentation is orders of magnitude better). Within a few days I already feel much more comfortable with how the project is laid out and how components relate to each other. Not only that, since it is written in C++ I can easliy extend base classes and add the functionality I need. Now – this brings me to another point. I love the GNOME desktop, but I have come to the sad realization that I will probably not contribute to it in its current form, simply because I do not have the heart (or the will) to program in pure C. I like objects and I like how they simplify the lives of developers. This is one of the biggest reasons I think KDE is succeeding. KDE is written in C++ (albeit a bastardized version relying on some..interesting..preprocessors). I’ve outlined a number of additional reasons in my earlier rant. Do I also mention that they have *complete* documentation and a simple system of making components? Yes? Yes? Much as I dislike C#, I have a strange feeling that C# is going to be xtremely important for GNOME’s survival.