On Thu, Mar 17, 2011 at 8:58 AM, Oliver Mangold <[email protected]>wrote:
> On 17.03.2011 13:31, Jasper St. Pierre wrote: > > Me personally, I'm not in favor of writing writing it >>> in Javascript because of the dynamic typing (will be painfull to find >>> problems caused by changed Mutter bindings). >>> >> Why do you think that? >> >> Standard problem of dynamically typed languages. Checking if variables > have the right type is delayed until runtime. Example (pseudocode): > > windows = global.get_windows() > mutter_window = windows[0] > meta_window = mutter_window.get_meta_window() > meta_window.move(100,100,200,200) > > This code assumes that the object global has a method > MutterWindow[] get_windows() > that the class MutterWindow has a method > MetaWindow* get_meta_window() > and that the class MetaWindow has a method > void move(int x,int y,int w,int h) > > If you change then to a new version of gnome-shell or mutter where anything > from this interface is changed, in javascript you get an runtime error only > when a statement using it is actually executed. This means for every update > of the framework, to be reasonably sure that your plugin still works you > have to test it completely (with 100% code coverage). This is big fun, as we > are talking about GUI stuff here, so you can't even run it automatically. > > In Vala you get a compiler error as soon as you try to compile your plugin. > Which do you think is better? :) > > > There's no support for running various C code from an extension right >> now, either compiled through Vala or not. >> >> Too bad. Another statically typed language maybe? > > I've been wondering about the possibility of the leveraging the GWT compiler to write gnome-shell extensions (any js code, really) in Java. I haven't really looked into it yet (and I don't know much about gnome-shell's APIs), but I think it would be a great way to write code for the desktop. The Java interfaces to mutter could be generated automatically, giving you type safety against the mutter API, and you'd have a nice, strongly typed development language for extensions :). I'm sure it would take quite a bit of work, so it's not really a solution for the tiling question. But, just a thought... Jesse
_______________________________________________ gnome-shell-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-shell-list
