views:

592

answers:

6

I have found related posts here but they don't apply completely.

I want to create a desktop like (RIA) web app, and I have several constrains:

  • I want to move as much computation as possible to the client and save money on hardware or hosting plans
  • I don't want to compile (qooxdoo and gwt are out)
  • I need to be able to create UI elements on the fly, generated by user actions
  • I want independence from server side technology (don't know what my hosting is going to be)
  • Since this looks like a client / server app already: I need data binding in the browser
  • And storage to put session state
  • And widgets with events

I have short listed:

The problem is, they all look awesome, but I know the devil is in the details.

For example I have heard that dojo is slow but I can't prove it or disprove it without actually spending a week on it (this is a part time personal project done at night mostly). Another example, Smartclient is said to be used by a lot of big companies which is supposed to be a good thing but it may very well be because of support arrangements and not technical merit alone. Also, their web site is soooo ugly that erodes the general initial impression.

I'm leaning towards Tibco GI -- BSD is good -- and mostly I would like to know if I will be repeating somebody else's big mistake

So, does anybody have any feedback on this? Any dos and don'ts ? Comments, trolls?

Any info will be appreciated

Thanks Jaime

+1  A: 

I know it's not on your short list, but I'd like to recommend ExtJS. There is a sweet Desktop demo here: http://extjs.com/deploy/dev/examples/desktop/desktop.html. It fills all of the requirements you list here.

Eric Wendelin
Thanks Eric, This might sound like heresy but I'm trying to avoid the GPL. Otherwise Ext is the best looking set of widgets out there -- that I know of.Jaime
Understandable. You might be surprised at how cheap developer licenses are for Ext, and you wouldn't have to worry about the GPL.
Eric Wendelin
+1  A: 

I would recommend looking at Flex.

mmattax
Thanks mmattax, but I really don't want to compile or require plugins.
A: 

I really like what I've seen of Dojo. Easy to impliment through markup or programatically and plenty of built-in functionality. Regarding Flex, not sure wrapping it all up in swf is such a great idea. This will more than likely hinder the product's accessiblity. Hopefully this is something your thinking about and something Dojo addresses.

+1  A: 

the devil is in the details.

Personally, I found Dojo awkward to use. That's just my opinion, mind, although my experience might be helpful to you - I wanted a collapsible tree control that worked just so, just how I wanted, and found trying to cajole Dojo in to working exactly the way I wanted was an effort. I can't recommend an alternative, either, so this answer sucks somewhat :-)

David Hicks
+1  A: 

IMO, the only reasons not to use Flex/Flash have to do with

1) Flash Player 9+ not being as universal as Javascript. In addition, you cannot make a UI that 'degrades gracefully': if you are expecting Flash and it's not there, your users are out of luck

2) Flash Player not being Open Standards/Open Web, and Adobe, like Microsoft or Apple or anybody else who will not open up the box completely, is evil by definition. There's a lot of merit to this argument because as things move forward, you never know what Adobe will do with Flash.

3) You say you don't want to compile... why this would be is beyond me, but Flash requires compilation.

I know people will disagree with me, but Flex/Flex is much more powerful and has better widgets than any Javascript framework out there. And new ones are far easier to build... Why is this true: because there's a huge vendor (Adobe) behind Flash/Flex. Why would you not use Flex/Flash? Because there's a single huge vendor behind Flash/Flex.

On the Javascript side, there's a lot of movement forward. I looked at Dojo about two years ago and it was definitely very green, but I'm sure that a lot of that stuff is very much ready-for-prime-time now.

Good luck.

Yar
+2  A: 

Have you looked at Cappuccino? It's a port to the Web of the desktop programming API used on the iPhone and Macs. I haven't deployed anything with it yet, but that's what I've decided on for my desktop-style app and it seems to fit your requirements. The only caveat is that the Javascript dialect they invented for it is deeply weird.

Chuck
To see Cappuccino in action, check out http://280slides.com/, a Keynote/Powerpoint-like presentation tool that looks and behaves very much like a desktop app.
Alex Basson