Google Releases AJAX Framework
maquina writes "Google released a new AJAX framework based on Java. From Google's mouth: "Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language." This impressive framework promises to make AJAX available to the masses and is one more step towards Google becoming the de facto Internet platform provider."
Your source of, vangaurd of and now creator of all your information.
...is by far and above the fact that you are coding your website in Java, using their API and SWT-like objects, and the Javascript/Ajax is then generated from your classes.
I think Google is mostly responsible for launching the AJAX trend, and now they're moving in a brand new direction? Beautiful.
Oh and they even distributed half of the source code for the project in the JAR files.
I keep trying to read the story, and my brain just keeps seeing GOOGLE AJAX WEB DEVELOPMENT and filling in XML RUBY ON RAILS TAGBLOGCAST WEB 2.0.
xkcd.com - a webcomic of mathematics, love, and language.
Is there a way to filter out stores from the homepage by keyword? AJAX would be on my filter list.
Yahoo has already done this, but apparently they don't have fanboys like Google. http://developer.yahoo.com/yui/
There is such a thing?
I don't give a damn for a man that can only spell a word one way.
Mark Twain
Developers are tired of having to reinvent the wheel every time with dynamic components on web pages, and things like PEAR do not have all their component lib. in one centralized location like this. A developer framework for AJAX is definitely a revolutionary. It marks the move toward using web-based platforms for a greater and greater percentage of common computing functions.
Do not downmod posts "overrated" simply because you disagree with them.
...welcome our new buzzword-compliant overlords. MFG, all I read these days is Google, Java and/or AJAX.
No, they haven't - at least not unless you have some other information you're not sharing.
From the Google site:
From the Yahoo link you provided:
So, how is this the same thing?
I've seen ajax a few times....
But I usually don't inflict tired jokes on the slashdot audience (oh, wait, I do all the time, sorry)
There are shills on slashdot. Apparently, I'm one of them.
'cause i'm with this blog and I won't use it. I've already taken it (and ajaxtags) out of my current project and replaced it with js code based on DWR that won't conflict.
"But remember, most lynch mobs aren't this nice." (H.Simpson)
-- Joe
Bogtha Bogtha Bogtha
Prohibited Actions
Except for distributions for internal business and/or personal use to your employees or contractors in compliance with these Terms and Conditions, you may not distribute Google Web Toolkit Development Tools or any services or software associated with or derived from them, or modify, copy, license, or create derivative works from Google Web Toolkit Development Tools, unless you obtain Google's written permission in advance. If you wish to do any of the above, please contact us by emailing apis@google.com. You may not use the Google Web Toolkit Development Tools to develop or distribute products that violate the law or legal rights of third parties.
No, I'm not looking a gift horse in the mouth and why does this matter? Because I happen to prefer PHP for web development (just a personal preference). It would be nice to be able to move the JavaScript components off from the Java framework into a PHP based framework. Well, apparantly you can't do that without special permission.
BTW, the Yahoo UI Library is BSD licensed.
Bogtha Bogtha Bogtha
I'm not into fanboyism but this is very very impressive. I took a look at the demos. The Desktop App Clone is particularly very impressive and it shows you what can be achieved with this stuff! I've never liked web development for the compatibility nightmare and plus the fact that it's a very messy business. Java with it's object oriented goodness will allow feature full applications to be developed extremely quickly!
The oft-copied 'google suggest' dropdown stuff. It's not something demoed in the 'kitchensink' app they provide at http://code.google.com/webtoolkit/documentation/ex amples/kitchensink/.
.net can use atlas for most of these features, people using Ruby or other scripting langauges probably have bindings to scriptaculous and other libraries to handle most of this. There were/are probably Java bindings already for scriptaculous, but this makes it easier for java people already used to swing/awt stuff.
:)
I agree with someone else that the Yahoo UI (yui) toolkit seems to get ignored a bit, but I think this plays to a different crowd.
1) This is a java-based thing only it seems. People writing
2) The YUI stuff was more javascript oriented, and, from my experience, difficult to use in some settings. I had a hard time getting the slider stuff to work as needed based solely on their code and one example page, for example. Perhaps that makes me not as l33t as some others who can debug others' javascript in their sleep - I dunno. I do know that if Google makes this easy for people to adopt, it'll take off. Partially because there's a lot of google love amongst early-adopters in the tech community, and partially because making things easy is just a good way to attract people.
3) With the YUI stuff, Yahoo was/is seeming to cater to the scripting crowd more (witness the native serialized PHP responses you can get back). If google is going after the "I write Java apps" crowd, they may be able to bring in a new set of people to web-app development who before now were not in the web space.
I interviewed one of the Yahoo engineers who worked on the YUI widgets release at my podcast - http://webdevradio.com - you can get some more perspective on what Yahoo was/is doing and trying to achieve with that move.
Just some random thoughts...
creation science book
This is great news for all the developers out there. Google by doing this has proved once again that smart business practices and investments make a company, now how much software they patent and lock down. They specfically say that you can create applications like Google Maps and Gmail using their framework. Is someone gonna create a new Gmail or seach engine and take over Google? Prolly not, but Google has shown that not only can it develop high power applications and set the footprints for following developers, but they can also help the community advance just as they have. Just one of the many reasons I love Google.
Bryan
Sorry, but I have to give it to someone other than Microsoft. While they did essentially invent the tech behind Ajax, the only major project they used it on was basically something that was closed. I don't mean source, but not open to the public. You only saw it if you had an organization using Outlook/Exchange in the first place, which still excluded a huge majority of people using the web. Had they ported hotmail to the OWA interface, that would have been a major revolution far greater than google maps or anything else. But they didn't.
creation science book
.NET and AJAX really don't play nicely.
Have you seen ICallbackEventHandler in ASP.NET 2 and MS's own ATLAS toolkit?
This impressive framework promises to make AJAX available to the masses and is one more step towards Google becoming the de facto Internet platform provider."
Erm, actually they're playing catch up. From what I can tell, GWT is rather inferior to YUI.
Completely new to the technology and thinking on top of my mind whether it would be possible to create a Window Manager running as an AJAX application within a browser...
"linux" is a very common word and was not included in your search.
I Do Not Like Green Eggs and Ham! Did anyone else think this when read this post?
Yes, that this kit clearly isn't aimed at you.
The browser vendors consider this "a really good thing" because it offers "product differentiation" and "market segment focus". The cost in human lives is not an issue.
The Russians have won. They have made the world a cesspool of distrust, greed, fear and hate.
Sounds great for really large sites, but for the average developer, is it an improvement? Sure, if you're already coding the site in Java, it's a great tool. Still, I'd just as soon keep my existing AJAX class in an external JavaScript file and include it with 1 line of html. Customizing it for each site is quite fast, and it leaves me with full control. It's the same major complaint I have against ASP.NET: Why learn code to generate your code when you can cut out the middle man and write your own *exactly* how you want it?
I have, but I don't feel comfortable yet, implementing a new MS technology. MS sometimes adopts, and then extinquishes new thing. AJAX, being universal, wouldn't succum to this, imo.
This is an impressive toolkit and a nice approach, but Google is not the first to do this. Has anyone heard of ThinWire (http://www.thinwire.com/)? There are already production applications in place built on this framework.
I didn't know Google was a Java shop. Do they mainly code serverside stuff in Java these days? If so, which technology are they using (O/R mapper, servlet container, tricks & quirks). Would be interesting to know.
Any infos?
So how exactly is this in any way easier than simply dragging and dropping your AJAX components onto your project using the Java Studio Creator ?
As you can read here they're offering a large set of AJAX components which can be used. IMO its a much saner approach than to rely on some "code creating" toolkit. I'd rather decently write my components once and then start using them many times, knowing that it doesn't contain any backdoors and simply does what it should and nothing else. Also see this site.
More like .NET isn't ready for AJAX. AJAX doesn't really use any new web technologies, it just applies existing ones in a somewhat new way. ASP.NET OTOH is a framework that tries to completely shield the developer from the underlying web technologies, and it does so with varying degrees of success, in the process turning out web technology idiots.
It's really nice to see a company releasing new products to stay competitive instead of using litigation to destroy their competitors. I hope they can keep it up.
Search Slashdot for ATLAS (and make sure to copy over all of the negative posts about why people don't want this).
.NET GUI objects to render browser-compliant javascript and HTML.
Atlas is the AJAX framework built by Microsoft that allows you to use
It is a much more proper predecessor to Google's release, compared with Yahoo!'s offering (which I believe MS also predated).
Slashcode bug # 497457 - unfixed since December 2001 - Go look it up!
o/~ Join us now and share the software
This is actually pretty impressive. It lets you do all the complex things that a real OO language allows, but then makes it just work. It lets you use all the java development tools like debuggers, code generation, documentation, unit testing, etc. If you are using java on the server side, it makes it amazingly simple to integrate client & server side stuff.
The yahoo thing is just an ajax library. This is a new way of developing ajax.
http://developers.slashdot.org/article.pl?sid=06/0 2/14/1326238
Overlooked in what way? The title of the article was "Google Releases AJAX Framework," not "A Comprehensive Listing of All AJAX Toolkits."
-rd
I was all excited to start learning to do AJAX the Google way (Because I really don't have time to navigate the browser incompatibility minefield). I pulled up a demo in IE7... Blammo, error on page.
I'm excited for this tool, but I can't use it yet. Bummer.
~D
This sig has been enciphered with a one-time pad. It could say almost anything.
There is a certain amount of genius in this. For years I've wondered what the best way to combine HTML/Javascript and OO language is, and now it seems obvious: create a tool kit that structures and generates the HTML for you, just as a window toolkit handles it for you. Genius.
I've never been a big fan of % languages. Mixing HTML and anything always looks, bad and fails misrably at seperating code from presentation. Seperating code from presentation on a dynamic page is impossible, but sticking the code in the mark-up language is the wrong compromise, but was the better of two evils (see JSP/Servlets).
Actually having Java classes that represent HTML objects and using them to create dynamic webpages makes so much sense, I'm suprised no one, especially Sun, have tried it earlier.
Scared of flying, pointy things snce 1979!
Sorry to be off topic (and an annoying guy that goes around correcting people), but about your tagline... Aren't you misattributing an Arthur C. Clarke quote?
Ask me about my sig!
From: http://code.google.com/webtoolkit/faq.html
"What's the catch? Does Google own my GWT application? Do I have to run AdSense? Do I have to give Google my first-born child?
There's no catch, we promise. See the Terms of Use for the nitty gritty details."
I checked the ToU, apparently you have to make Adsense space on your *second* born child. Premium crib space is up to eCPM of $0.42 cents too, diapers down to under 10 cents.
Very clever of them, I bet most people wouldn't check...
I haven't tried this yet, but I'm wary of any Java->JavaScript/HTML compiler. Inevitably, there will be something you need to work around in the JS/HTML but can't.
It's just an abstraction layer which may be nice for simple things that don't need much customization but in reality, it will end up being something that gets in the way and you have to hack some workarounds to get exactly what you want.
Really, how hard is it to code JavaScript and HTML? AJAX isn't braing surgery or rocket science. Most browser incompatabilities are well-known and there are published workarounds that are easy to find if you can't figure them out yourself.
I'd rather hand code my HTML/CSS so I get exactly what I want (and nothing extra). I hate auto-generated HTML.
And here I was all ready to take off my tinfoil hat.
Beg to differ. JavaScript has just as much "modularity" as any other object-oriented language; methods like JSON and libraries like Dojo, Prototype, and the aforementioned Yahoo! Web Services APIs are proof.
Every few years there comes along Yet Another Initiative to fire all the webdevs. No disrepect to Google's engineers, who are clearly brilliant, but we've been there and done that. For a good time, open up Firefox's DOM Inspector, crack into their Kitchen Sink demo, and boggle over the iframes and tables and embedded JavaScript, oh my!
I haven't heard anyone comment about what I think is a great feature in this toolkit:
I know this is something you can hack together if you're writing your own hand-crafted js, but this will be a nice feature -- I haven't looked at the toolkit yet, but I wonder how easy to use this will be.
Have any of the other frameworks provided this mechanism?
Fine, but what Google did is neither really. It's a way of writing Java code (which has great error checking) to produce XHTML and JavaScript.
Java is still involved, but it really isn't in either a client or server roles here.
I wonder how difficult it will be to write degradable applications with this toolkit. The demo applications I played with do nothing at all with javascript disabled... they're just a script tag in a body tag, so they make no attempt to render the application using plain HTML. I know they're just demos, but it won't save any time if you have to develop the non-js version separately... which is a problem particularly for those of us who have to develop to accessibility standards.
Also, this is coming right on the heels of the buzz about Oracle's AJAX Framework... and of course there's the Eclipse AJAX Toolkit Framework, which uses Dojo, Zimbra, and OpenRico (which in turn uses prototype)... others have mentioned Yahoo!'s toolkit and Atlas, as well, not to mention Rails... My point is that there are suddenly a ton of frameworks that all have slightly different approaches to the whole AJAX idea. Some are higher-level, some lower; some target a specific server backend; some offer UI libraries... Any or all of these might merge or die off or be made irrelevant at any time. It's almost harder to develop AJAXy applications now than back when you had to write your own HTTP request code... sure, you can knock one out in ten minutes now, but you spend the time you saved choosing the toolset beforehand.
I think I'll wait a bit... we've put the scorpions in the box and shaken it, so let's see who survives.
perl -e 'foreach(values %SIG){$_="IGNORE";}while(){}'
Coding your UI in java and having it translated into javascript and html without having to worry about cross browser compatibility?
Sounds familiar. It's rather like the echo framework
The big differences I see are:
1) Google toolkit advantages:
- No load on the server to render the UI. All ui code runs on the browser, so this may help server scalability.
2) Echo advantages:
- Fully open source.
- Richer set of ui components (IMO - see the demo at http://demo.nextapp.com/Demo/app )
-- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz
Are they using this for their own webapps?
Jeez. Yeah. My filter list:
AJAX
Wii
Wii
Wii
Wii
Google
Vista
...when Google started vacuuming up a lot of stray Java talent? I'm thinking of folks like Josh Bloch (author of Effective Java, one of the best books I've ever read on Java) and Adam Bosworth (former CTO of BEA). I was always sort of curious about what Google was up to. I've got no proof that either of these gentlemen we involved in GWT, but I'd be surprised if they weren't. Good job, Google.
I will see your ICallbackEventHandler and raise you a ActionListener It existed long before Atlas. I do both
ASP.NET OTOH is a framework that tries to completely shield the developer from the underlying web technologies, and it does so with varying degrees of success, in the process turning out web technology idiots.
Huh? ASPX pages are HTML pages with support for server-side script blocks just like PHP or any other web framework. You can plug in pre-defined control objects, just like any other web framework. Or you can just write HTML. What's your problem with it?
Note that this toolkit primarly seem to try solve the problems of browser quirks, more efficiently design web sites using AJAX, and do remote procedure calls, not really to leverage the power of Java development and its language to web developers and Javascript.
The Google Web Toolkit supports only a small fraction of the Java Standard Library and seem to be able to replicate the functionality of only a few classes through its emulation library.
This is the stuff from the Java libraries that you can use and have it be able to "translate" your work: java.lang classes and java.util classes.
Beware: In C++, your friends can see your privates!
O.K... I've got to have the doctor change my caffeine prescription. The quote (and sig.) is a clever reversal of Clarke's law. You may take the rest of my Karma points now.
Ask me about my sig!
Central hype-limit theorem: once in a while, somebody on SD says something positively brilliant. This was it. Mod it up.
In fact, rather than create their own framework, some sort of Google tie-in with Ruby On Rails would have been truly explosive.
I haven't dug all the way through this yet, but I'd assume you can't just turn any old Java app into HTML+JS web app. I doubt there's support for the Swing API or even the SWT (though it looks at first glance to be based more off of SWT?). Am I right to assume you have to use their UI classes to get this to work? Other than that does it support using the rest of the API?
Yeah, I was actually wondering about this. Google claims you don't need to know the quirks of browser programming, but for those of us who are well versed in JS and not-so-much in java, this isn't necessarily a good thing. I'm also _somewhat_ wearly of generated code, however not too much a concern with it coming from google whom I have great faith in.
I'm also certain that Java code cannot, in it's entirety and full functionality, translate into js. This is where my confusion sets in. How can you debug javascript, in Java, before it has been "translated" to javascript. What if I create an object in java using inheritance, interfaces, constructors, destructors, function overloading... etc. How would that ever possibly translate? Or am i missing the point?
Finally, when I hear "AJAX Framework," I think of a framework that facilitates the creation of both a server and client (which I am currently working on btw, to be released open source shortly). As far as I can tell, Google's framework is for the development of the client portion of an AJAX application.
Somebody, please enlighten me.
Similes are like metaphors
Is it free-/opensoftware?
In their Kitchen Sink Demo, click on the text tab. In the Text area box, type some text in. Then, highlight some of it. Notice how the Selection on the right shows what you have highlighted. Now, highlight some other text, but drag out of the window before you release the mouse button. Now, you have text in the box highlighted, but the selection indicates the wrong thing. It looks like they are updating the selection field only on mouseup...
x amples/kitchensink/demo.html#Text
http://code.google.com/webtoolkit/documentation/e
Randy.Flood@RHCE2B.COM
I keep seeing the phrase "Internet platform". Is there a coherent definition of this phrase? Or is it another of those phrases like "Web 2.0" that means whatever the writer wants it to mean, and is just used to impress the newbies with something that sound technical but isn't?
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
Hm, for the first time ever, Google is playing catch-up with Microsoft. Microsoft has in fact released an AJAX toolkit a long time ago -- see ATLAS which is currently in community technology preview.
It's also free, so can anyone tell my Google's is better (and I don't want to hear arguments like "it's google's!")? Has anybody done a comparison?
I could easily extend this argument and say that everyone just needs to learn assembler.
I agree it is important to know lower level concepts at a certain level. However, should I really need to learn every intricacy of the bugs in the DOM of IE vs. Mozilla in order to be productive with AJAX?
--
I suppose that's nice if you actually like programming in Java.
I'll stick to rolling my own, thanks. I suspect I wouldn't be able to use a tool like this for more than a half hour without finding something I want to do that the toolkit doesn't support. What then? Can you edit the JavaScript output by hand or is it totally obfuscated?
If I don't put anything here, will anyone recognize me anymore?
Environment: Windows XP Pro, Firefox 1.5.0.3
Test Case:
1. Launch Kitchen Sink Demo
2. Select the "popup" group from the list on the left
3. Click the Show Dialog button
4. Drag the dialog that pops up to the left of your browser window until the mouse pointer and the dialog are completely off the screen, and release it there (it's easiest to do if you have dual monitors or you reduce your browser window so you can "drop" the dialog on the desktop. Grab hold of the dialog on the very right edge of the title bar).
Result: The dialog is no longer in the browser and visible. You can't re-drag it back into view. And because it's a modal dialog, the controls that are visible are no longer clickable.
If anyone from Google is reading this, would I qualify for a job now? :-)
Phemur
Sample of the javascript code sent to the browser:
W idget'
_.c = 'com.google.gwt.sample.dynatable.client.DynaTable
It's not a safe practice to expose java host classes to the client.
Shame, Google, shame.
As fascinating as all this Yahoo vs Google bickering is, it might be nice to have a discussion about the framework itself. For instance, how reliable is the Java-to-JS compiler? What are the odds that something breaks and then I can't debug it because I either don't know JavaScript or the JavaScript the compiler spit out is illegible? How do I know the Google team has anticipated all the things that I can do with AWT that I might want to do in the browser? Admittedly, I should read the documentation more thoroughly, but I still think these are good questions.
On a related note, since I've recently started programming in ASP.NET and C# (not by my own choice), does anyone care to compare GWT to Atlas?
I looked at the license and it is free to use (i.e. free as in beer), but not free to modify, copy, or distribute (free as in speech).
We've been working on C++ AJAX toolkit called Wt. Similar to GWT, it completely hides the complexity resulting from Javascript ui logic, DHTML, XML, etc associated with creating AJAX applications. Best of all, it is pattterned from the Qt toolkit and allows you to design webapps as you would in any desktop Qt application.
It is completely object-oriented and the event mechanism is even handled by the signal and slots approach, allowing the same programming elegance found in Qt-based software. It allows you to focus on the design and logic of your program in one place and one place only! Quite similar to how Qt hides the details of the underlying window system from the programmer.
See this overview and a sample
Note the familar Qt-like syntax in creating a tree widget. [kuleuven.ac.be]
If you like writing GUI apps in Qt and would like to do the same in AJAX apps including the possiblity to integrate with desktop programs, please check it out!
I am surprised that no one has yet brought up lisp macros which can be used to develop a similar framework. Code can be written in Lisp and compiles/generates to javascript. See http://www.cliki.net/Parenscript and http://www.cliki.net/jsgen for implementations in common lisp. The problem I see with any form of generated javascript is that it will be hard to debug should something unexpectedly go wrong.
Actually, GWT works with all server technologies (PHP, ASP, Java, etc). GWT is primarily a client-side technology that is deployed as HTML and JavaScript that can be served by any web server. If you want to do RPCs from GWT to a non-Java server, that is easy too; check out our JSON RPC example here: http://code.google.com/webtoolkit/documentation/ex amples/jsonrpc/. We created this example to demonstrate this exact use case.
Bret Taylor
Product Manager, Google Web Toolkit
> I could easily extend this argument and say that everyone just needs to learn assembler.
Actually, that would be wrong, since the lowest practical denominator are the OS APIs, not CPU registers. The language is quite immaterial.
> should I really need to learn every intricacy of the bugs in the DOM of IE vs. Mozilla in order to be productive with AJAX?
You shouldn't have to, but it helps. Besides, these frameworks address a lot more than just AJAX--in fact, some don't even address AJAX at all. The real issue here is the abstraction of page creation on the server side. Instead of generating raw HTML+JavaScript from within server-side executable pages (PHP, ASP etc.) using a language that doesn't introduce any serious abstractions, we are now creating web pages as a side effect of manipulating fairly abstracted classes. This is nifty and very productivity enhancing, but you are developing around a different paradigm, and different frameworks will have slightly different takes on this paradigm. And if there are bugs or glitches in the framework, you have to drop down to HTML+JavaScript and examine the client side code that is generated to see what the problem is. Then you have to dig through the framework classes to find where the problem is, provided you even have access to the source code. A good framework will give you lots of opportunities to intervene in the page creation process to manipulate the final output.
Anyway, my main concern is that when you move away from PHP or ASP (which mainly differ in syntax more than anything else) and target a particular framework as your lowest level API (so to speak), you become dependent on that particular paradigm. Switching to a different framework may require considerable relearning of class hierarchies and the way things are done. Still, given a significant overall productivity jump, this may be acceptable overall.
"Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language."
Does this mean that Google will finally be able to get their apps working properly in all of the major browsers?
Why am I not brimming with confidence?
-30-
I'm not sure if this has anything to do with my post at all...
I'm also certain that Java code cannot, in it's entirety and full functionality, translate into js. This is where my confusion sets in. How can you debug javascript, in Java, before it has been "translated" to javascript. What if I create an object in java using inheritance, interfaces, constructors, destructors, function overloading... etc. How would that ever possibly translate? Or am i missing the point?
How about you read the docs? It's all there. Partial support of the java.util and java.lang packages. No destructor support...and interfaces are only used on the Java side for type-checking (which is fine, it's what they're for). Furthermore, Javascript supports inheritance through the prototype chain already. There are also constructors.
As far as overloading goes, as long as you're controlling the compiler, you can choose to output multiple methods - one for each overload.
AJAX, for me, is very simple to understand. I just don't see the need for complexity. Consider the following reasons.
I find that using HTML with CSS to be simple.
I find that using HTML, CSS, with javascript to be simple
I find that using HTML, CSS, javascript, XML, XSLT to be simple.
I find that using HTML, CSS, javascript, XML, XSLT, "Server Side Language that Handles WebServices", XSD to be simple.
I find that using HTML, CSS, XML, XSLT, "Server Side Language that Handles WebServices", XSD to be simple.
On should notice that at this point that javascript is purly optional. Consider the argument that one can use javascript as a crutch until one is more familiar with XML. Also, javascript could be used to help the User with various edit checkings.
This is not meant to make small these framework developer's creativities, I'm just not seeing the need for complexity of using Java or Microsoft Frameworks for what can easily be done by using Notepad/vi. My webservice language of choice is PERL; But PHP, C#, Ruby, VB, Python, any language that could do the job of web services would work just as well.
My point is, these frameworks look like a laced version of "Bloat".
If youre a .NET programmer, be sure to check out Atlas, Microsoft's AJAX framework.
Not to be confused with Links.
Also, the fact that there have always been buzzwords does not make buzzwords more palatable.
Calling Java code from Javascript.
I thought you want a seperation of client code and server code - at least not drive the server from the client. Is this safe from a security perspective?
I fail to see where the massive amounts of enterprise Ruby applications really are.
Ruby wants to solve a problem that has been solved already.
This is nice but fairly wacky. It conflates two separate ideas:
1) Browser-independent toolkit.
2) Java into JavaScript.
The second one no doubt appeals to many, although not to me since I am perfectly comfortable writing JavaScript. On the other hand, I'd love to see Google's take on the all-too-common browser-independent toolkit in *JavaScript*, but apparently I'm not going to!
It will be ok to be a web technology idiot once HTML & Javascript can be used like Assembly. There are many programmers that are Assembly idiots, but it doesn't matter since the compilers create perfect assembly code for you. Even though HTML & Javascript are human readable, they are a pain to use directly since you either have to find or build your own higher level widgets and functions. HTML is especially difficult to separate into components when you are writing it by hand, since it is just a big string of text. Because of this, it is incredibly difficult to combine two different groups of widgets since you can't define the parameters or return values of blocks of HTML so that you can validate that two chunks work together.
AJAX libraries have only become possible because development of IE has been stagnant, and development of Firefox/Mozilla has been very backwards compatible. Future versions of IE have the potential of killing AJAX libraries unless the popularity of cross-browser supporting websites prevents new incompatible versions of IE from gaining market share.
I hava a better idea -- write an applet. You can then have a real gui.
I'll never understand why HotJava died -- running applets on HotJava was a joy -- instantaneous startup.
Don't forget those, as well. Spry is being released under an OS license. All this makes it very difficult to pick a simple, efficient framework to base future projects on. *Sigh*
Future versions of IE have the potential of killing AJAX libraries unless the popularity of cross-browser supporting websites prevents new incompatible versions of IE from gaining market share.
Huh? At the very least breaking the existing XmlHttp mechanisms in IE would break Outlook Web Access on old Exchange installs and they'd never do that.
IE has always been very backwards compatible too.
In using Java to write JavaScript?
I have to admit that the live demo seemd to have some interesting things to offer. Thanks for the link.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I think you might be mis-interpreting what this thing does. Unless I've been seriously mis-guided I don't think this--at all--aims to replace PHP or ASP, or Servlets or any of those server side technologies.
:)
I believe this serves a primary purpose of enhancing the UI and any client-side processing that might be done as part of an app. In no way do I see it removing or replacing much of the server-side data validation or processing. I bet this stuff works great along side EJB, RoR, or PHP. Just paste the generated JavaScript right in there amongst your PHP code
--
First I want to say "Thank you" for releasing the project for free use and a double "Thank you" for having large portions under the Apache license.
.java files have an Apache license prefixed. Excellent!
I figured that the output would be owned by the user, but the terms initially looked like the toolkit itself was restricted except for the parts you got from other projects.
I opened the tarball and the two jars and have been reviewing some of the files. I see that substantial numbers of the
Once you unzip/untar the distribution and open the jars, lots of the classes are accompanied by .java source with an Apache license.
Forget "acceptable" - website design and development is perhaps the most practical science ever created. Nobody "does things because they can" in web development - people create toolkits, APIs, services, layouts, hacks, and other bits of code for the Web so that other people can use them to *actually build websites.* That means productivity is not only key, but it is desired at the practical exclusivity of knowledge of the code. In fact, if this toolkit means an art student largely ignorant of programming constructs can create a website like Flickr or Slashdot or a smoother looking Gmail, then I applaud that, because too few web designers really have any grasp of the word design.
The other difference between websites and most programs is that a lot of standalone programs are designed for niche users with specific needs, and can't be translated for other uses easily, whereas most website programming is designed out of flexibility. Because the web uses such loose languages (XML, JSON, SOAP, etc) toolkits are a great way to address the flexibility in a more intuitive way.
It's apples to oranges, really. Web design is 100% practicality.
...might be an alternative for those looking for an AJAX GUI toolkit/IDE as opposed to a Java-based AJAX code generator.
They have several "developer" and "public-display" licenses, although obviously a commercial solution: http://www.tibco.com/software/ria/default.jsp
body massage!
If you want to completely seperate presentation from logic, you have a basic html page with javascript calling whatever on the server which just returns data structures that the js then displays as necessary.
This apears to be just another framework for developers too damn lazy to learn how to code in a stateless env, so they try to come up with ways to make a ~simulated~ stateful env. Just like ASP.NET.
The compiled code on the servers should be returning nothing but data structures from a post or get request. Why should the back end care if the request is coming from a web page or cell phone?
This API (like many if not most) binds the back end code and logic to one particular type of interface, so Im not sure how this is seperating logic from presentation; its tightly binding them together.
Not disagreeing with the rest — not competent to judge — but I know enough to know that. Guilt-by-association damn near fatally weakens your argument, though.
As always, all IMO. Insert "I think" everywhere grammatically possible.
1. Get Google's attention... http://developers.slashdot.org/article.pl?sid=05/0 2/09/1836256
2. ???
3. Profit!
> I think you might be mis-interpreting what this thing does.
Wow, I got this completely wrong. I admit I didn't RTFA, and simply assumed JSP or something like that as soon as I saw Java mentioned. This thing actually creates clean HTML+JavaScript files, which you're right, you can simply integrate with existing server side code. In fact, I may have to play with this some.
"You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML." .NET works.
It's kinda like how
What are the chances that a related package using Python instead of Java will be released/developed some time in the near future?
I don't know the technical obstacles to doing this (and please elaborate on this if you want), but I think it'd be a useful addition. I'm sure there's lots of people who use Python, but not Java (for a variety of reasons).
Thanks!
Salis
Favorite
That's like saying RISC assembler is easier to debug if you write it yourself than it is to debug if generated by a compiler.
Well, not exactly, but the tools for debugging JavaScript in browsers suck. I'd rather have to worry about compiler bugs in the Java->JS compiler.
Quick comparison of "program AJAX UI in Java frameworks":
echo2: released, server side executed, wysisyg ui editor
millstone: prerelease, server side executed, theme separated from application
zk: released, server side executed, xul support
google web toolkit: beta, java executed on client, google brand
All of the toolkits try to solve the same problem - allow creation of rich web ui with Java and avoid infinite testing often with JavaScript centric AJAX programming. From technical point of view, millstone, echo2 and fk are fairly similar. Google stands out with novel idea of cross-compiling java to javascript, that might make UI more responsive, lower server load and introduce security problems and make creation of client-server separation harder.
From marketing point of view the game is quite clear - Google is the brand.
echo2, zk and millstone are backed by small companies that support and live from the frameworks. All those products somehow combine open source licensing with business. Googles motivations are not clear in this stage.
For a quick demo about Millstone, see:
http://demo.itmill.com/AJAX/
Disclaimer: I am CEO of IT Mill Ltd that is the company behind Millstone UI Library.
Vaadin - the best open source framework for building web applications in Java - no plug
I don't know how many of the people making glib, sarcastic observations here have actually used Java from within Eclipse, but having recently worked on a project involving Java, JavaScript, and C all at once, I'm practically moist with glee that I may have much less JavaScript to deal with and debug natively. If you have to deal with Java, Eclipse is the way to go.
Worst. Kept. Secret. Ever. Morfik builds AJAX RAD IDE. Google releases AJAX RAD IDE. Morfik uses a "compiler" to take Java and turn it into JavaScript, CSS, DHTML, etc. Google releases "compiler" to take Java and turn it into JavaScrip, CSS, DHTML, etc.
I'm SOOOOOOOOOOOOOOOOO surprised. It was nice to see that these two companies finally teamed up to get this into the hands of the masses. Good job!
Friends help you move. Real friends help you move bodies.
Never forget: 2 + 2 = 5 for extremely large values of 2.
What about people who use screen readers and such? Taking are of those people also means your site can be used for government and will probably work well with various other devices.
>>Even though HTML & Javascript are human readable, they are a pain
>>to use directly since you either have to find or build your own
>>higher level widgets and functions.
you seem to be missing the point of ajax as you're only talking about html & javascript. making interactive pages need not ready any server side requests, which is where ajax comes in.
>>HTML is especially difficult to separate into components when you
>>are writing it by hand, since it is just a big string of text.
each component should have defined set of elements used by the javascript. certain elements will trigger events, others will be used for input and you may need some to display results. depending on the situation the markup can be static or you can create it on the fly with the DOM. either way you just need to know where to drop the markup or attach the root element of the component, depending on which method you went for.
if you start out from the beginning with this in mind its actualy relatively easy to do. if you're going to have a bunch of different components then have a test page for each where people using it can see the bare markup along with any javascript calls required.
just don't get bogged down thinking about your html as a big string of text. your page should be made of components, which in turn are blocks of elements.
boab.
From what I can see in the documentation and sample source code, the GWT produces the client-side code and an extended servlet. This requires a J2EE container (e.g. Tomcat) to be running on the web server, in order to deploy the application to the Web.
However, most consumer hosting providers offer LAMP (Linux, Apache, MySQL, PHP) style packages rather than J2EE, so I'm curious to know if the GWT offers any support for this as the server-side AJAX component? If not, and if it relies on a J2EE-powered server, it's surely missing a trick.
I have mentioned Laszlo a fair few times here... but Laszlo does what this framework does, but far better, far more extensively, in an easier to code in language (XML + Javascript), and can render your output to Flash OR DHTML from the same source code (note that the DHTML output is in pre-beta form).
Hurray for Google for providing this, and it'll be nice for some... but it's not revolutionary.
Same here.
lightweight huh?
Hi Bret, could you pass this to the Google Desktop team please?
I recently received a Dell laptop, WinXP SP2. It came pre-loaded with Google desktop. I did NOT enable Google desktop. I also patched WinXP from the MS update site.
I do a lot of Java/JSP development, using Java 1.5, Eclipse, MyEclipse, and Tomcat. All this resides on the laptop and browser access is via the 127.0.0.1 loopback. I am on an Intranet which had no access to the Internet.
1.
I was getting random "Page not found" errors. I could not find a pattern to the errors. The same page would work 10 times, would fail twice, then would work again. When it failed I saw that a Google search was being performed on the http://127.0.0.1/ address.
I went through every browser option I could find to turn off ALL automated searches for web links. Still had the problems. I d/l and installed a special patch which was supposed to fix a loop-back problem in the WinXP firewall. Still had the problems.
2. When I am doing testing I do a lot of back and forthing between pages. This is usually between the LIST page and the EDIT page. The LIST page displays a bunch of rows. You click on the Edit button, and that row is loaded into the EDIT page. Clicking on Save saves the info to the database, and takes you back to the LIST page.
I noticed that after the EDIT page was loaded, a phantom call to the LIST servlet was being made. This was not in any part of the code and was not an action I initiated. Trying out the LIST/EDIT cycle from another machine (Win2K) did not cause this to happen.
Note that I try REALLY hard to turn off all browser caching through every header directive I could locate.
The Fix.
After a frustrating week, and since the loopback failure was using Google, I tried to remove Google Desktop. I used the Uninstall file. The un-install stated that it completed successfully, BUT what i really did was to turn it on. I now had an extra box in IE for Google Desktop!
Ok, I rooted through the registry and removed anything to do with Google. I deleted all the Google EXEs/ DLLs I could find.
Once this was done, the loopback error disappeared AND the phantom call to the LIST servlet went away. This was over three months ago.
I can only surmise that Google was intercepting page calls and:
- every so often it would "fail" the loopback and try to find it on the Internet
- in spite of all the no-cache directives, it noticed the pattern of LIST/ EDIT/ LIST/ EDIT, and "helpfully" tried to pre-fetch the LIST page
Just some thoughts.....
- - - - - - - - - - -
I am a programmer. I am paid to produce syntax not grammar. Deal with it.
In one sense this is true. However in ASP.Net you are encouraged to use the ASP.Net WebUI controls, which include postback, server side events etc. The reality is that these are implemented with client side Javascript and Postback, to force the request to the server. The end result is HTML and Javascript that is often unpleasant, doesn't conform to standards and not cross-browser compatible.
.Net for a living.
I should know, I code
meh
Looking at the kitchen sink demo -- Wouldn't it be so much better if HTML forms included all common UI elements, rather than web devs having to keep building them for themselves out of tonnes of html and javascript?
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
I guess I'm the only one here on the cutting edge, trying out IE7 B2.
The Google system does not work in IE7 B2.
Will Microsoft fix this,.... or simply let all of google's toys die as time passes, and the vast majority of people upgrade their browsers from IE6 to IE7?
George Bush + Linux = "I will not let information get in the way of the fight against Windows"