Hey, I am a undergraduate student of Computer Engineering from Pakistan. I
am very excited about availing the Summer of Code opportunity to contribute
to the GNOME project. The idea I am proposing is a scripting framework for
GNOME applications and it is inspired by the Kross scripting framework that
is available for KDE apps.

The need for scripting support in applications is two-folds. These two
different use cases are as follows:

1) Plugins aka User Scripts: Allow third-party developers to enhance or add
features to the application
2) Embedding: Make an efficient native-compiled core and use more productive
languages to add the front-end on top such as UI, or to glue together
different base components to form a complete application.

However, at present there are a few problems/limitations associated with
such scripting support. Firstly, most applications that currently employ
scripting support have limited themselves to one language. This approach has
disadvantages in that the users are forced to use that particular language
to add their own customizations/enhancement to the application even if its a
trivial one. This may discourage the user from writing such an enhancement
at all if he is not proficient in the scripting language of the application
and has to learn it. Moreover, different languages have different features
which are very suitable for a specific problem domain. For example, Perl has
good support for text processing, Python makes 'gluing' components together
very easy, JavaScript/Lua are lightweight and well suited for embedding
uses, etc. Limiting the user to only one language prevents him from using
such features which might be available in other languages.

Secondly, there is no one common/unified implementation that attempts to
cover maximum possible use cases. Most applications that currently employ
scripting support have each come up with their own unique solutions e.g.
Evolution's EPlugins, GEdit's plugin system, Anjuta plugin framework, etc.
Having one common implementation has advantages including code reuse of
backend plugins (if a new plugin for a language is written then all
applications using the framework will be able to use it), API reuse( that is
the application programmer needs to learn only one API in order to add
scripting support in multiple applications) and consistent
functionality/behavior across applications from the user's point of view
(quirks?).

Hence, the goals of the project are:
1) Easy and transparent scripting support for applications
2) Isolate the application from the details of interfacing with the
interpreter
3) Language Independent
4) Cover maximum possible use cases of scripting
5) Code Reuse - Backend language plugins reusable by applications
6) Efficient Implementation

Your criticism, suggestions, opinions... ?

-- 

Regards,
Shaneeb Kamran
_______________________________________________
desktop-devel-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Reply via email to