





Google Web Toolkit Now 100% Open Source 173
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."
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."
Re: (Score:2)
Eh, no it's not. The 'box' is the set of standard notions that are currently accepted as the way to do things. 'Thinking outside the box' means to step outside current notions and use a new way to solve the problem, usually inventing that new way as you go.
It has nothing to do with base-level systems or automation of those systems. It has nothing to do with the base level of education and whether or not it's basic enough.
The only th
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.
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)
Blame the corps for destroying our heritage instead of blaming me for supporting it.
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
Re: (Score:2)
Star Trek is a work of fiction.
HTH!
Easy (Score:2)
Re: (Score:2)
You point out something subtly - the "purists" said the same thing when people stopped learning machine language and went straight to fancy languages like java and c#. Do you need to know how assembly is compiled into machine code then put into memory and fetched by the CPU (with lots of nop in the case of x86
Re: (Score:2, Insightful)
Actually sometimes you do. I remember a bug a couple of years ago that was traced down to the compiler incorrectly compiling a few lines of C++ code. Yup, a nasty compiler bug (hey, compilers a programs too). One of our guys not only detected this, hey found out why and how and wrote the embedded assembler to fix it. None of the rest of us knew assembler so we
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
My guess is that in a few hundred years, the human mind didn't evolve much at all. OTOH, its probable that educational technology and methods improved, and the social conditions have changed in ways (such as the elimination of poverty) that reduce some of the drags on education in our world.
Re: (Score:2)
Then you'll need a grad student
Re: (Score:2)
I couldn't agree more. For instance, back in the day, any junior grammar school student would have known from latin class that the plural of "curriculum" is "curricula".
Sorry, I really do agree, but I just couldn't resist being obnoxious
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.
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:2)
CSS has multiple units of measurement, but it's impossible to do even simple math with them. For instance, I can't make a DIV 10em+10px wide. Why not?! Surely I can't be the only one on Earth who has thought of doing something so basic. Instead I have to enclose my DIV measuring in ems in another DIV measuring in pixels. Ridiculous. (And you can't pre-calculate the result because "em" varies based on font size.)
Vertical centering in CSS is ridiculously difficult. I'
Re: (Score:2)
But in their infinite wisdom it can only be applied to table cells, and inline blocks - I can understand table cells, but the last thing I want to be able to vertical align is inline blocks, which generally aren't tall enough to bother aligning.
Re: (Score:2)
Still, vertical control in general is poor. You hit it right on the nail with the lack of expression support, too. Because of it, we ha
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
From Here [artima.com]: The GWT will do static analysis of the code, and remove all methods that you don't actually call. We do very aggressive static analysis so that if you import a huge Java library, and only use one class, and one method within that class, we eliminate all the other code, and won't output [that] to the JavaScri
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.
Re: (Score:2)
No, the opposite is the case. Python and Ruby are dynamic typed languages, if you prefer those over Java you simply can use one of the dozens JavaScript toolkits.
Also GWT is not only a GUI toolkit but also integrates client/server communication and the server side of the application. In case I missunderstood and you ment Python/Ruby as server technology, still thre are plenty of tools that are server agnostic. And if one likes i
How do you know? (Score:2)
Tapestry Integration? (Score:2)
Re: (Score:2, Informative)
Re: (Score:2)
Ready for professional use? (Score:5, Interesting)
Umm... (Score:2)
Re:Umm... (Score:5, Informative)
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.
Re: (Score:2)
Re: (Score:2, Funny)
Re: (Score:2)
is this java only, or can I use lisp?
Yes. [franz.com]
Re: (Score:2)
Re: (Score:2)
GWT gives you one good language for all browsers.
JavaScript gives you a terrible language that breaks differently in all browsers.
So if you value a working, professional solution you will use GWT, if you just want something to play with and don't care about stability or compatibility then you can use JavaScript.
To me it's not a choice between JavaScript and GWT it's between plain HTML and plain HTML + GWT, because JS is useless as it is.
Re: (Score:2)
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: (Score:2, Insightful)
Re:Ready for professional use? (Score:4, Interesting)
Kudos on the licenses (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2, Informative)
Re: (Score:2)
Whenever you accept any code from other people, you need to pay attention to what rigths you get to that code. If you want to take the result proprietary -- you need to convince contributors they should send you patches under a license that allows you to do whatever the heck you want with them. I'm sure I'm not the only programmer who wouldn't even consider
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?
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.
Re: (Score:2)
Who still mods this up? This guy is affraid of using GPLed code inhouse because he can`t send it to his customers!!! Not quite inhouse...
Just to clarify. Using GPLed code inhouse is perfectly clear (unless you got problems with patents). You need no metodoly, or legal team, or anything, just use the code. Now, when you want to DISTRIBUTE closed source programs, well, make sure you are selling your own code.
Re: (Score:2)
Your parent poster didn't ask about the BSD license, they asked about the Apache license and the MPL, which seem to be the same the GPL from your point of view. Do you prefer them over the GPL? If so, I too would like to hear your reasoning.
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
Re:GNU GPLv3 will be compatible with the Apache 2. (Score:2)
Re: (Score:2)
No, the Apache 2.0 license will, if RMS's statement is correct, be compatible with the GPLv3, because derivative products of an Apache 2.0 licensed work will be able to be released under the GPLv3 (with a particular allowed modification).
The GPLv3 will not be compatible with the Apache 2.0 license, because derivative products of a GPLv3 licensed work will not be able to be released under the Apache 2
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.
... Or patches to KJS :-) (Score:2)
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)
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)
Re: (Score:2)
"JavaScript's lack of modularity" ? (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
Re: (Score:2)
Having said that, it's still a fact that we're using JS in ways the original designers probably didn't envision, although I must say that from a basic design standpoint JS is certainly impressive. You're still running within the constraints of the browser, which mostly treats scripts as a sort of annoying necessity rather than an integrated part of the client experience.
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.
Re: (Score:2)
They aren`t quite objects if you need to conceptualize them in a different way...
But Java Script offers something that RESEMBLES objects. And can be a mess to deal with when people start to use variables without declaring them, because the language doesn't make the scope clear.
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: (Score:2)
I don't think you understand what they're talking about. You cannot package javascript up in a module which ensures that there will be no namespace collisions, and there is no way to specify which "DoSomething()" you mean... the last declared is king.
People work around it by doing things like MYPACKAGE_ and the like, but there is still no way to import, remove, or specify which method/class you want if there is a namespace collisi
Re:Devil's Advocate (Score:4, Insightful)
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]
Echo2 (Score:2)
Guarantee of longevity! (Score:2)
Now that it has been open-sourced under a decent license, there is an implied guarantee that I can now
.NET? (Score:2)
Re: (Score:2)
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:2)
My Web App's I make in GWT aren't meant for Lynx users. They aren't meant for people with Pentium 2 computers. They aren't meant for anal fucks who won't turn JS on.
Kind of like vodeogames, they are intended for people who WANT to use these things. They are for people who WANt to experiance NEW th
TheServerSide presentation (Score:2, Informative)
GWT is good but I am using Dojo (Score:2)
Problem is that it is Java centric. Since I don't need to do too much AJAX, I decided that it would be easier for me to learn how to use the Dojo Javascript library. For me, this works for my Common Lisp and Java based web apps. Dojo also works well with Rails, but Rail's built in AJAX support is so good I have (so far) just used that.
If you prefer C++ ... (Score:2, Interesting)
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.
Re: (Score:2)
It is all about the right tool for the job. Loading an entire virtual machine to display an animation was not a good use of Java. But Java applets would be very useful if Java were built in to most browsers instead of a large plugin.
Heck, if Java were built
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)
Re: (Score:2, Interesting)
And big J
Re: (Score:2)
The advantage of an applet is that it's more cross-platform for what it can do (I know that "hello world" in Javascript is very cross-platform, but who cares about that shallow level of compatibility?). Now with the new license Java will be 100% friendly to all environments without exceptions (including all open source OSes).
I think you have a point. Yet Javascript is
Re: (Score:2)
You know anyone who accesses your webpage will have a browser. Its likely that they will be able to active JavaScript in their browser if they need to. Its less likely that they will have a JVM installed or have the permissions need to install a JVM; plus a JVM install takes considerably more time than loading some JavaScript.