'. '


From APIDesign

Jump to: navigation, search

Comments on RationalismVsEmpiricism <comments />

tborak said ...

I thought that performing UI operations off the EDT could involve more issues than just performance (yes, I'm defending the rationalistic approach). It seems that there is the chance that the Slowness Detector may not detect issues, but the re-painting of the UI may be incorrect (or worse). Even though the sweeping change may be a large undertaking, it seems that it would be the best approach to prevent bugs that would be intermittent/infrequent but still very annoying.

--tborak 18:55, 23 October 2009 (CEST)

Really huge problem everyone defending the rationalistic approach has is that one has to use rationalistic reasoning. Reason (especially of the most clever guys that don't want to get easily convinced) is really inventive in finding reasons why something cannot work. For example in the tborak case one could ask: Are you saying we will fix intermittent issues? Do you have any sign of these? No, then sorry. Yes? Are you sure they are not caused by any other mistake, are they really caused by wrong usage of EDT? Well, unless you are sure, we cannot undertake such large and risky project of rewriting everything for unmeasurable benefits (I am playing the devil's advocate here). It is really easy to find rationalistic reasons for keeping status quo...

--JaroslavTulach 19:23, 23 October 2009 (UTC)

Alan Stange said ...

Why was the event display thread used for non-painting computation in the first place? It's Swing 101 to not have long delays on the EDT...it's covered in any book on Swing as well.

--Alan Stange 21:47, 23 October 2009 (CEST)

I really like this suggestion. For a while it made me feel retarded Swing programmer. But probably I am not. The difference is that we are not using plain MVC, we are using it in modular way!

--JaroslavTulach 20:36, 30 October 2009 (UTC)

I've used something like this on many occasions to chase down blocking code on the EDT: http://elliotth.blogspot.com/2005/05/automatically-detecting-awt-event.html

--Alan Stange 21:47, 23 October 2009 (CEST)

Right, this is the monitoring trick everyone is using. Our system starts profiling when EDT is blocked for more than 100ms. Later it decides whether to report this as a bug into our bug tracking system or not.

--JaroslavTulach 21:49, 23 October 2009 (UTC)

David Rozenberg said ...

It looks to me like the work around the problem that exists since AWT and later Swing were added to Java SDK. Simply, the original Java design did not account for any possibility of using guis for interacting with programs. So, maybe it is time to ask Sun Java evangelists to re-think the way how user interface fits into Java. Even though there are multiple statements that they follow the MVC pattern, it is obvious that the approach was bad from the very beginning - combining the controller and the view together was the bad decision.

--David Rozenberg 15:57, 24 October 2009 (CEST)

Personal tools