Slashdot Log In
Google Web Toolkit Now 100% Open Source
Posted by
Zonk
on Tue Dec 12, 2006 01:02 PM
from the nicely-done-sirs dept.
from the nicely-done-sirs dept.
chrisd writes "When we first released the Google Web Toolkit (GWT) we were focused on building a great tool for people to build AJAX apps with. Now, we're happy to announce that all of the GWT source code is available, including the Java to JavaScript compiler and the debugging browser, under the Apache 2.0 license. If you'd like to see how we pulled off letting you avoid dealing with nasty browser quirks, you should take a look. More importantly, we're running this like a true open source project now: we'll be developing GWT completely in the open, as per our project charter. More info on the GWT blog."
Related Stories
[+]
Technology: Is Anyone Using the Google Web Toolkit? 470 comments
eldavojohn writes "After seeing some applications from Google and participating in the Google Codejam (which seems to be built using the GWT), I kind of expected to see websites spring up left and right based off the GWT. Well, it's been a year and a half since they open sourced it and I have to admit that I am more than a little disappointed by its low profile in the UI community. I've been trolling their blog and have seen a few books out on it. But the one thing I'm not seeing is its use outside of Google. I've worked through the examples and tutorials at home and though I've been impressed with the speed, I am disturbed by the actual result — a whole ton of generated Javascript. But this is the first UI technology I've found where I can write in the native language of the server (Java) to generate and unit-test the UI code. Aside from Google's use and the games of Ryan Dewsbury like KDice & GPokr, does anyone know of major sites using the GWT? If you don't and you've used it yourself, why isn't it taking off? Is it too immature? Is it a solution to a problem that already has too many solutions? Is it fundamentally lacking in some way?"
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
A step in the right direction... (Score:5, Insightful)
One of the problems with designing easy to use functional web applications is that the web is really structured to support it. What you end up with is a difficult balancing act with interactions between server side code, javascript, and anything else in between.
It's nice to see Google sharing some of the tools they use because let's face it...Google's web apps (in particular gmail) are very impressive.
Re: (Score:2, Informative)
Sorry.
Re:A step in the right direction... (Score:5, Interesting)
The problem isn't that these new tools aren't useful - they are. Rather, the "purists" seem to hate it when education is made on assumptions.
For example,
Switching theory is considered the "calculus" of computer engineering. And like calculus, it is being dropped from many undergrad curriculum with the assumption that software can best manage this aspect of microprocessor and other digital design. Those who graduate without this knowledge are basically standing on a foundation of assumptions. This is the proverbial "box" outside of which one is supposed to think.
The purists are just quick to point out that one should never found their decisions on assumptions. In the GWT example, the purist will quickly point out that it is safe to use, provided that the user have the knowledge to work under the hood, when necessary. In my switching theory example, what will happen to microprocessing once we are up against the very laws of physics? This will happen in the near future and those who don't know the basics will not be able to go back to them in order to move us beyond such limitations.
Back in the '90s, when Y2K was the big worry, the FAA went to IBM for reconciliation. IBM's response?
"We'll have to replace the whole thing. There isn't anyone left who understands the entire system."
Parent
Re:A step in the right direction... (Score:5, Funny)
This has always been one of my pondering points of Star Trek. Where, in the development of the Earth, did they find the time to 'educate' students on the likes of Calculus and 'general education requirements' while also being able to teach them the intricacies of Quantum Mechanics, deflector dish re-alignment, and power coupling re-direction, all by the age of like 18 and flying around on a star ship!
Calculus was pretty difficult enough, let alone the difficulties of studying as a teen-age when the temptations of a holo-suit are sitting in your own 'dorm'. There's enough addiction in games like WoW, I cannot imagine what it would be like on the Enterprise. =D
Cheers,
Fozzy
Parent
Re:A step in the right direction... (Score:5, Funny)
That's what you think the box is. I think it is an actual box, located 15 miles south of Champagne, IL.
All kidding aside, please don't legitimize corporate doublespeak buzzwords by trying to claim they have an actual definition. It's an insult to those of us who are not marketroids.
Parent
Re: (Score:3, Funny)
You mean Champaign [google.com], Illinois? I'm typing this from Urbana, right next door to Champaign (and just down the highway from storied Peoria), although as a child I lived in the the one and only Oblong, IL [villageofoblong.com].
Ha! A chance to be pedantic! How often does that happen?
Auugh! No, not the off-topic button! The Midwest really does exist! It's made of peeeeeooople!
Re: (Score:2, Insightful)
Someday, hopefully, all this cross-browser mess will be behind us.
Re:A step in the right direction... (Score:5, Insightful)
No, the current web standards aren't garbage. The browsers that don't even attempt to pretend to follow the standards are garbage (I'm looking at you, IE).
The correct solution is to rip and replace IE, not the perfectly good web standards that it ignores.
Parent
Re: (Score:3, Interesting)
In my opinion (which i guess is what I had forgotten to specify), the web standards are garbage. Fully implemented or not. (And well, in some cases, IE isn't the only one to blame... Safari's javascript
Re: (Score:3, Informative)
You might be interested by this project that aims to create a tool just like GWT but for Python. http://pyjamas.pyworks.org/ [pyworks.org]
Their goal for 0.1 was all Google examples at least mostly working on Firefox and this is what they released. Their goal for 0.2 is all Google examples, completely working on all browsers.
I wouldn't use it yet in my projects but I'll keep an eye on it. I tried GWT and despite being Java, it's very sweet. I'm eager to be able to do the same thing with python.
Tapestry Integration? (Score:2)
Ready for professional use? (Score:5, Interesting)
Umm... (Score:2)
Re:Umm... (Score:5, Informative)
Parent
Re:Ready for professional use? (Score:5, Insightful)
From what I've seen, the big advantages to using GWT are:
I wouldn't say that GWT is a particularly nice solution to the problem --- it's doing some pretty damned foul things behind the scenes, you should look at the code it generates some time --- but it hides the foulness rather effectively. It basically lets me get the job done far more easily than I could otherwise, which makes it valuable to me.
Parent
Re: (Score:2, Insightful)
Debugging (Score:3, Interesting)
And how do you debug a problem now? First you'll have to find the problem in the automatically produced Javascript, then find out how that relates to your Java files that were used to produce the Javascript. What if the tool has a bug? It'll take you a very long time realizing that.
Well, according the the GWT website [google.com], that's not true. One of the big advantages of GWT, or so is it advertised, is that you can develop *and* debug your app directly in Java, not having to mess with the Javascript at all.
:
From the GWT overview
Google Web Toolkit (GWT) is an open source Java development framework that lets you escape the matrix of technologies that make writing AJAX applications so difficult and error prone. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler to translates your Java application to browser-compliant JavaScript and HTML.
Here's the GWT development cycle:
1. Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
2. Use GWT's Java-to-JavaScript compiler to distill your application into a set of JavaScript and HTML files that you can serve with any web server.
3. Confirm that your application works in each browser that you want to support, which usually takes no additional work.
Re: (Score:3, Insightful)
And how is this different from a compiler? Whether it's object files or class files, it's probably worse to debug the raw assembler/byte code then it is to wade through generated javascript. And yes, compilers make errors. Apparently, GWT is a compiler, with the only twist that it generates javascript rather than raw machine language or a (different) virtual machi
Re:Ready for professional use? (Score:4, Interesting)
Parent
Kudos on the licenses (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2, Informative)
Re: (Score:3, Interesting)
As someone who has contributed bits and pieces of code here and there, and considering some bigger ideas to be released as GPL, I'm interested in why you'd prefer Apache 2 and MPL. It's all rather murky to me what the differences are. Mind elaborating?
If I'm a company, then if I use GPL software, I cannot modify it. This rather defeats the purpose of using open source software.
The reason why I can't modify GPL'd software is fairly simple: releasing in-house software as GPL is expensive. It requires leg
Re:Kudos on the licenses (Score:5, Informative)
Your company doesn't want to "support" the software? Why would anyone want to purchase software from your company?
Parent
You were doing WHAT now!? (Score:5, Insightful)
Well, if you're using GPL'd software as part of your proprietary software, you were barking up the wrong tree to begin with--the whole point of the GPL is to promote free (libre) software.
As for the relicensing bit, you can only license things you own. If you're not using code you own, you have your own problems right there, GPL or not.
And if it was for simple in-house *use* (the GPL covers *distribution* as you can see from the preamble section), well, you didn't really have to release anything, anyhow, so there couldn't have been anything to vet to begin with.
Honestly, it sounds to me like you grabbed a screwdriver and were disappointed because you couldn't make a very good hammer out of it.
Parent
GNU GPLv3 will be compatible with the Apache 2.0 (Score:2)
I don't agree with you on this, but FYI the GNU GPL version 3 will be compatible with the Apache 2.0 license. See this RMS transcript [fsfeurope.org] from the Free Software Foundation Europe. The combined GPLv3+Apache2 work can be released under the GPLv3+"patent termination protection" license.
If people think
Good news... (Score:2)
the problem is the demos don't seem to work in Konqueror (3.5.5) although I am not surprised. Funnily enough I have problems with Gmail in Konqueror, it freezes, and some of the features just don't work.
It would be nice to see some patches against GWT to support these browsers, now it's open, we can.
Dang it. (Score:2, Funny)
Only if you promise to think about the irony (Score:5, Funny)
Yes please :) (Score:3, Interesting)
I've always been of the "build it yourself" philosophy in the past, when I first coded my website (4 years ago), I built the blog, the guestbook, the cms, everything. I don't have a CS degree, and this proved to be a valuable way to learn some programming skills.
Even today, I start new projects, I look at existing offerings, reject them and try and put it together myself. I'm currently some way through building an AJAXy online photo-management tool. It's fun stumbling across a bunch of unanticipated problems and figuring out how to fix them. At the end of the day though, with this particular project, I just want something that's asynchronous, but as reliable and cross platform as gmail.
When the people who make the application whose standards you're trying to match release a toolkit that helps you do that, I'm having me some of that.
Re: (Score:2)
Re:Yes please :) (Score:5, Interesting)
Parent
Um ya...... (Score:3, Informative)
Does Google Web Toolkit send any information about me back to Google's servers?
When you use the Google Web Toolkit's hosted web browser, the application sends a request back to Google's servers to check to see if you are using the most recent version of the product. As a part of this request, Google will log usage data including a timestamp of the date and time you downloaded the Google Web Toolkit and the IP address for your computer. We won't log cookies or personal information about you, and we will use any data we log only in the aggregate to operate and improve the Google Web Toolkit and other Google Services. Please see the Google Privacy Policy for more information.
Re:Um ya...... (Score:4, Insightful)
Parent
"JavaScript's lack of modularity" ? (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
Devil's Advocate (Score:5, Informative)
Re:Devil's Advocate (Score:5, Insightful)
But this is definitely where the beauty is in the eye of the beholder comes into play. Is this some quick syntactical sugar that gives the impression of structure, or is there indeed a well thought out design to the language. Of course, the fact it's been a slowly evolving/hacked together language would point more towards the former in my book.
Personally, I've never been a fan of the Javascript method of doing things, and prefer a much stronger structure in the language. Python does a great job of it, I like what little I've seen on Ruby (especially Rails), and there is of course my personal favorite C++ (yes, flame all you want, but *know* the language first before you complain about it).
Prototyping languages, from what I've seen so far, are great for hacking together small projects, but get messy when you try to do anything on a larger scale. This is where strong language structure comes nicely into play.
While Java is not my favorite language (I usually refer to it simply as, 'that bastardized c++ language'), I am excited about trying this out. I'm curious as it will compare against RoR, Django, etc. The prospect of being able to write a well maintained library for web interfaces that is easily extendable is a much worked on and much needed item in the world of webs.
Parent
Re: (Score:3, Informative)
The phrase "object oriented" does not refer to single implementation technique, it refers to a general category of languages. Perhaps the majority of people are more familiar with C++/java style class-based designs, but there are many others. One of the most famous (in the research community at least) is "prototype based" languages, of which the "Self" language is the most well-known example. Javascript, it would seem, is a
Re:Devil's Advocate (Score:4, Insightful)
Parent
ZK (Score:3, Informative)
While not technically competitors (GWT is all client side, ZK provides a way to handle AJAX requests automatically on the server side) they fill many of the same niches. There is an informative interview available ( http://blogs.pathf.com/agileajax/2006/06/an_inter
If you want to jump straight into the ZK demo, check out http://www.zkoss.org/zkdemo/userguide/ [zkoss.org]
Omitted the NOSCRIPT tag - Disabling JavaScript (Score:3, Interesting)
IMO this is nice-looking but a non-starter.
Re: (Score:3, Insightful)
If you just searched for <NOSCRIPT> and didn't find it, and assume this means it won't gracefully fail with js off - you could be wrong.
You can do graceful degradation that way. OR, you can output a page that works without javascript, all the links being traditional serverside "do_something.php?action=foo&id=foo" stuff. And then, the body onload() goes through your DOM and replaces all the
Re: (Score:3, Informative)
Java 6 SE includes Rhino (without E4X) which I suppose could be used as a target of the GWT for the server side, but it seems a tad pointless except maybe for validation of generated code.
Re: (Score:3, Interesting)
Sadly true
I suspect a platform like
Re: (Score:2)
There's a ton of reasons.
Re:Wither AJAX (Score:5, Insightful)
Don't get me wrong, for larger programs and projects Java can be an excellent tool. When you fire up the JVM with system boot, or once a week or so, then no problem. But using Java to give you an automatic clock, roll-over buttons, or pretty water effects on pictures is just wrong on so many levels.
Parent
Re: (Score:2, Informative)
With Java 7 under GPL, why would anyone develop an AJAX application instead of a signed Java applet? The reasons Java applets never took off were security concerns and limited consumer bandwidth. Both of these are less of a concern now and no more of a concern than running rich apps directly in the browser.
Time to make like it's nineteen-ninety-eight. Again.
I avoid Java applets as much as I can. Not because of security or bandwidth, but because they take so damn long to load and often cause the browser (IE or FF) to freeze until they're done loading.
Re:Wither AJAX (Score:5, Insightful)
Parent