http://www.perlmonks.org?node_id=639250


in reply to Re^2: AJAX popup windows - an example
in thread AJAX popup windows - an example

Those are interesting points. Your example was a good, simple one; I hope you only took my concerns as input in the case that you do create a tutorial on the matter. I don't wish to rebut what you have said and don't want to prescribe solutions for anyone else, but perhaps some of the following can provide some interesting counterpoints to some issues raised in this thread.

Speed.

The reason that I don't have any speed issues with my HTML user interfaces is that, from perl's perspective, my user interfaces consist entirely of static HTML (which is nicely cached by the web server). perl code doesn't serve that HTML at all (with the exception of some mod_perl-based authentication handlers).

Also, client-side caching of Javascript, HTML and images (through various mechanisms) has finally come of age in modern browsers; you can count on it not to be a problem. The user waits for say 20-60KB of javascript to come down once and that code is cached thereafter. They see a very attractive progress indicator in the mean-time, and let's face it 60K (jQuery, 4 plugins, and all my Javascript) is small these days.

Dynamism.

It may be heretical to some folks here, but I think templating is fine for web content, not so much for exposing web application functionality. The more complicated or multi-faceted a user interface the more convoluted templates become, often with the outcome that the templates don't serve their initial goals - to uncouple viewables from code (for clarity), and to make visual assets separately maintainable.

I still like the idea of using templates to frame the overall look and feel of a site.

Functionality.

Nowadays, it's possible to have fast, semantically concise, intuitive, attractive user interfaces provided in a cross-platform manner in a variety of technologies.

Amazing cross-platform Javascript toolkits and other technologies (such as Adobe Flex and Microsoft Silverlight) exists which can provide consistent, performant, lightweight user interfaces for web applications.

None of those technologies requires the authors of client-side user interfaces to move to completely homogeneous implementations; the technologies can be separately embedded in HTML and combined to interesting effect.

-David

Updated: added a bit more detail in to clarify some points.