languages to the mix though this can varythe net result is often something of web-hosted tower of babelwhose development might require simultaneously programming in pythonhtmlsqljavascripta server-side templating languagean object-relational mapping apiand moreand even nested and embedded combinations of these the resulting software stack can be more complex than python and gui toolkit moreoverrias today inherit the inherent speed degradation of network-based systems in generalalthough ajax can add interactivity to web pagesit still implies network access instead of in-process function calls ironicallymuch like desktop applicationsrias may also still require installation of browser plug-in on the client to be used at all the emerging html standard may address the plug-in constraint and ease the complexity somewhatbut it brings along with it grab bag of new complexities all its own which we won' describe here clearlyinternet technology does come with some compromisesand it is still evolving rapidly it is nevertheless an appropriate delivery context for manythough not allapplications as with every design choiceyou must be the judge while delivering systems on the web may have some costs in terms of performancefunctionalityand complexityit is likely that the significance of those overheads will continue to diminish with time see the start of for more on some systems that promise such changeand watch the web for the ever-changing internet story to unfold suggested readingthe pyerrata system now that 've told you all the reasons you might not want to design systems for the webi' going to completely contradict myself and refer you to system that almost requires web-based implementation the second edition of this book included that presented the pyerrata website-- python program that lets arbitrary people on arbitrary machines submit book comments and bug reports (usually called errataover the webusing just web browser such system must store information on serverso it can be read by arbitrary clients because of space concernsthat was cut in this book' third edition howeverwe're making its original content available as optionalsupplemental reading you can find this example' codeas well as the original file in the directory pp \internet\web\pyerrata of the book examples distribution tree (see the preface for more on the examples distributionpyerrata is in some ways simpler than the pymailcgi case study presented in this from user' perspectivepyerrata is more hierarchical than linearuser interactions are shorter and spawn fewer pages there is also little state retention in the web pages themselves in pyerrata--url parameters pass state in only one isolated caseand no hidden form fields are generated on the other handpyerrata introduces an entirely new dimensionpersistent data storage state (error and comment reportsis stored permanently by this system on the the pymailcgi server