The Design and Implementation KJSEmbed
Speaker: Richard Moore
KJSEmbed defines an API that aims to make it easy for application developers to embed the KDE Javascript implementation (kjs) within their applications. Companies such as Apple already use the kjs library in this way and KJSEmbed provides a standard API for doing the same within KDE.
The presentation will describe the design of the KDE 3 KJSEmbed, and try to identify both the positive and negative aspects of that implementation. The design of the KDE 4 version of KJSEmbed will then be discussed. The two implementations will be contrasted to show how the new code tries to address the weaknesses of the previous implementation while retaining its strengths.
The presentation will describe some of the trade-offs that have been made in the design, and will explain the reasoning behind them. The problems that have been encountered in implementing KJSEmbed and the approaches taken to address them will also be covered. There are some unusual aspects to the implementation of KJSEmbed that are the result of both facilities offered by Qt and of the design choices, these implementation details and the reasoning behind them will be highlighted in particular.
The intended audience for this paper is both application authors who plan on adding support for scripting their applications, and also developers who hope to work on the application scripting platforms themselves. Ultimately it will provide an overview of both the current state of KJSEmbed, the design decisions that lead to the implementation and the reasoning behind the choices made.
Richard Moore
I have been working on KDE since its inception and have contributed code to numerous application including KSnapshot, Kasbar and Cervisia. In addition I am the author of several classes in kdelibs including KPassivePopup. I have been working on KJSEmbed since early in the KDE 3 series and am currently working on the KDE 4 port. I am currently employed as Principal Software Engineer at a company offering computer security services.
Media
Slides (ODP) (64k)
Slides (PDF) (122k)
Video (Ogg) (133M)