Re: Python's simplicity philosophy

From: Alex Martelli (aleax_at_aleax.it)
Date: 11/14/03


Date: Fri, 14 Nov 2003 10:08:54 GMT

Terry Reedy wrote:
   ...
>> personally argued that reduce() should be removed from the language,
>> but I do agree that it does not have to be part of "core" Python,
>> and could easily be relegated to a module.)
>
> If the builtins are reduced in 3.0, as I generally would like, I would
> be fine with moving apply, map, filter, and a repaired version of
> reduce to a 'fun'ctional or hof module. But the argument of some
> seems to be that this batteries-included language should specifically
> exclude even that.

A functional module would be neat. A great way to enhance the chance
that there will be one would be starting one today (e.g. on sourceforge),
ideally with both pure-Python and C-helped (or pyrex, etc) implementations,
and get it reasonably-widely used, debugged, optimized. There's plenty
of such ideas around, but gathering a group of people particularly keen
and knowledgeable about functional programming and hashing out the "best"
design for such a module would seem to be a productive endeavour.

Also, I advocate that 3.0 should have a module or package (call it
"legacy" for example) such that, if you started your program with
some statement such as:

from legacy import *

compatibility with Python 2.4 or thereabouts would be repaired as
much as feasible, to ease running legacy code, and to the expense
of performance, 'neatness' and all such other great things if needed
(e.g., no "repaired" versions or anything -- just compatibility).

One reasonably popular counterproposal to that was to have it as

from __past__ import *

by analogy with today's "from __future__". I'd also like to make it
easy to get this functionality with a commandline switch, like is
the case today with -Q specifically for _division_ legacy issues.

But mostly, each time I mention that on python-dev, I'm rebuffed with
remarks about such issues being way premature today. Somebody's
proposed starting a new list specifically about 3.0, to make sure
remarks and suggestions for it made today are not lost about more
day-to-day python-dev traffic, but I don't think anything's been
done about that yet.

Alex



Relevant Pages

  • Re: VB Conversion Keywords And .NET Conversion Routines
    ... The PRINT# keyword is not even available in VB.NET, ... VB.NET runtime is an integral part of the VB.NET language. ... CInt & CDbl are no where near obsolete, they are keywords which are an ... .NET-hosted languages that have legacy ...
    (microsoft.public.dotnet.languages.vb)
  • Re: VB Conversion Keywords And .NET Conversion Routines
    ... The PRINT# keyword is not even available in VB.NET, ... VB.NET runtime is an integral part of the VB.NET language. ... CInt & CDbl are no where near obsolete, they are keywords which are an ... .NET-hosted languages that have legacy ...
    (microsoft.public.dotnet.framework.performance)
  • Re: Why PHP?
    ... written business logic reduces development time in porting a legacy ... As far as using PHP - which is the topic goes - I guess it's just another ... >> efficient do it all in Pick (or OpenQM) instead - if you could? ... > 'interpreted once they get there' - most of the calls are C language ...
    (comp.databases.pick)
  • Re: Arent the fuddy-duddies in the group going to comment on Fortress
    ... In my personal opinion, there is nowadays to much material in the standard, with too many interactions among useful new features, because of this legacy support. ... Most of the code is in the optimization part anyway, and that is to a large degree indepedent of the fron-end language - except for such things as supporting arrays as first-calls citizens. ... compiler - but if explicit parallelization cannot be introduced into ...
    (comp.lang.fortran)
  • ProgID and VB 6 references dialog
    ... I have functionality that I have to be used with a legacy VB 6 application. ... exposed to COM is displayed rather then the ProgID. ... behavior or am I missing something? ...
    (microsoft.public.dotnet.framework.interop)