+1 as well.

Thanks,
Marius

On Fri, Nov 30, 2012 at 9:55 PM, Sergiu Dumitriu <[email protected]> wrote:
> On 11/30/2012 01:41 PM, Caleb James DeLisle wrote:
>> Hi,
>>
>> I'd like to add require.js to XWiki to be included in every page just before 
>> prototype.js.
>> I would also like to add jQuery to our resources directory but only make it 
>> available to
>> scripts which "pull it in" using require().
>>
>> I have come to the conclusion that jQuery is a de-facto standard and even if 
>> we don't port
>> to it, we should make it available to our users. Require.js is an 
>> implementation of the
>> Asynchronous Module Definition standard which will allow us to use both 
>> jQuery and prototype
>> relatively harmoniously.
>>
>> I think it's obvious that if javascript rich webapps are going to scale, 
>> they need
>> modularity and I've reviewed AMD and the main competitor CommonJS and 
>> concluded that AMD
>> will provide the user with better page load time by asynchronously loading 
>> modules according
>> to a dependency tree while CommonJS blocks on each call to require().
>>
>> I would like to see us move away from prototype but it provides more 
>> functionality than
>> jQuery including an OOP framework and while there are other libraries which 
>> show promise,
>> I don't feel right proposing a best practice without first porting some code 
>> to it to see
>> what issues arise so IMO we should begin using require.js but accept that 
>> prototype still
>> has it's place.
>>
>> So I propose:
>>
>> Include require in the header vm.
>
> +1
>
>> Include jQuery but only if a script "require()'s" it.
>
> +1
>
>> Establish a best practice of using require() and define() instead of global 
>> variables but
>> accept that prototype.js still has it's place.
>
> +1
>
> However, consider these as precursory +1s for the idea in general. We
> should first try and see how this work in real code.
>
>>
>> WDYT?
>>
>> Caleb
>>
>>
>> miscellany:
>> ------------------------------
>>
>> require.js vital statistics:
>>
>> Dual licensed BSD and MIT.
>> Latest Release: 2.1.2
>> 1,993 lines before minification
>> 24,621 lines in every .js file in the /tests/ directory.
>> Used by:
>>     https://github.com/adobe/brackets/
>>     https://github.com/ajaxorg/cloud9 (https://c9.io/)
>>     http://browserquest.mozilla.org/
>>     http://www.bbc.co.uk/frameworks/barlesque/examples/global/requirejs
>>     http://www.officejs.org/
>>
>> -----------------------------
>>
>> Optimization:
>>
>> require.js comes with a tool for linting, compiling (using Closure Compiler),
>> and linking AMD modules together based on their dependencies. Complex 
>> projects
>> with many js files can be can be compiled into a single "statically linked" 
>> js file.
>>
>> It supports Rhino so it could be included in the maven build.
>>
>>
>> -----------------------------
>>
>>
>> My experimentation with require.js:
>>
>> I use the require.js legacy shim to make jquery.sheet function as a 
>> require.js module
>> without making any direct changes to jquery.sheet.
>>
>> I was able to move the code from XWiki to the filesystem (file:///) a total 
>> change
>> of the directory structure and only needed to change the main example.html 
>> file.
>>
>> I was able to include the content in an iframe simply by defining a 
>> require.js plugin
>> see: http://requirejs.org/docs/plugins.html for loading through an iframe 
>> and changing
>> the require() call to require the iframe'd sheet.
>>
>> https://github.com/cjdelisle/jquery-sheet-amd
>
>
> --
> Sergiu Dumitriu
> http://purl.org/net/sergiu
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to