Wow. there is a lot of crazy in this thread. I'm sorry. <rant>
>>>> 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). The risk that you're describing, there's a set of tools you can develop to hedge against this very eventuality. They're called unit tests. This is probably a textbook example for why unit tests are important, especially in a dynamic language environment. Now the Bad News: there's no existing unit test infrastructure in gnome-shell javascript land. We need it, badly. And the Good News: there's lots of great frameworks out there for this for both the browser (qunit, screw-unit, jspec, etc) and server-side (vows, jspec again, etc) environments that we, as a community, can leverage to this end. This is something that's been on my mind quite a bit, lately. Also: have you even given javascript a chance? Please don't let it's history in the browser bias you against it; it's a marvelous language with a lot of really interesting features that makes nice, expressive code possible. I think the gnome-shell team made a *great* choice when they chose javascript for the scripting environment and scriptmonkey is a good engine with a great performance for our needs (with a clean, C-based API.. putting aside the hype around v8, for now). The work the team has done around the introspection-based bindings is excellent. The gnome-shell team, like myself, know that there's a ways to go yet, in terms of making the javascript extensibility environment more robust and exposing more features of the underlying C code. Sadly, they have other dragons to slay right now and heading into 3.2. It's a good thing that this is an FOSS project and anyone can submit features/patches (I've done my share to expose a few methods in mutter, but there's much to be done still). I've found the team to be very constructive and receptive to patches, thus far. > 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 hope you're joking, because I don't even know where to begin with this. Java is definitely a step backwards, here. I mean seriously, people. You aren't going to be mutated into effete web developers overnight just because you use javascript to extend gnome-shell (and I've harped a LOT on the "C-ness" of their API in IRC, so perhaps that can give you some comfort). I can't divine your reasons for not wanting to use the language, but I really haven't heard any rational arguments against it, yet, in this thread. Javascript has, perhaps, emerged as a lingua franca on the web mostly by accident. That being said, you could do a *lot* worse than to have to use javascript as a core extensibility language. It has a lot of really nice features that, once understood (as is the case with any language), make it great for a lot of tasks. But I can't be responsible for educating you on these things. The internet is out there and there are plenty of places for you to learn "the good parts" of the language. Once again: please don't let its historical baggage with ugly browser impls color your opinion. You *need* to actually try and use javascript, earnestly, for the tasks you describe above before dismissing it. To this end, I'll even volunteer up my repo for the tiling window management extensive I've been working on (but didn't feel was ready for a release, yet). It's very rough and needs docs, still (and I believe it needs to be updated to the latest gnome-shell release in the metadata.json.. I haven't messed with it in a few weeks) : https://github.com/olsonjeffery/shellshock I used to have a custom mutter branch with the C-extensions I needed to make this extension work, but I believe my changes have been accepted as patches, so it should work ootb. It's very rough around the edges, still. But it's a start, I think. And everything needed to have automatic tiling (the workspace added/removed events, window add/remove events, etc) is all there in the gnome-shell API, just not wired in. If anyone's interested in learning more about the code I've submitted and how to leverage it, I can try and add some README info. </rant> _______________________________________________ gnome-shell-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-shell-list
