96 lines
3.4 KiB
Plaintext
96 lines
3.4 KiB
Plaintext
From: tim_one at email.msn.com (Tim Peters)
|
|
Date: Sat, 3 Apr 1999 06:26:17 GMT
|
|
Subject: disenchanted java user mumbles newbie questions
|
|
In-Reply-To: <3705980A.1C7E9512@swcp.com>
|
|
References: <3705980A.1C7E9512@swcp.com>
|
|
Message-ID: <000101be7d9a$e1ae88a0$879e2299@tim>
|
|
Content-Length: 3142
|
|
X-UID: 25
|
|
|
|
[Alex Rice]
|
|
> 1) In the Python 1.5 Tutorial, sec. 9.2 "Python Scopes and Name Spaces"
|
|
> there is the following passage:
|
|
|
|
> ...
|
|
> -- however, the language definition is evolving towards static name
|
|
> resolution, at ``compile'' time, so don't rely on dynamic name
|
|
> resolution!
|
|
> ...
|
|
|
|
> Where can I read more about this move towards for compile time, static
|
|
> name resolution and the reasons for it.
|
|
|
|
Best I can suggest is scouring years' worth of DejaNews. Most of it is
|
|
summarized in early postings to the Python Types-SIG, though
|
|
(http://www.python.org/, and follow the SIGS link at the top ...).
|
|
|
|
"The reasons" are the same as everyone else's: a mix of efficiency and
|
|
compile-time-checked type safety. I'd say the Python thrust these days may
|
|
be more toward adding *optional* type decls, though. OTOH, nothing has
|
|
changed in this area of Python for > 5 years, so don't panic prematurely
|
|
<wink>.
|
|
|
|
> For some reason I was envisioning Python as being less like Java and
|
|
> more like Objective-C or Smalltalk in terms of dynamic binding.
|
|
|
|
Yes, it is. It's extreme, though. For example, in
|
|
|
|
def sumlen(a, b, c):
|
|
return len(a) + len(b) + len(c)
|
|
|
|
Python can't assume that "len" refers to the builtin function "len", or even
|
|
that all three instances of "len" refer to the same thing within a single
|
|
call (let alone across calls). As to what "+" may mean here, it's even
|
|
hairier. In effect, the current semantics require that Python look up every
|
|
non-local name and access path from scratch every time it (dynamically) hits
|
|
one.
|
|
|
|
This leads to some pretty disgusting convolutions for speeding "inner
|
|
loops", in support of a generality that's wonderful to have but actually
|
|
*needed* by very little code. Because of a professional background in
|
|
compiler optimization, I'm supposed to be appalled by this <wink>.
|
|
|
|
> 2) Which reminds me: does anyone have a URL for that Ousterhut (sp?)
|
|
> article at Sunlabs about Scripting languages and why scripting rulz and
|
|
> where he has a taxonomy of programming languages along 2 dimensions?
|
|
> Lost that bookmark and cannot find it again.
|
|
|
|
It's one of the White Papers at:
|
|
|
|
http://www.scriptics.com/scripting/white.html
|
|
|
|
|
|
> 3) What's the Python equivalent of depends.exe? --something to find what
|
|
> modules your script is depending upon?
|
|
|
|
Suggest searching python.org and DejaNews and Starship for "freeze" and
|
|
"squeeze".
|
|
|
|
> It seems like one would be able to create a very slim distribution if one
|
|
> needed an .exe, couple of .dll only a handful of .py files.
|
|
|
|
Why do I suspect you're a Windows programmer <wink>? The most advanced
|
|
Python distribution system for Win32 is likely Gordon McMillan's, available
|
|
for free at
|
|
|
|
http://www.mcmillan-inc.com/install.html
|
|
|
|
May also want to visit the Python DistUtils SIG.
|
|
|
|
> A Java+Swing application can be 1-2 MB not including the VM! bloat--ed.
|
|
|
|
Doubt you're going to get off much cheaper with Python + Tcl/Tk, although it
|
|
includes two complete language implementations.
|
|
|
|
> What's a typical size of a bare-bones Python distribution?
|
|
|
|
Download one, unpack it, and do "dir" <wink>.
|
|
|
|
soon-even-light-bulbs-will-have-20Gb-hard-drives-ly y'rs - tim
|
|
|
|
|
|
|
|
|
|
|
|
|