some comments for Python 3000

Peter Schneider-Kamp nowonder at nowonder.de
Sat Aug 12 04:41:43 EDT 2000


Hi Lobo (or whatever your name be)!

I have to disagree with a lot of the points you made. On a general note
I don't see any danger for Python in the foreseeable (and the unforeseeable)
future. Just take a look at LISP (and its dialects) and Fortran to see
how long languages can stick around. A lot of stuff-that-matters is
emerging (linux kernel configuration by ESR, configuration tools at
the distribution level, etc.) that will make Python indispensible in the
near future.

BTW: If you're interested in the way Python is going, be sure to
     check the Python Enhancement Proposals (short: PEPs):
          http://python.sourceforge.net/peps

That said, I'll take your post bit by bit:

lobozc at my-deja.com wrote:
> 
> The market
> ----------
> 
> As with other markets :-), the scripting language market is up for a
> consolidation. Which, like on other markets, will lead to an emergence
> of a fewer but larger players. The winners will be the ones with most
> public following, as this creates the avalanche effect for them - as
> well as starving out smaller players with lack of talent available to
> work on their offerings and extensions

I don't see a consolidation coming in the "scripting language market".
If you have any backing for your claims, please elaborate. Personally
I even doubt if there is such a thing as a "scripting language market"
in the way you portrait it. Python for example is not only used as
a scripting language but increasingly as a general purpose programming
language, especially - but not exclusively - for rapid prototyping.

> Currently the players in the scripting language market are
>  - Perl the biggest, ugliest
>  - Python up and coming

Yes.

>  - JavaScript ecma standard, browser, but not so hot for administration

... or for general purpose programming.

>  - VBScript - limited to MS

and succesful (in its niche) nevertheless.

>  - Tcl - neat, but probably not growing quickly

depends on your definition of neat.

>  - Ruby - neat, oo, but probably too small to matter seriously

definitely neat, but nothing for me. braces (or keywords) for blocks.

> To survive in the marketplace the languages need to grab enough
> programmers mindspace [this is not a general market - this is
> programmers market] as well as interest of top contributors.

What about a more cooperative solution? There is no such thing
as "the" language (not even for the area of "scripting languages").
Why not work on improving cooperation between the languages,
libraries, bytecodes etc.?

> Strategies (as opposed to tactics)
> ----------------------------------
> 
> The basic one is to be more useful. There are several approaches here,
> usually used in combination:
>  - be very expressive - enable to do a lot in one line (Perl)
>    (the downside is being too cryptic to be readable later)
>  - borrow established idioms/syntax from other languages to reduce
> learning/acceptance curve (Perl from awk/sed, Ruby from smalltalk)

These two points depends on the target users. Most people *don't*
have a preference for cryptic code, and "awk/sed" or smalltalk
background. Granted, most of them are not programming yet,
but I think even the Windows programmers are not too comfortable
with awk/sed inheritance.

>  - be very 'clean' - using the smallest number of underlying
> principles - Ruby, Tcl, (a bit) Python

According to this point, LISP would win right out of the box. Besides
being simple the language should also be convenient.

>  - make use of the operating system environment as easy as possible -
> either by direct connection or libraries (all)
>  - be easily extensible - two forms: external modules and adjusting the
> syntax
> 
> More personal view - what counts
> --------------------------------
> 
> Marketwise the only thing that counts is the popularity. To gain it -
> in this market - the language has to be useful. It doesn't have to
> be 'clean' in the language theory sense [hence Perl :-)] - it has to be
> usable by sysadms and other pros. (Being nice to programmer wannabees
> is probably less important)

I am sure that the number of programmer wannabees is already greater
than the number of sysadmins (no numbers to back that up, though)
and increasing at a lot faster pace.
A lot of them are using languages badly suited to them, though
(C++, Java, Perl). But I think this is more a problem of awareness.
People have to know that there are better alternatives.

> Being popular is very important but it is not the only thing. After the
> initial acceptance the language tends to be pushed into new areas - and
> that means usually larger programs. So some sort of build in
> scalability is important.
> 
> 'Connectivity' (foreing library reuse) is also important. If the
> language is designed in such a way that it's users need to write and
> ODBC driver or XML parser then it's doomed - it's as easy as that.
> Because the competitor which simply connects to the existing XML parser
> on this platform achieves three things for the price of one:
>   - it delivers to it's users a professional version of the function,
> not a home-brewed one
>   - and it's faster of the blocks with this functionality, too
>   - it can spend it's own development time developing the core
> language, not the library - reuse other platform libraries
> 
> 'Clean expressivenes' is important, even if it operates mostly on a
> subliminal level. Expressivenes is the ability to do complicated things
> in one line (see perl). 'clean' means that to code is understandable
> next week. [personal note: one could argue that all scripting languages
> are started as 'expressivenes engines' - to do things that in 'normal
> langauages take too long].

Total agreement from me on the last point.

> What does it mean to Python?
> ----------------------------
>   (and other scripting languages)
> 
> Let's face it - Perl is several times larger than Python - possibly an
> order of magnitude (or two). If not careful Python may lose some gloss -
>  cleaning up of Perl on 6.0 level may be enough to remove plenty of
> Python's appeal. (not because Perl will be syntax better than Python -
> but because the syntax may be cleaned up enough and Perl is big
> enough). Plus, there is talk of borrowing things for Perl 6.0 from
> other languages - Python, icon and everybody else was mentioned.

I don't think people will flee back from Python to Perl 6,
if you wan't to imply that. If not, I don't see Python losing
"some gloss".

> Possible things to consider for Python are:
>   - concentrate some of the discussion on strategy, not only tactics
>   - small steps may be too timid?

As far as I can see, taking small steps has served quite well so far.
Small steps tend to improve the language. If some don't, it's just
been a small step that's gone wrong. If you take large steps, though, ...

>   - improve expressiveness of the language and it's flexibility

coming up with high probability in 2.0 (which will almost immediately
follow 1.6):

- augmented assignment (+= and friends)
- list comprehension [(x+y) for x in seq1, for y in seq2, if y > x]

>   - make sure that you can efficiently use any underlying platform's
> library (MS, Java, Linux)

I think Python is already quite good at that (win32all for MS,
JPython for Java, CPython for Linux). But, of course, improvements
can (and will) be made here.

>   - reducing the size of the core and basic libraries

Have a look at PEP 206 (Batteries Included) and the discussions
on python-dev.

> Things of rather secondary nature:
>  - case sensitivity

Why does that matter? Besides unearthing evil deamons every time
it comes up on c.l.py?

>  - small changes in syntax (unless improving expressiveness)

All the syntax changes that I have seen being discussed try to
improve expressiveness (clean one):

- from <module> import <name> as <name>
- for <index> indexing <variable> in <sequence>:
  (which will probably not happen because there are
   easy solutions not requiring new syntax)

>  - performance (if it's popular and has many libraries it doesn't need
> performance - see Java :-))

Java beats the hell out of most scripting languages in most
areas when it comes to speed.

that's-all-folks---nothing-to-see-here---move-on-ly y'rs
Peter
-- 
Peter Schneider-Kamp          ++47-7388-7331
Herman Krags veg 51-11        mailto:peter at schneider-kamp.de
N-7050 Trondheim              http://schneider-kamp.de




More information about the Python-list mailing list