This originally started as a post about bindings documentation but I decided to instead focus on plasma. You see by making plasma applets such a major part of the
kde4 ecosystem the
kde developers were in a way providing for a method for programmers of almost any level to get involved. This is further enhance by the bindings to other languages. See, not everyone likes C++ or even knows it well enough to make a decent application with it. But there is a host of people with javascript knowledge. In fact this inclusion of javascript support not only lowers barriers to involvement but it also enables us a lot of web2.0 features/ideas etc. and bring them back from the web to the desktop.
My hope is that plasma development will really come together and get a whole lot of people excited and joining in. We've seen what enabling users to make custom little apps in various
Internet sites can do (
facebook apps etc. although I'll admit a lot of those applications were annoying and I would like to think that people developing for
kde will have a lot more sense in their development models and interfaces).
What I am mostly
referring to is the user involvement. Where you can
blurr that line between users and developers just a little bit, because if the users are are spending their
valuable time working on these applets then they will feel they have more of a stake in the platform and by extension they are more likely to bounce ideas off the main
kde developers. This I hope will lead to a platform that is both easier and more
intuitive for developers and users. One that is more flexible and more capable of accomplishing the users goals.
I think we have just begun to scratch the surface of plasma. In order to get to the next level I think we need to have more complete documentation for all the various languages like python, C#, java, javascript etc. Right now I see a lot of really good tutorials at techbase.kde.org for C++, but only a few for python ruby, c# etc. There are also some good tutorials scattered around the web on various blogs, mailing lists etc. However for someone starting out it's much nicer if you have a one stop resource for learning how to make really nice
plasmoids. I really think we need to get as many of the people that really understand these technologies as we can to write some really good tutorials and
explanations of the
apis. Especially for the bindings.
The reason I am so
insistent on the bindings tutorial is not that I dislike C++. To the contrary it's one of my favorite languages, but the fact that a
plasmoid written in C++ has to be re-compiled is a little annoying. I think the scripting
languages like python, ruby, javascript are then better suited to this sort of tasks. Granted I think something like
systray or the panel and other applets that are going to be packaged with the
distro won't have to wrestle with the issue of
compilation as much. As for the various weather
plasmoids that you find on
kde-look they are quite nice, but if I have to compile these then I feel less inclined to bother with adding them. Not to mention I don't think" get hot new stuff" has
accommodations for re-compiling
plasmoids as they come in. (Disclaimer: it is
entirely possible that I missed something and you don't really have to recompile these when moving from
distro to
distro etc.)
One more thing, more than just tutorials, and
apis, we need lots of documented examples. I don't know about most of you but when I am trying to learn a new library or programming language I learn a lot more from examples then from tutorials. Only when I am really comfortable with the basics of library will I start to jump straight to the
api.
So here's to hoping that others will take up the call, and that I too will learn enough to be able to write great tutorials and examples.
edit: ya I wrote this when I was completly out of it so my grammer (and in some places logic) are a little screwy...