Thursday, July 2, 2009
Review code, new features and a rant
Unit testing was reviewed to make easier to write non OpenCascade unit tests. A requested feature from an OpenCascade forum's user is to add transformations and with his help probably it will be added soon at least for most common of them (translate, scale, rotate). If you will draw a line you will see what is it about.
Automatic numbering feature was finished and works combined with filtering. That means that is easier to find your shape from a large list of shapes.
But the main body of this post is about a rant. I had looked to the opensource initiative of Microsoft about Windows Presentation Foundation (WPF). The single interesting feature that may give is not a themable data grid but a premade Ribbon UI. Going further to see if it worth, I've get stunned about it's very bad chosen license. In short the license say something like that: if you use this widget, your application should follow the Office UI guidelines. The bad point is that Microsoft have right to change them and you should update after them, at least at their notice.
Why this thing gets plain wrong? Let's suppose that because we are oversmart people around NaroCAD tomorrow and we will use Ribbon. All users are happy (why!? because of gradients!?). After this, we continue to integrate further our work around Ribbon UI which means changes in organising of UI code, changes in how it expose a lot of items, for instance the Object properties. But after when we are almost done, and we are a very close RC, we've got a notice from Microsoft that we must follow the updated OfficeUI style guidelines that have to add support of multitouch. With two fingers you should be able to zoom in, and with three fingers you should be able to rotate the scene. (this is an hypothetical scenario) This will lead us to do two things: to postpone our release, because we are bind legally to Office UI guidelines, and also, we may need to patch OpenCascade as it does not support multitouch. A great addition for OpenCascade in itself and for OpenSource in particular, but for sure is not economical feasible for real life projects.