I was recently having a discussion with some other webdevs about Google Web Toolkit, a Java-based library for creating dynamic, application-y websites.
GWT, as I see it, has two main ideas:
Idea 1 is sound, and IMHO completely inevitable. Idea 2 is laughably, embarrassingly wrong, and it's why nobody but Google is using GWT.
I will probably always be a web developer*, but I accept that at some point I will stop writing my HTML and CSS directly, and maybe at some point JavaScript too. Writing multiple times for multiple platforms is a problem that computing keeps solving, over and over. Each new language corrects deficiencies in the old ones, compresses idioms into new language constructs, and promises to work on more platforms without rewriting.
Eventually somebody will get it right for HTML and CSS. I'd love it if Y! were the company to come up with a HilariousLanguageNameHere -> universal HTML+CSS compiler. It's a hard problem, but we shouldn't shy away from those.
The key point about HLNH is that it will have to still look a lot like HTML does. The interface-first method of application development, where you see what your application looks like first, and then hook functionality into it, is one of the most important concepts that the web has given computing.
Hooking the idea of an interface language into code compiler process is a hard one, and one that Google hasn't solved. Where does HLNH sit in the flow, and interact with existing technologies?
It's a hard problem, and GWT is at best half of the solution, which is as good as no solution.
* The thing about the longevity of this blog is that if in 10 years time I get bored and become a monk or something this statement will still be here for you to laugh at.
Comments
greg
Laurie
In a visual basic or other programming GUI, what you're really building are forms. Each form has a particular purpose, and you have different shapes and sizes, but fundamentally you're still tied to a subset of interface components provided by your libraries. Apps built with these tools tend to have "buttonitis" or gigantic lists of menus. The designs are control-centric.
The web approach to design is information-centric. You don't have to have any menus or buttons. Web applications aren't operated, they're navigated, by clicking on links.The lack of interface cruft, the lack of standard controls, and the significantly more freeform approach to design in general puts it in a total class of its own for usability.
greg
I'm certainly not going to get baited with a strawman about the superiority of web apps vs. non because that's just silly.