Python 1.6 The balanced language

Manuel Gutierrez Algaba thor at localhost.localdomain
Mon Aug 28 14:01:14 EDT 2000


Python 1.6 The balanced language (I'd say 1.5.2, but...)
---------------------------------

Python has many features from many languages:
* Functional features:
 - Lambda, filter, map, eval. And for i in list:  constructs .
I've heard some occaml fans say: "I like python because of these
features"

* OO features:
 - Classes, objects.

* Simple programming features:
 - print statement, simple assignments, lists and tuples, asserts,
 docstrings and comments, import mechanism, "input"... (some others),
open file...

* A small but big enough set of functions : max, min, range, pow,
string.join, re.match ... 


And that's python, no more and no less.

And that's the greatness of python. Of course, we could add in:
* Functional features:
- Patterns for lists: l [ head : lists]

* OO features:
- Design by contract 
- Strong "typing"


* Simple programming features:
- Corroutines
- A bigger set of operators ( << ...)
- Lexical closures
...

The question is that the current balance of "powers" inside python
prevents people of any of the families from writing python
ununderstable for the rest of the families.

 So, functional-guys,
although may do a lot of _harm_ in dark lambda-map expressions,
they can't add to _their_ expression-confussion  those "awful"
 patterns.

So, Java-C++-guys, although they can write 200 lines-long-functions
(a la Java ), they can't do too much harm because they can't use
their most fearful weapon : hard typing. So , their code is
still understable.

So, academic-researchers-learners, although they can do
of dict-tricky constructs, they can't do nasty corroutines, lexical
scopes (a la Scheme), which would be ununderstable for the C++
guys. 


So, as you see, Python is more a balance of forces than anything
else.

What will happen in Python 3000 ?
 Well, that balance will be broken and python won't make sense
any more. Sure, it'll be the same language : python. But, people
will experience __always__ some kind unrest, because  advanced 
features of some of the families will pop up, and nobody 
belongs to all the families. So Java-C++ guys will have hard
times with functional, Functional-guys will have hard times
with hard types...


The current state of forces is an achievement.

And the work to do should enroute into:
- (Still) Better documentation. Better systems of organizing
examples (snippets) but seriously.

- Provide clear ways (with clear doc) to expand the language for
any of the families or for some programs : Oracle, mails

- Sort all the apps available and try to organize them as example
for reusing the code. 

I've hear a Macintosh user say this:
" I consider still TCL the language of choice, but python
fits so well in the Mac,... I can write GUI's and call Mac
primitives,... everything is so smooth".

Well, let's continue that path, and let's do betterment in
the library/app/documentation layer, instead of Python itself.

Thinking that python can be :
Eiffel + Haskell + Java 
is simply ___DUMB___ and irrealistic.

Sometimes there are even technical drawbacks: if you use Stackless
python (corrutines), you can use Jpython compatibility !

---
MGA





More information about the Python-list mailing list