Ok, I finally listened to the podcasts. Thanks for the pointer. That's
the second good reference to that series I've gotten, I'm going to
keep an eye on them.

> While I agree that continuations are insanely powerful, I likewise
> prefer generators and iterators to continuations.  Why?

When all you need is a generator or iterator, it's simpler to deal
with and easier to debug. Continuations or closures give you the power
to implement a iterator generator or generator generator to have the
syntactic sugar and debugable manifest state. Iterators and Generators
do not provide the general expressivity of anonymous functions &
closures for delegation in frameworks.

> To me the ability to tackle difficult constructs is less important
> than the ability to provide clear debugging information if things go
> wrong.  And their power and flexibility causes continuations to lose
> on that metric.

No disagreement that usabilty counts. And Perl's *perceived* lack of
readibility is costing us in the popularity race. Readibilty is
sometimes perceived as a tradeoff against expressivity (with Lisp,
Cobol, Fortran, and APL as the usual comparison), but with modern
design, it should be orthogonal (as in Haskell). Perl appears a trifle
old-school in getting expressivity from golfably rich operators and
regex extensions. But while one is measuring the expressive power of a
language, the _ability_ do do _everything_ closures and anonymous subs
and code-blocks as arguments is the measure of "same power as".

Guido admits he didn't intentionally copy Lisp, since he doesn't know Lisp.
For a language designer to say that feels like an accountant saying "I
was never very good at math" - it may be acceptable in ignorant
society, but not in his field (or any truly intellectual company).

This may explain his erroneous belief that having generators and
iterators is of equivalent strength to anonymous code blocks (and thus
closures which he won't even name).  He says continuations make his
head explode, yet he can claim generators are an 80% solution for what
you'd want continuations for. If they make his head explode, why does
he believe the 20% he can imagine using them for is all, there isn't
another 200%?
   He doesn't get the abstract/delegation uses of anonymous blocks and
encapsulation and currying uses of closures, which will raise the
level of discourse again after iter/gen/lazy-eval.
  The good news is he doesn't like them and doesn't understand why
non-iter-gen closures add power to frameworks, so we'll have that
point of difference. The bad news is the average Analyst or IT
magazine reviewer doesn't grok closures or framework-fu any better
than the average Perl programmer, who can benefit from their being
buried in a Damian module without knowing Latty's forethought to allow
closures made the Damian-fu possible.
  But beginners and dabblers never get beyond iterator/generators, and
a sugary overly specific syntax for those will *seem* more powerful
than an obscure emergent idiom of greater intrinsic expressivity.

I've heard his point that Patterns is a sign of language weakness
elsewhere. Perl & Python are quite similar in comparison to Java
there.

He commented that the indentation-as-syntax wasn't even his
brainstorm, he carried that over  from the ABC language.  That is one
solution to the 'my eye sees the indents, the compiler sees the
brackets' problem.  Using an editor with blink-brackets, jump-match,
and/or perl-tidy or other re-formatter are other solutions. I don't
take to one-size-fits all well.

The idea that 1,000 line perl scripts are a proof of the language
strength is strange.  I suppose there might be less cowboy spaghetti
code in Python, since the B&D culture may self select for structured
conformists, but that  doesn't mean a good code can't use it to build
something big - just that you may not be able to maintain it with dime
a dozen interchangeable disposable generic maintenance drones. So?
One PM'er still costs less than 12 Java grinders or two python One
True Way'ers.

TIMTOWTDI is freedom. Freedom scares some people ... especially
Management.  Python doesn't need shop coding standards memo or a PBP
book - it's Guido's way or the highway, enforced by the compiler.

"Readibilty" is one of Guido's key issues. It's a real issue in
several different areas: beginners' learning curve; part-time users
(who either don't code or use other languages for other things but
need some P-fu once in a while), and Legacy Maintenance. Readability
is why Python is rapidly replacing both bash and Perl for Linux
install and config scripting, e.g., per order of Ubuntu's Mark
Shuttleworth.  Guido may think Python is winning as a devlopment
language, but where it really is gaining mind-share is as a
entry-level scripting language -- it's replacing BASH.



-- 
Bill
[EMAIL PROTECTED] [EMAIL PROTECTED]
 
_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to