I'll also plug our GWT-based product, DotSpots. I'm dogfooding it on my blog at http://grack.com - just select one of the paragraphs or click one of the blue dots to see the UI. It's an example of a non-traditional GWT application: we're running our own GWT code inside of a foreign website. Our website is more of classic GWT application, but we compile both of those targets (as well as Chrome and Firefox extensions) from subsets of the same codebase.
The download package comes with a bundled sample database, so you can take it for a spin too. Feedback welcome.
- I was totally confused how to launch this - I couldn't discern any benefit of this over phpPgAdmin minus the nicely done interface - I couldn't discern any benefit of this over Aqua Data Studio, NaviCat, et al. sans pricing.
I'm really curious why you chose to do this as a web app. If the benefit is to give "managers" and others access to the database to run reporting, where is the graphing, pivot table, etc support? If it's to give other developers access, your desktop counterparts (specifically Aqua Data Studio) provide tools you are lacking (code completion, diagramming). Granted there is a sizable price difference, which could be a selling point, but again phpPgAdmin does all that you do and is free and extensible because it's OSS.
Ditto jawngee suggestion about creating "end user" pages with standard reports (e.g. graphs using http://www.simile-widgets.org/timeplot/). Allow me to let users view them without logging in. That is what cmd line can't do.
The product is still a few features away from being ready for the public launch, the value proposition should be more apparent when we get there.
If you don't want to modify the widget appearances or behaviors, Ext-GWT is nice.
If you aren't building a large web-app, Ext-GWT is the way to go.
But if you're one of them people who prefer to do TDD, or unit-test etc, avoid Ext-GWT at all cost.
If you want to personalize your app, avoid Ext-GWT at all cost.
If you want a solid (library) Java code, avoid Ext-GWT at all cost.
I've been using their code since MyGWT 0.4 and right now we're trying to get rid of it so bad.
I'll give you my personal reasons for liking GWT in a few short bullets.
1. Better tooling - IDE refactoring when I need to change things. Red squigglies when I make a typo or reference something thats not there. A real debugger with breakpoints for finding bugs. Auto completion and auto style formatting so I dont have to type so goddamn much.
2. Compiler optimizations - Your code gets faster and smaller. Write maintainable code, have it turned into performant code.
3. API's and libraries - easy client server RPC, discoverable wrappers for the DOM APIs. Reuseable widgets that have predictable structure/side effects!
4. Maintainable code base - If you worked with more than 4 engineers on a non-trivial product, you would understand the appeal of a Java code base. UIBinder lets me not worry about CSS name collisions.
I would go on, but you seem like a TLDR type of person, so it would probably be a waste of my time.
2. The new JS VMs do plenty of optimization
3. C has more libraries than Java. Lets use C for everything
4. Actually, there is a lot of evidence that maintainability is inversely related to the number of lines of code. The more lines, the more bugs. (I don't have time to find the studies. They are there if you Google them.)
I did read the article. I just wasn't interested in writing a treatise on the subject. Just wanted to give a counter point.
When I first started looking to do more dynamic web applications, I was convinced that toolkits like GWT and Echo2 where they way to go but I was reasoning from a Java developers perspective. It makes the job of a Java developer easier, while adding complexity to the task of the designer. This is all well and good when you have a 1-5 man team of experienced Java developers.
I now prefer to use Java (Ruby, C, whatever) to write business logic services on the server and use HTML, css and JavaScript on the client. by writing a UI controller in JavaScript that gets embedded into the HTML file via a script tag it gives very clean separation of HTML, CSS and code this allows a large team to work very productively. Designers work in HTML, CSS. UX developers work in pure JavaScript and business domain developers work in their language of choice.
This coupled with a CMS has allowed us to abandon the kludge of a server side document scripting language (asp, jsp, php) entirely and significantly reduced the complexity of delivering a web application.
You get things like CSS namespacing and obfuscation for free with this approach too.
It doesn't mean that everything needs to look like crap for the sake of consistency: just look at Cocoa-based software: you don't need a designer to build a great looking GUI on a Mac.
Why is web different? Because it stands with one foot in its past: a UI screen is treated like a "page", a magazine cover, hence the false need for a designer. The result? More often than not you get a gypsy blanket instead of a modern user interface.
This reminds me of the DOS era when developing a graphical application felt like building a game: you needed to design buttons, scrollers, etc. Yeah, funny I haven't thought about this before: web-based GUI feels a lot like MS DOS apps: for a developer as well as for the user.
You mentioned Cocoa and it is funny that you do, because I think that Apple is one of the ones that got it right (I have only done IPhone development, so forgive me if this does not apply to OSX proper). But with the nib file abstracted away from code it allows a designer to build screens, lay them out and then move them on in a work flow to a developer. Allot of the more modern desktop development languages / frameworks now have this separation but it is relatively new and the web seems doomed to follow every incarnation until it too finds that separation of different technologies is the cleanest way to build a system.
The web is a different beast, while there are pure application many of them are hybrids I think Linked-In or Facebook are a really good example of these hybrid application/documents. They are very interactive but at the end of the day they are a document that sums up either my personal or professional life. With them usability and design is just as important as the code that sits behind them.
There is wisdom in the middle.
http://github.com/flaub/DotWeb
Not much in terms of demos, but the core technology is all pretty much done. Plugins for FireFox (NPAPI-based) and IE work so that you can set breakpoints in Visual Studio. Web-mode does a decent job of optimizing right now because it does method dependency analysis.
Surely nothing new is being said here.