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