Scripting languages and KDE
By einar- Comments
Up to now, the main language in which KDE applications are developed is C++. This is a perfectly valid choice: however, at least for users that don’t have a computing background (I include myself in the list: I do science) C++ can be a rather steep requirement (although Hans, fellow staff member at the KDE Community forums, is doing a nice job in explaining his learning experience).
Scripted language bindings (that have a lower barrier of entry) for KDE exist: on top of my memory I can list Python, Ruby, and C# (and I’ve probably missed a few). Despite that, the only official non-C++ programs that are in KDE’s SVN currently, including only what’s in the official modules, are system-config-printer-kde and printer-applet, which are written in PyKDE. This is quite striking to me, because the language bindings allow full access to the API in kdelibs, and thus allow the creation of applications with (theoretically) less effort on part of the writer. Yet, such applications, despite the bindings being rather mature, are lacking.
Why is so? By applying Occam’s razor, Ithink that this is because most of the current KDE contributors are C++ coders. I seem to recall, though, a debate when system-config-printer-kde and printer-applet were introduced, where discussion arose between “pro-scripting” people and “anti-scripting” people. The major complaint is of course performance, as scripting languages are rarely at the level of C++. Still, I think that a more diverse language ecosystem would benefit KDE by making possible the arrival of new contributors that are not necessarily well-versed into C++. In some cases, such as Plasma, having programs directly written in scripting languages is a guarantee of less crashes dn more security. In the end, KDE would really benefit from it.
Before someone flames, let me state that I’m not advocating a reduction of C++ based programs in KDE. Just more choice. FOSS is all about it, right?
EDIT: After reading Richard Moore’s comment I thought I’d clarify my point. It is true that core modules need to stay C++ only to avoid more dependencies in the chain, but at the same time I feel that KDE does not stress enough that you can write applications (that can live well outside the core, for example in extragear) in languages that are not C++. This can be a limit for contributions from people that “do not speak” C++.