Arne said:
Theoretically:
lightweight = simple & small footprint
heavyweight = complex % big footprint
Reality:
lightweight = what I want to sell you
heavyweight = what the competition want to sell you or what I wanted
to sell you 3 years ago
Swing obviously calls native code for the final output (I believe that
it calls some low level AWT classs & methods that calls native code).
But it has more logic in the Java code than AWT.
When applying the above mentioned rule, then AWT became heavy and
Swing became light.
It is not my experience that Swing apps are light in memory footprint.
The reference to "heavyweight" and "lightweight" in the AWT/Swing world is not
about footprint but the use of native widgets. AWT components are proxies to
native components, and it's this partnership with a native component that is
the "heavy" weight. Swing components are implemented completely as Java
calls, with only the actual graphics drawing going to native calls. This
makes lighter demands on the native graphics infrastructure, thus it's
"lightweight". Presumably this would allow for some nifty Swing performance
optimizations, as succeeding generations of Java supposedly have done.