Unfortunately this leads to massive performance loss since the monolithic js is way better and more optimized.
I don't think thats true. If you combine all your small apps and the main app then, yes, the download size will be larger than just one big app because all your small apps will need to include the same GWT SDK code (e.g. each small app contains the code for a GWT button). However each small app can use code splitting on its own to optimize its "download performance" and once its downloaded everything is cached.
The actual JS performance shouldn't be any different unless you made a bad decision and you suddenly need to send a large amount of messages between the main app and the small app loaded through your menu item and serialization/deserialization of messages starts to become an issue.
So overall I would save "massive performance loss" is clearly overstating and I am pretty sure you don't have numbers to correct me ;-)
So, other than creating gwt-legit libraries, what's the point of multiple modules?
Within a single app a module is mostly for configuration organization. Especially if you have lots of generators and deferred binding configuration its nice that you can split your module XML up into smaller parts. They also help during development because if done right you should be able to start only a subset of your large application which can speed up SuperDevMode as it has less code to manage. Well and as you said the most prominent use case is to be able to build libraries.
However for your use case you have to adopt the Turducken pattern: http://de.slideshare.net/RobertKeane1/turducken-divide-and-conquer-large-gwt-apps-with-multiple-teams
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to email@example.com.
To post to this group, send email to firstname.lastname@example.org.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.