Pliant?
Greg Ewing
greg at cosc.canterbury.ac.nz
Thu Apr 20 01:28:53 EDT 2000
Ng Pheng Siong wrote:
>
> What are your views on Pliant, as a Python programmer?
>
> Pliant is here: http://pliant.cams.ehess.fr
I've had a brief look. Some observations, in no
particular order.
Personal opinion codes:
:-) I like it
:-( I don't like it
:-! Not sure whether to like it or not
:-] I think that's rather funny
* Indentation for structure: I approve, obviously! :-)
Spaces are mandated, tabs forbidden - probably a
wise move, judging by the Python community's painfully
gained experience. :-)
* Not so sure about all the different syntactic sugars
for grouping, though - Too Many Ways To Do It for my
liking. :-(
* Different operators for integer and floating point division :-)
* Whether "-" is unary or binary depends on surrounding whitespace :-(
* Two different assignment operators, for value and reference
assignment. :-( (Assignment seems to be quaintly referred to as
"affectation" :-])
* Pliant introduces Yet Another Way To Spell Else-If: "eif". :-(
* There is a notion of types that can be compared for equality
but not order (something lacking in Python at the moment). :-)
* There is a large and confusing set of argument passing and
access modes, cryptically named. :-(
* The type system seems to include unsafe pointers. Refcounting is
available, but you have to explicitly ask for it, so memory
leaks and dangling pointers seem to be possible. :-(
* Not sure what to make of the OO stuff. It's based on the
"generic function" idea, so you can add methods to an existing
type. The docs don't say whether single or multiple dispatch
is used. Also they say there is no "heritage" (which presumably
means inheritance) but then go on to describe what looks a lot
like an inheritance mechanism. So, I'm confused. :-(
The author also tries to make a rather unconvincing argument
that the generic-function approach makes programs easier to
read than the class-oriented approach, but as far as I can
see it only makes the problem worse!
* Globals live in modules, as in Python. Modules can have
explicit "public" and "private" parts. :-)
* Something akin to Scheme macros can be written that operate
on the parse tree, although it seems that they can go right
down to the machine code level if desired. :-!
That's all I have time for now,
--
Greg Ewing, Computer Science Dept,
+--------------------------------------+
University of Canterbury, | A citizen of NewZealandCorp, a |
Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. |
greg at cosc.canterbury.ac.nz +--------------------------------------+
More information about the Python-list
mailing list