Choosing the right Tech for a New Project
No, I'm not going to tell you how to choose, I want to know how to choose
For about a year now I've been sitting on a project idea. I've prototyped a few things out, written some stuff down. I've talked to a handful of colleagues about it. Lately it has become something I am more and more interested in doing. Over the last year I've had very little time to spare to anything extra and that is the main reason for it staying on the back burner as long as it has. Now that I'm ready to take a more serious look into its viability I'm beginning to wonder what technical direction to take and how best to make that decision.
I remember reading this article titled "Why is the default answer always a web app?" and I think that is what really got me thinking about this. But more important to me than why the answer is always a web application is now how to choose.
Sun just release Java6u10 (yea, that's not odd at all) with a whole slew of cool new client side java (Swing) features. But that isn't enough to make up my mind. I guess I should say at this point that I have narrowed it down to a Java based web app (all Web2.0'y and stuff) or a Swing based Applet/JWS application. Whatever it is it has to be distributable and easily updated. I don't want to have to deliver an installer.
As I think about the possible features for this project it could really go either way. The first iteration of the project would actually be more work as a Swing app however, features that I have planned for later releases make a Swing app a whole lot more attractive choice. Just thinking about the amount of JavaScript I'd need, even using something like JQuery, makes me shudder.
To the point, I'm wondering what are some key factors that you consider when needing to make a similar choice? With as much as web applications are capable of today how do you decide on Swing and with the richness and pure Java solution that is Swing how do you decide on a web app? Specifically when the project can be viable either way.