'join' in the wrong word for the method in class Thread.
musiccomposition at gmail.com
Sun Mar 16 03:28:32 CET 2008
On Mar 15, 7:29 pm, castiro... at gmail.com wrote:
> 'join' in the wrong word for the method in class Thread.
> The agent-patient semantics of calling functions can get ambiguous.
> It is not a problem of native Pythoners alone. Is it due to lazy
> programming, an inability of English (do you have it in other
> languages?), or not a problem at all?
This is what Java uses, and Python's threading module tries to imitate
> th1.join() doesn't mean, 'do something to th1', or even, 'have th1 do
> something to itself.' In fact, if anything is doing anything
> differently, taking waiting to be doing something different, it's the
> Translating literally,
> th1.join() -> join me here, th1.
> file1.close() -> close yourself, file1.
> But not,
> th1.join() -/> join yourself, th1.
> lock1.wait() -/> wait, lock1. (For what?)
> Furthermore, in toolbars:
> File -> Open -/> file an open.
> File -> Load -/> load a file. (It means, load the computer.)
> In English, the placements of identifiers isn't consistent. IOW,
> there isn't a syntactic mapping into natural language sentences.
> (Though you can do it in Latin, German, Sanskrit, and Russian with
> case markers*.) What are the true literals? What's doing what?
> th1.join() -> 'be joined by th1'
> file1.close()-> 'close file1'
> lock1.wait()-> 'getinlinefor lock1'
> And of course, 'open' isn't a method of File objects at all. The
> closest is, 'be loaded by file1'.
> Assuming speakers** of classical computer languages use OVS order--
> object-verb-subject***, the most literal transformations are:
> The mapping of identifiers to English isn't consistent. It takes some
> knowledge to read them-- shuffle an English sentence and it changes
> Functional languages are one long sentence: True.**** Declarative
> ones tell a story. ('th1' joins him.) Imperatives command an
> impartial audience.
> What do the docs say about it?
> Wait until the thread terminates. This blocks the calling thread until
> the thread whose join() method is called terminates - either normally
> or through an unhandled exception - or until the optional timeout
> When the timeout argument is present and not None, it should be a
> floating point number specifying a timeout for the operation in
> seconds (or fractions thereof). As join() always returns None, you
> must call isAlive() after join() to decide whether a timeout happened
> - if the thread is still alive, the join() call timed out.
> When the timeout argument is not present or None, the operation will
> block until the thread terminates.
> A thread can be join()ed many times.
> join() raises a RuntimeError if an attempt is made to join the current
> thread as that would cause a deadlock. It is also an error to join() a
> thread before it has been started and attempts to do so raises the
> same exception.
> The natural language meaning of 'join' isn't used. Do benevolent
> dictators do this? What do malevolent ones call themselves?
> *Latin, German, Sanskrit, and Russian can do it. Latin, German,
> Sanskrit, and Russian -speakers- can do it.
> **It would be interesting to try to learn a language without ever
> speaking it.
> *** English is SVO, subject-verb-object. French is too, unless the
> object is direct: subject- direct-object -verb.
> **** The sum of the first three integers in the last two files, sorted
> alphabetically, in 'c:\programs'.
More information about the Python-list