Sunday, December 31, 2006

This Week in GWT - 12/29/2006

This is the second installment of This Week in GWT, and some of you may have noticed that I have already skipped a week. For those of you that celebrate Christmas, it was last weekend, and for Christmas this year I got the flu. And it was a grand flu at that. I wasn't much in the mood for writing. But enough of my problems, lets get back on track and cover the highlights of these past two weeks.

Request for Review: Vector API
Mark Bakker looking for some feedback posted a note about adding SVG, VML, and canvas support to GWT. He also thought that it would be a good idea to also have a high-level vector API that would emit either SVG, VML, or canvas code depending on the client browser. Emily Crutcher, speaking for Google, said that browser specific APIs are something that are trying to avoid, but a generic vector API is something that they are interested in. Discussion ensued, and nobody disliked the idea. After doing some research Mark Baker posted a Request for Review, describing what the Vector API would look like. The RR did not include canvas support, which means no Safari support. The API probably won't fly without Safari support, but as Kelly Norton pointed out, the Apple Webkit does have SVG support, so sooner or later SVG should end up in Safari.
[thread][Request for Review]

Request for Review: Data aware widgets
Emily Crutcher posted a RR for a data-aware widgets. In the scheme there are two participants, a data-aware widget, and a request broker. The widget would create a request object, and pass it to the request broker for processing. The request broker handles the request, most likely performing some sort of RPC calls to the server, and returns a response to the widget. The widget then uses the response data to populate itself. The goal is to simplify the code required to populate widgets, and to increase start-up times by using asynchronous data population. The initial widget set would include a data tree, data table, data list-box, and suggest pop-up. Discussion on the topic went this way and that. Questions of inheritance vs. composition were raised, as was widget proliferation. Regarding widget proliferation Konstantin Scheglov compared the idea to Delphi, where you had base widgets with a higher-level set of data-aware widgets on top of that. Others agreed, also comparing it to SWT/JFace. So far it looks like there is some interest, but no overwhelming enthusiasm.
[Request for Review]

Reflection
There were a couple of request for reflection support, including one from Zuhayr Khan. In his case he has found a way to get around the limitation by using a little JSNI along with a init() block that calls the needed methods so that they aren't optimized out of the code by the compiler. He suggested an extension to the module config file that would inform the compiler of interfaces that should not be optimized out of the compiled code. So far no responses, but I think that is due to it being a long weekend for most people. The other request for the same came from jdoubleu, but he wasn't aware of the compiler optimizations, so Scott Blum enlightened him. In that thread mP suggested using annotations to mark methods that should not be pruned.
[ZK thread][jdoubleu thread]

That's it for this week. Have a great New Year!

Saturday, December 16, 2006

This Week in GWT - 12/15/2006

This is the first (and hopefully not the last) summary of the newly created GWT Contributors list. The list was only started on Tuesday, so this summary is really for only a half week. I think the size is just about right though, so I expect that going forward I will filter out a little more than I did this week.

The GWT Contributors list officially opened on Tuesday with a welcome message from Joel Webber. Joel explained that they "intend to have (their) discussions about GWT development in this group, so that everyone can participate". He explained that the list would be used as an internals list while the original GWT list will remain a users type list [thread].

Sandy McArthur found a build issue on the Mac (missing tools.jar), while
Alex Tkachman found one on Windows (no chmod command). Scott Blum responded with a patch for the first, and had some special instructions for the second [Mac thread, Win thread]. A few days later a Scott Blum readied a patch that changes the way the distributions were packaged [thread].

Alex Tkachman proposed that Composite be modified to allow it to be initialized more than just once. Henry Crutcher indicated that the reason for not allowing reinitialization was to prevent memory leaks in IE6. Discussion ensued as to if this was the right thing to do. So far there is no indication that this will be addressed [thread].

Dan Morrill sent out the "weekly issues summary" on Wednesday. Dan explained that the report is a summary of the bug reports for the last week, grouped by category. In the "Not to miss" category is a compiler bug (or two), a slow ListBox.clear(), a discrepancy with Date.toGMTString() in web vs. hosted mode, an issue with using a JSP as your start page, and a $wnd.confirm() issue. Dan also provides some stats for the general GWT list [thread].

Dan Morrill also posted a fair warning that they subversion commits were going to start hitting the list. Sandy MacArthur asked if the issue tracker updates would also be hitting the list. Dan Peterson chimed in and said that it had been decided to not spam the list with these, potentially obscuring more important information. Sandy was more than happy to be spammed, but it looks like for now they will stick with only Dan Morrill's weekly summary [thread].

Emily Crutcher shared with us a short bio, then provided us with the first public Request for Review (RR). This first RR is an overhaul of the JavaScriptObject class. Emily provided a bullet list of the requirements and a few design alternatives. Scott Blum provided some additional alternatives, and explained that the goal is to make it easier to integrate GWT with external JavaScript libraries, and to allow reusable JavaScript libraries with GWT. So far there is no clear choice, which comes down to a balance between performance, flexibility, and complexity [thread].

That's it for this week. Since this is the first summary posting, please let me know what you think, good or bad. If there is something that you didn't like with the format please provide suggestions for fixing it. I am more likely to take negative criticism seriously if there if it is accompanied by a suggestion.

Thanks for reading.