#The good parts
- Declarative syntax for module instantiation works nice, especially for multiple modules that have no dependencies with each other
- AMD at framework level causes code more standard and stable for managing dependencies and exports
- Global message system (HUB) that ships with framework makes communication easier between different modules
- OO is supported well at framework level
#The bad parts
- Suggested HTML template engine sucks, it has to be replaced with better one and smoothly integrate with framework.
- Too much unnecessary async events or returned result (promise) which causes writing code more difficult and hard to predict expecting result.
- AMD at framework level stops developer who has no AMD experence to participate or try it. It seems that TroopJS is the fewer framework that based on AMD rather than pure JS plus module wrapper.
- Framework core doesn't released as single file, which is really important for developer to use, debug and understand what it is or how it works. Otherwise releasing separately increases learning curve a lot.
- .query() with special returning stuff increases learing cost