
2015-04-08 23:07 GMT+02:00 Bryce Harrington <bryce@...961...>:
Beyond that... any and all feedback is welcomed! Come throw some darts!
1. I think GTK 3 migration should be a little sooner. Reportedly GTK 3 has much better support for Windows and OS X. I also really want to get rid of all these ifdefs.
2. DBus extensions - The more I think about this, the more I am convinced this idea is like the laser-shooting plane: attractive but impractical.
2a) Exposing API via DBus is more difficult than just making a binding, so according to the "worse is better" principle of Unix engineering, we can get more done in shorter time by simply creating a normal scripting language binding.
2b) While being able to use any language to create an Inkscape extension is an attractive feature, it is a nightmare waiting to happen from a maintainability point of view. It's a lot better to choose one language and stick to it, so that you don't need to know an arbitrary number of languages to debug an extension - only one. Python seems to be the natural choice, as the vast majority of existing extensions is in Python.
2c) The API of the existing DBus binding is really poor. For example, you have to hijack the global UI selection to do anything. This is a result of our internal API being just as poor - many functions operate on a selection, and that object is essentially a singleton. We need to able to create objects that represents the same structure as the selection and specify to what elements in the document an action should apply, but is not tied to UI in any way. (I wrote about this some time ago.)
3. Inkscape for Android - I have no idea how that is going to work. That would essentially be a completely different program. It could use some of our code if we up our game with regards to modularization, but that's all.
4. 2Geom as a separate library - I am not sure about that. At some point - yes, but not in the immediate future. Some parts of 2Geom API are now in reasonably good shape - for instance Rect, Path, the Curve hierarchy. However, others are really poor. For instance, the whole "Crossing" mess and old intersection APIs are very poorly designed; some shapes are missing the most obvious functions. Many of the toys don't actually showcase 2Geom's API, but contain a lot of nontrivial code, which is not present in the library itself.
5. Renaming SPThings - I agree, and would also add that we should reduce the proliferation of namespaces. Either put everything in Inkscape, or make at most a few second-level namespaces e.g. UI, XML, SVG (for things which now start with SP). Separate Widget and Dialog namespaces must die.
6. We should think about linear RGB rendering, possibly in floating-point linear scRGB colorspace. Cairo is not currently capable of this, unfortunately, but these sorts of operations are blazingly fast on GPUs. This would improve our rendering quality a lot and allow us to actually render filters correctly.
Regards, Krzysztof