Embracing Web Style
The Web is based on HTML pages for a very good reason. Back when the Web was being invented, a simple page markup and hypertext description language also was being developed. It was designed to be simpler to understandand therefore more likely to be usedthan page description languages, such as Postscript, or programming languages, such as C. The result (HTML) became one of the handful of reasons why the Web became phenomenally popular in the ensuing years. Suddenly, the distance between source code and final product was shorter than ever before. It was short enough that ordinary tinkerers could take a look at the workings of a multimillion-dollar site and discover its secrets in a matter of hours.
The core of Web style is that HTML pages have a certain look and feel that comes about from the kind of markup HTML enables. This creates pages that flow from top to bottom in (generally) one column of text with frequent breaks in the text caused by headers, images, and hyperlinks. Viewing an HTML source file gives the same impressiona single flow broken by a few different types of text. Images might surround the core information stream, but their meaning usually fades to the background as the central focus of the page is concentrated on. The application logic sometimes can obfuscate that by being more abstract. For designers who are used to seeing the content of a page in terms of a flow with some breaks, it might be difficult to get a handle on how a page flows when it is listed as nested subroutines or abstract function calls. The flow is further impeded when the page itself is buried in a mound of print statements and environment declarations.
Web-like programming can give rise to stronger Web pages and more intuitive Web applications. Because the Web style is so easy to grasp, Web applications written in a similar style would seem to benefit from the same easy-to-understand logic. As it turns out, this is often the case when developing Web applications in a Web-centric style. The applications match their final output so closely that simply viewing the end result indicates the source of any discord or flawed program logic. Additional componentization of the application spreads this vision further by enabling the programmer or designer to separate the program out by visual section. After a program is fully Web-centric, it becomes easy for a Web programmer to focus on a section of code by addressing just the output of that section, without giving any thought to the sections around iton the page or on other unseen pages.