some comments for Python 3000

lobozc at my-deja.com lobozc at my-deja.com
Sat Aug 12 00:08:33 EDT 2000


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

Currently the players in the scripting language market are
 - Perl the biggest, ugliest
 - Python up and coming
 - JavaScript ecma standard, browser, but not so hot for administration
 - VBScript - limited to MS
 - Tcl - neat, but probably not growing quickly
 - Ruby - neat, oo, but probably too small to matter seriously

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.


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)
 - be very 'clean' - using the smallest number of underlying
principles - Ruby, Tcl, (a bit) Python
 - 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)

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].



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.

Possible things to consider for Python are:
  - concentrate some of the discussion on strategy, not only tactics
  - small steps may be too timid?
  - improve expressiveness of the language and it's flexibility
  - make sure that you can efficiently use any underlying platform's
library (MS, Java, Linux)
  - reducing the size of the core and basic libraries

Things of rather secondary nature:
 - case sensitivity
 - small changes in syntax (unless improving expressiveness)
 - performance (if it's popular and has many libraries it doesn't need
performance - see Java :-))






Sent via Deja.com http://www.deja.com/
Before you buy.



More information about the Python-list mailing list