Google just announced Google App Engine, and certainly (driven by Robert Scoble) that has been running like wildfire around the blogosphere. It solves some very interesting problems, and does it in a slick way, but it also creates some questions.
Google App Engine solves the following problems that I can see:
- Scalability
- Deployment
- Authentication
- Management
And it solves these in great ways that make sense, leveraging the resources that Google can bring to bear on the problem, and preventing the developers from having to reinvent all the infrastructure. Awesome.
Let's look at the problems that Google Web Toolkit solves:
- Cross-browser compatibility
- Lack of compile time error checking in interpreted languages
- Sophisticated handling of layout
- Architecture for creating custom controls and AJAX behaviors
- Asynchronous round-tripping to the back end correctly
- Sophisticated caching
- Image bundling
- Integrated best practices for handling browser history (back button support)
As you can see, these frameworks, both from the same company, are basically non-overlapping in the problems they solve. Imagine a combination, where you can easily create a GWT application and deploy it to App Engine! In some ways GWT is solving the client side of the big picture problem of writing web apps, and App Engine is solving the server side, with GWT doing some of the heavy lifting to allow seemless communication between them.
This is nirvana. Until they integrate them, Google has a big hole in their developer story. Once they get that tied together it will be amazingly difficult to compete against it.
Do you prefer big tools or small tools?
My preference is for small tools optimized to do things the way I want them done. So I prefer a mosaic of tools, and I use the one I want for what I want to do. But huge IDEs are the current style, almost purely for marketing reasons. This is one reason I dislike (even though I use) photoshop. It's huge, system eating, and unweildy. So is Visual Studio.
Do we need another dinosaur from Google? How about some small, fast mammals?
Posted by: JSB | 2008.04.08 at 18:40
First off, in an interview on the Google Developer Podcast, the App Engine team said that they are just using Python and the Python API they're offering as an initial launch offering for App Engine, and that they planned to integrate other tools over time.
Their forums have a bunch of suggested technologies, if you want to see one or the other get chosen, go over there and add you $.02.
As to JSB's dinosaur comment - I don't get it. App Engine embodies a fairly minimal Python API that as Andrew said solves a number of problems like maintaining consistent app state across a very large number of deployed nodes. Seems pretty nimble to me, have you actually looked at what's being offered?
As to monster IDEs, I can agree with you in theory, but in practice modern development and deployment environments really demand a fair bit of intelligence and support from the user's development environment. Why spend hours laboring over a ludicrously complex piece of required XML for the WAR or EAR you're trying to get out the door, when a good IDE can automate the entire process? (And we're not talking Wizards here generating crappy code - much of the contents of those 20 required XML files are boilerplate, and exquisitely easy to get wrong.)
Posted by: Chris Patti | 2008.05.09 at 11:40