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...
Saturday, January 17, 2009
Friday, January 16, 2009
Hello
I am starting this blog because I intend to use it to relay information about my journey into KDE development/participation. In some ways it will be a case study of what it's like for someone to jump into to work on a project such as KDE. In that context, I will also be using this to show case my work/efforts as well as to discuss various issues reguarding the software industry, particularly in regards to ecosystem that revolves around GNU/Linux.
Subscribe to:
Posts (Atom)