Carlos,

ANT does not force all libs.  Royale has chosen to provide a default 
configuration that provides most libs.  Royale provides other configurations 
with subsets of libs, as well as one with "all".  The user can specify their 
own set of libs.

Folks who like Maven don't like the lack of explicit dependency inclusions.  
That's why Apache has both Ant and Maven projects.  Some folks have different 
preferences.  There are no right or wrong answers.  There are trade-offs to 
Maven as well.

In Royale, we want to give our users choices.  Users should be able to grab a 
single component from a SWC and use it with other SWCs although there may be 
some interoperability issues in some configurations.  We don't want to say it 
is wrong to use a single component from a SWC.

My 2 cents,
-Alex

On 1/20/20, 10:43 AM, "Carlos Rovira" <[email protected]> wrote:

    Hi Alex,
    
    I think one of the problems is something I just get to know recently in
    other discussion. With ANT all SWCs are available. With Maven you set
    dependencies when you need it. I don't like how ANT manages it (don't know
    if is something we set that way, or something ANT imposes). I think having
    all libs available, will potentially generate various issues. I remember
    put a list in other thread, but I'll put here what I remember:
    
    1.- Having all classes available can make users and developers use
    definitions that can entangle libraries unnecessarily if don't have special
    care. Is easy to go fast and depend on something that a library makes
    available for you instead of taking the time to use some interfaces or make
    the code more smart to not use certain dependencies. Having all classes at
    hand does not help on this. While having just the set of libraries that you
    really required will ensure you use just the code you should use. In case
    you can't will mean something must be refactored to offer the right
    structures, libraries and definitions to the user.
    
    2.- A usability thing (not as dangerous as point 1), is that you end having
    in IDEs all the classes. That means you can have 7/8 Button classes, and
    you probably only want just 1. If I work with Jewel, probably will want
    just Jewel Button, and not having in code intelligence the rest (buttons
    from basic, express, createjs, jQuery, mdl, etc...). It's a bit cumbersome
    to go through all Button classes hitting CTRL+SPACE on and IDE. That can be
    solved creating configs, but that's not an easy task, and a bit cumbersome
    to do, and just the opposite to PAYG applied to how to configure a project.
    
    We have other things like the CSS you commented or the extra processing of
    classes that will never be needed, but maybe we're going a bit off topic
    with this.
    I think far beyond other ANT/MAVEN things, all build systems should put
    available all libs to use, but the user should enable each one to avoid
    potential problems and ensure codification is done in the proper way,
    without mixing definitions that can pull from a tree or other ones not
    wanted, enforcing PAYG.
    

Reply via email to