[Web-SIG] Client-side API

David Fraser davidf at sjsoft.com
Fri Oct 24 03:53:53 EDT 2003


Simon Willison wrote:

> Bill Janssen wrote:
>
>> Another possibility would be to mimic the Java 1.4.1 libraries for the
>> Web.  For instance, we could have the "URL" object, which has a method
>> called "open()", which when called gives you a "Connection", which can
>> be of subtype "HTTPConnection", "FTPConnection", etc.  Call the
>> "create_request()" method on that "Connection" to get a new Request
>> instance, use "set_header()", "set_cookie()", "set_body()", etc., then
>> call the "send()" method, getting back a ReplyPromise instance, which
>> can then be interrogated periodically to get a Reply instance, etc.
>
>
> Ugh. One of the things I love about Python is that unlike Java it 
> doesn't force you to have horribly verbose interfaces with dozens of 
> different classes. A URL is a string, file-like-objects are 
> file-like-objects and most of the modules in the standard library only 
> make you deal with one or two classes and a few useful utility methods.
>
> I'm all for replicating the capabilities of Java libraries (if they 
> have a good bunch of features) but replicating the exact APIs seems to 
> me like a lost opportunity to take advantage of Python's more 
> expressive syntax.

Absolutely. We need to be using attributes rather than method accesses, 
and dictionary/list-derived classes where sensible and possible.
(We shouldn't imitate dictionaries by mimicing methods, and we should 
use the new-style classes if we need to extend them)

David




More information about the Web-SIG mailing list