Re: Scaffold, plugins and language independence
Bart Van Rompaey <[email protected]>
| Newsgroups | gmane.comp.gnome.devtools |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 2004-02-09 at 13:13, Christian Leutloff wrote: > Hello, > [cut some earlier postings] > > Regarding the language independent execution of plug-ins it is worth to > have a look of the technology used by mono/.NET. E.G. using the type > system developed for .NET languages it is possible to directly call > functions written in different languages. The usage of the same type > primitives eleminates the need of marshalling and re-marshalling the > variables. > > Bye > Christian If you stick to the .NET platform, you can indeed "interoperate" between different languages (interoperate = use/inherit classes written in another language, in fact all languages are compiled to the same ilasm, so you work with only one language), given that you have a .NET compiler for the language (more precise: one that follows the common language specifications). When you look at Mono, there are only a few such compilers so far. Now look at what Scaffold is intended for: support software development, mainly for Gnome and Gtk. We're talking about glib c, c++, python, java, c#, ... then. For most of these languages, there is no .NET compiler for Mono (not yet). So although .NET looks promising, it's not really usefull as interoperating tool/medium in Scaffold I think. I'm not sure if GModule/wrapping can provide a solution here either: could all those languages be wrapped? If one wants to support all of them, meaning development support in the form of tools (build, cvs, debugging, syntax highlighting, intellisense, ...), I think the easiest way is writing the language specific parts in their own language (by means of plugins). Java and C# have both their API classes to reflect on the intermediate languages files (class/dll/exe), using these functionality is the easiest way to get the necessary information needed for some tools (in special: class/method browser, intellisense, ... ). So I thought communication between plugins in those different languages and the "core" could be done using Corba/Bonobo, since all those languages have libraries for this. The core can be further developed in glib c, and can keep using gdl, gnomebuild, ... . This way, you can provide the largest possible freedom to the plugin writer too. These are just my thoughts of a Gnome IDE, don't know if you agree. Any comments on this? Bart. -- Bart Van Rompaey <[email protected]>