I'm a fan of the web and I admire how powerful the browser has become. Since I'm almost always in a browser (even to type this blog) I would certainly love to see even more useful apps, like, perhaps, an online IDE. So, although I work with desktop apps I like this cloud and web app kool-aid a whole lot.
One of the advantages I see in web apps is how transparent they are. It's all text, with code in an easy scriptable language. It's easy to inspect and change. Easy to deploy.
But I don't work with web apps. I work with large desktop Swing applications, usually on top of the NetBeans Platform.
I routinely debug these Swing apps with the debugger, VisualVM, BTrace and simple apps or unit-tests that reproduce the issue.
And it occurred to me after a debugging session to me that Swing apps are quite transparent too! The fact that Java code is compiled is just a decoy. As a developer you have access to the source code anyhow but, even as an user, you have about the same freedoms as you have with a web app.
Just as I could look into the DOM hierarchy in the browser, I have the Swing hierarchy of components.
Just as I could add my own Javascript event handlers, I have Swing listeners.
Although existing code is compiled, I could make a small BTrace script to see its execution and inspect parameters and values.
Without having to recompile, I can easily use reflection to look into private data and even tweak it.
So, although Swing would seem pure binary, there is nothing you don't have access to. It's an open book!
Subscribe to:
Post Comments (Atom)
The Trouble with Harry time loop
I saw The Trouble with Harry (1955) a while back and it didn't have a big impression on me. But recently I rewatched it and was amazed a...
-
As Apache NetBeans became a top level Apache project and finished the incubation process I was asked for an interview and my photo. Only ...
-
I like making NetBeans dance: NetBeans - PalmOfMyHand - Dance Demo from Emilian Bold on Vimeo . The above video is a little somethi...
-
People will never bother to do anything manual unless absolutely necessary. This is why I believe the current NetBeans "empty" jav...
2 comments:
A long, long time ago, when I was messing around w/ Groovy & Jemmy (eg. http://www.troymaxventures.com/2007/08/groovy-jemmy-gui-automation-this-is.html) to automate clicking buttons on a GUI, I remember that there was even a plugin that could show you the component hierarchy. Throw in a little groovy script like in that blog post, and you have the equivalent of firebug.
Maybe Swing windows are just as transparent as web pages, but the real issue is that Java virtual machines are not as transparent as web browsers. And that's a pity.
Post a Comment