14.12. Other Client-Side Scripting Options
In this chapter, we focused on client-side interfaces to standard protocols that run over sockets, but client-side programming can take other forms, too. For instance, in Chapter 18, we will meet client-side options such as the Jython system, a compiler that supports Python-coded Java appletsgeneral-purpose programs downloaded from a server and run locally on the client when accessed or referenced by a URL. We'll also introduce the notion of Python code embedded in the HTML that defines a web page and is run on clients, and we will peek at Python tools for processing XMLstructured text that may be used as the language of client/server dialogs in protocols such as XML-RPC, supported by Python's xmlrpclib standard library module.
In deference to time and space, though, we won't go into further details on these and other client-side tools here. If you are interested in using Python to script clients, you should take a few minutes to become familiar with the list of Internet tools documented in the Python library reference manual. All work on similar principles, but have slightly distinct interfaces.
In Chapter 16, we'll hop the fence to the other side of the Internet world and explore scripts that run on server machines. Such programs give rise to the grander notion of applications that live entirely on the Web and are launched by web browsers. As we take this leap in structure, keep in mind that the tools we met in this and the preceding chapter are often sufficient to implement all the distributed processing that many applications require, and they can work in harmony with scripts that run on a server. To completely understand the Web world-view, though, we need to explore the server realm, too.
Before we get there, though, the next chapter puts concepts we've learned here to work by presenting a complete client-side programa full-blown mail client GUI, which ties together many of the tools we've learned and coded. Among other things, this example will help us understand the trade-offs between the client-solutions we've met here, and the server-side solutions we'll study later in this part of the book.