I’m creating my first web application and I’m really confused as to what technology to go for.
My application needs to look serious (like an application), it doesn’t need many colorful graphical interfaces. It only needs a toolbar, a tab bar, a split panel (preferably 3 columns), an easily-formatable text field, and a status bar. It will connect to a MySQL database through PHP (unless I go for GWT). Users will upload files.
My evaluation of the options:
Flex: Probably the easiest to develop but I’m pretty sure my application is something one would use on an iPad and with Flash’s future on the iPad still unsure, I don’t want to take the risk, otherwise Flex would’ve been my choice.
jQuery: I’ve heard a lot about it and a lot of people recommend but I don’t know how easy it is to use and how customizable the look of my app is.
GWT: The problem with GWT is that it doesn’t have many widgets. Another problem is that I’m gonna have to host the files in AppEngine’s datastore and transfer them back and forth to a web server that will do operations on them (I need to process them) which adds more traffic and slows the process which worsens the user experience.
Closure: It has a nice toolbar and a nice text field. I’m not sure how easy it is to use. Plus, I read an article that makes it sound really bad.
Cappuccino: It has a very nice UI and it has a mac feel. I’m planning to give my application a mac feel anyway so this will save me a lot of theming. But if I go for this option I won’t be able to make use of HTML5’s new features (especially working offline).
Plain JS and HTML5: This gives me the most flexibility but it is the hardest to work for.
I’m sorry if this is subjective but I really need help with this.
In your case, you should go for jQuery. It’s simple and customizable (both technically and artistically). It’s also close to the basic “dom/js” way of doing thing, which is the “base” of web interactivity. Learning the basic is always beneficial, but it is usually slow to get result. In jQuery, it’s not. Ok, it would be faster in Ext-JS but you’ll gain more out of doing it in jQuery. It’s going to give you a better look at how web developing work.
GWT is simply awesome, but it requires you to know how web dev work, which is probably not your case considering this is your first web apps. Google is actually putting a lot of effort in it and it’s getting better every release (it is already pretty powerful).
Forget Flex for your first web apps. Flex is pretty neat, but it’s a whole other story. Learning how the web work first is important here too.
Ext-JS or Dojo are way too abstractive in my opinion. If you use any of them, you’ll end up being good at using them, and that’s it. If you wanna go to the realm of high-level framework, I’d suggest to go for GWT instead.
Don’t go for HTML5 for now. When all browser are going to interpret it perfectly at 85%+ it’s gonna be worth it. For now you’ll limit yourself to Safari-Chrome-Firefox. Even though all web developer hate IE, it still have (unfortunately) 60% of the market-share… so you’d lose a lot of potential customer.