Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google GWT cross-browser support: is it BS?

I developed a browser-deployed full-text search app in FlashBuilder which communicates RESTfully with a remote web-server. The software fits into a tiny niche--it is for use with ancient languages not modern ones, and there's no way I'm going to make any money on it but I did spend a lot of time on it.

Now that Apple won't allow Flash on the iPad, I'm looking for a 100% javascript solution and was led to consider GWT. It looked promising, but one of the apps being "showcased" as a stellar example of what can be done with GWT has this disclaimer on their website (names {removed} to protect the possibly innocent) :

Your current web browser (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
 AppleWebKit/532.5 (KHTML, like Gecko) 
Chrome/4.1.249.1045 Safari/532.5) is not officially supported by 
{company and product name were here}. If you experience any problems using this site
 please install either Microsoft Internet Explorer 6+ or Mozilla Firefox 3.5+ 
before contacting {product name was here} Support.

What gives when GWT apps aren't "officially" supported on Chrome? What grade (A, B, C, D, F) would you give to GWT for cross-browser support? For folks who don't get these kinds of letter grades, A is "excellent" and "F" is failure, and "C" is average.

Thanks for your opinions.

like image 761
Tim Avatar asked Apr 18 '10 11:04

Tim


4 Answers

All of the base GWT Widgets are cross-browser compatible - this has been achieved by something called Deferred Binding (not always, but for the biggest offenders ;)). Basically, it allows a seamless "replacement" of one class with another, based on the browser that the client is using (this swap is done during the compilation). This allows to write a Widget for all the standard-compliant browsers and then provide a specialized version for you-know-who (deferred binding is also used for i18n and other cool things, like dependency injection). Another cool thing about Deferred Binding is that the client only downloads the version of the web app specific to his/her browser. So a Firefox/Opera/Chrome/WebKit user doesn't have to download all those additional hacks that make the web app work on IE.

Long story short: GWT provides tools/means for the developer to create a cross-browser web application (and it tries to make that process as easy as possible by providing basic Widgets that are cross-browser out of the box) - it's up to the developer to use those tools - or not ;)

PS: The same question could be asked about jQuery/mootools/etc - why is it that these frameworks claim to work on all browsers and yet there are many sites/web apps that use them and do not support all those browsers? Because the developers chose so. It might not have been worth it to cripple the web application/site just so that it works on a dying (hopefully) browser.

like image 157
Igor Klimer Avatar answered Nov 01 '22 22:11

Igor Klimer


The GWT part of apps runs absolutely fine on Webkit browsers (like Chrome and Safari). If the authors of this site decided to put in browser detection and freak out on Webkit, it wasn't because of GWT, although there might be GWT add-ons or other components that don't like Webkit.

To quote the FAQ http://code.google.com/webtoolkit/doc/latest/FAQ_GettingStarted.html#What_browsers_does_GWT_support?

What browsers does GWT support?

GWT supports the following browsers:

  • Firefox 1.0, 1.5, 2.0, 3.0, and 3.5
  • Internet Explorer 6, 7, and 8
  • Safari 2, 3, and 4
  • Chromium and Google Chrome
  • Opera 9.0
like image 40
Paul Tomblin Avatar answered Nov 01 '22 22:11

Paul Tomblin


Not everything works well in IE8... Have a look at: http://code.google.com/p/google-web-toolkit/wiki/IE8Support

like image 28
Flask Avatar answered Nov 01 '22 21:11

Flask


Code splitting was not supported till 2.1.

like image 39
shaman.sir Avatar answered Nov 01 '22 22:11

shaman.sir