Looking to the future of mediaWiki the base set of javascipt will continue to grow as the client side applications grow in complexity to address improved usability issues and new features. To this end it will become more necessary to A) have a better system for sending out client side javascript. and B) standardize around a JavaScript helper library.
A) The improved delivery mechanism is a two part issue: Code maintainability and client side performance. 1) To maintain and modularize code as the complexity of javsaciprt libraries grows, it makes a lot of sense to split JavaScript class & objects into respective files folders etc. Likewise we dont' want additional requests for language code delivery. By using a server side delivery system we can do clean dynamic addition of sets of javascript files to the page in a single request "just in time" as the user interacts with a given set of interface components. If we don't update our javascript delivery mechanisms this will result in _lots_ of little javascipt requests and less maintainable/flexible javascript code.
2) Furthermore with complex javascript libraries we want to add verbose comments, documentation, and debugging statements to the code without resulting in reduced client side performace in delays due to file size increases. Minimized javascript can strip all that unnecessary bits.
I propose we implement or adopt something like: http://code.google.com/p/minify/ This will mean sets of javascript files can be grabbed in a single request, minimized, grouped, cached, and gziped (if the clients supports it). This should work fine with our reverse proxy setup resulting in a net decrease in cluster load by dealing with smaller files for the majority of the time. A user preference could request un-compressed individual files and or a url parameter like ?jsdebug=true could enable non-compressed output for debugging.
A library such as minify can also minimize and group all the style sheets and minimize html output if we wanted. Although the gains are not anywhere as dramatic or as necessary for the html/css space.
If we can get some community consensus about this direction that would be good. I will start looking at integrating the above mentioned library, run some tests etc.
B) We should also address the convergence on a javascript library for HTML document traversing, event handling, interface improvements, maintainability, flexibility etc. All the sequencer, metavid stuff uses jQuery. jQuery is GPL/MIT licensed javascript library emerging as the "winner" in script libraires with very wide adoption (google, apple.com, digg.com, mozilla.com etc) and very small footprint. Refactoring existing mediaWiki javsacript code as jQuery javascript would result in much fewer cross browser hacks in mediaWiki javasctipt and generally shorter, more maintainable code. So seems like a good direction to me ;)
peace, --michael