Hacker News new | ask | show | jobs
by kls 6026 days ago
While, GWT is a very impressive feat of technical accomplishment. It really misses the mark, the problem with it as well as most of the old desktop development (languages, toolkits, frameworks) is that it favored the developer over the designer. This is one of the reasons for the popularity of the web, it allowed the designer (and the want-to-be designer) the ability to design and build interfaces without having to know a turring complete languages.

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.

3 comments

You should look at UiBinder (part of GWT 2.0). You write HTML and CSS, stick it into a UIBinder template. And in 5 minutes you can take a designed mock and have it bound to a Java class in a very efficient way.

You get things like CSS namespacing and obfuscation for free with this approach too.

Thanks, I will take another look at it.
I believe there's very limited role of "design" when it comes to application development: people want consistent look and feel in all apps, they want to reuse their skills and not having to re-learn how to add an item to a list for every little piece of software.

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.

I think it really depends on the app. Sure for some apps all you need is some buttons and some input fields. But even in the not so old days of desktop apps we had Authorware, Macromedia Director and HyperCard because some apps are not just data input apps, and this problem existed back then, it was the reason for the afore mentioned application builders if you will.

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.

You should give it another look - GWT2.0 has declarative UI language and HTML can be directly embedded into it.