Which languages are people writing Plasmoids in?

It was good to make it to the Desktop Summit in Berlin this year and to see some familiar KDE faces again. I feel that I've been able to catch up a bit on news about many of the interesting projects that are happening in our KDE community and also in the greater FOSS desktop community.

I was talking to some people about Python in KDE and where it is being used, and I pointed out that quite a few plasmoids are written in Python. Being the curious type, and also bearing in mind the saying "if something doesn't have a number written next to it then it is just opinion", I went to today and did a quick survey of the plasmoids section to see which languages are being used. Here are my results of surveying the latest 50 plasmoids, (methodology is described below.):

Python 46%
C++ 44%
QML 6%
Javascript 4%

So there you go. A lot of Python being used, more than I expected really. C++ is still getting a lot of use despite how difficult it is to distribute to end users when compared to more script oriented approaches. But the big surprise is how little Javascript appeared in my sample. If anyone can explain what is going on here or what I'm doing wrong, I'd appreciate it. Ruby didn't appear in my sample, sorry Richard.

Also a small pro-tip to plasmoid developers. When you release a plasmoid make sure that no temp, back up files, or complete .git directories are included in the file plasmoid archive(!).

Methodology used. What I did was go to the plasmoids section on, and looked at the "latest" tab, and then starting with "Play Control 1.0" I worked back in time recording the implementation language used for the latest 50 plasmoids. If the plasmoid was "plasmoid script", then I also downloaded code and looked inside to see what was being used.


But the big surprise is how little Javascript appeared in my sample. If anyone can explain what is going on here or what I'm doing wrong, I'd appreciate it.

My experience is that Javascript in Plasma is close to unusable for anything more serious then a Hello World applet/plasmoid. The problem is those of missing functionality. You only can do simple things like loading and displaying an image or printing some text. You cannot do networking, data-processing, complex visualization, ... cause there is no such functionality published/available in the rather limited bindings :-/

By Sebastian Sauer at Mon, 08/15/2011 - 13:14

It's high time for Python to be recognized as the language of choice for KDE people after C++; it's been the case for ages. One of the reasons is that most people working on KDE gadgets are sysadmins, who already use Python extensively for other tasks.

The Javascript/Ruby crowd is mostly composed by web developers and designers, who don't usually work on a Linux desktop in my experience (Apple is the dominant platform there), so they haven't got any incentive to embrace this technology.

There's also the fact that with Python, you can use as many (or as few) KDE APIs as you feel comfortable with, and do everything else in pure Python using the standard library. With Javascript, you're at KDE's mercy in terms of what you can or cannot do.

By Giacomo Lacava at Thu, 08/18/2011 - 13:38