With KDE SC 4.4, we put a fair amount of work into Javascript Plasmoid support. This has been extended a bit further in 4.5. Javascript has also blossomed as a runtime management tool for Plasma Desktop and Plasma Netbook, both of which support using Javascript for first-run layouts and configuration updates. Plasma Desktop also allows you to use Javascript for templated layouts and provides an interactive console for messing about with these things, features that hopefully will extend to other Plasma workspaces such as Netbook in upcoming releases.
I also sketched in support for writing DataEngines and Runner plugins using Javascript in 4.4, but it was untested and didn't really work, ergo the word "sketched". In 4.5, these now work. I know because I've actually seen it in action. ;)
This opens up the interesting possibility of shipping Plasmoid/DataEngine pairings in a platform neutral fashion, not to mention making writing Runner plugins even easier than it already is. I think that many DataEngines will continue to be written in C++ since one of the primary purposes of the DataEngine system is to provide a simplified and, more importantly, uniform mechanism for getting at data that is otherwise only available to C/C++ apps. Due to the uniform nature of it, the bindings for access to all of this data is very, very small. Still, there are times when writing a DataEngine in Javascript may make sense, particularly if the DataEngine doesn't require tapping into a native C/C++ library or if the data is coming in primarily over the network.
There are still some things missing that would be "nice" to have, for instance the ability to use DBus from a Javascript DataEngine or that pesky little thing (I say that in jest) called "documentation". Yes, that's correct: there is essentially zero documentation for Javascript DataEngines or Runners. I just haven't had the time and, shock - shock - horror!, it seems something that few others express an interest in doing either. :) This will get remedied during the 4.5.x times with tutorials on techbase and examples in the KDE Examples module.
I also sketched in support for writing DataEngines and Runner plugins using Javascript in 4.4, but it was untested and didn't really work, ergo the word "sketched". In 4.5, these now work. I know because I've actually seen it in action. ;)
This opens up the interesting possibility of shipping Plasmoid/DataEngine pairings in a platform neutral fashion, not to mention making writing Runner plugins even easier than it already is. I think that many DataEngines will continue to be written in C++ since one of the primary purposes of the DataEngine system is to provide a simplified and, more importantly, uniform mechanism for getting at data that is otherwise only available to C/C++ apps. Due to the uniform nature of it, the bindings for access to all of this data is very, very small. Still, there are times when writing a DataEngine in Javascript may make sense, particularly if the DataEngine doesn't require tapping into a native C/C++ library or if the data is coming in primarily over the network.
There are still some things missing that would be "nice" to have, for instance the ability to use DBus from a Javascript DataEngine or that pesky little thing (I say that in jest) called "documentation". Yes, that's correct: there is essentially zero documentation for Javascript DataEngines or Runners. I just haven't had the time and, shock - shock - horror!, it seems something that few others express an interest in doing either. :) This will get remedied during the 4.5.x times with tutorials on techbase and examples in the KDE Examples module.