|
![](/i/fill.gif) |
Reluctantly, I will write here some of my thoughts on this polemical
subject. Reluctantly because I have little time, and because I now my
thoughts are far from being mature. Little time also means I did not read
(yet) all the messages in this thread, so I may address points that were
already discussed and "closed". But, please, bear with me, for I feel an
obligation to share my opinion.
Firstly, it seems that this discussion about POV's syntax, present and
future, quickly and repeatedly becomes a discussion about POV features and
wish lists. Many seem to address language/feature additions rather than
syntax changes. While these features additions would result in more keywords
and a few more syntax forms, most of the time they would not produce real
syntactic changes. To the non-programmer user, like I am, an OO style
camera.location is not different from a camera_location variable (but I
understand MyDeclaredObject.min_extent too).
I think POV syntax to be reasonably "good" as it is now. Reasonably because
it exhibits some incoherence. Some come from POV's history (evolution);
others come from different people implementing analogous functions in
different features. Some are, I believe, incoherence only to the
non-programmer, like shadowless and no_shadow. I believe reducing some of
these incoherences can make POV easier to learn and use. I'll throw in some
examples: - shadowless and no_shadow - I'd like all #declare to accept; as
an ending - the use of the comma in different statements could be unified -
texture is where I think POV _should_ have a syntax rewrite. Two examples
(my main concerns, actually): (1) the current implementation use many
different keywords for really similar functions - think of all the *_map;
(2) layering should be explicit, something like texture{layered{texture{T1},
texture{T2. or pigment{layered{.
As you have now surely understood, my only real "dissatisfaction" (quote,
because this word is too strong) in POV's syntax is its lack of unity... I
do not mean that I'd like its _looseness_ to be reduced: it is great to be
able to describe the same thing in different ways and each can choose its
favourite. I mean: I would like if each of these different syntax forms
could be used for every analogous task - and not, as it often is now, have
many features have its own syntax.
As to new features in the syntax, I would accept most gladly.
The for{,,} loop would surely be easier to use than the #while one, but then
I would like to see a while{,} and a #for.#end syntax. Access to object
information would be great, whether it is done with OO-style
MyObect.trace(.) or any other practical way. += style declaration would be
really useful. So would be better variable scoping. Generalisation of the
texture/pattern/function/isoshapes syntax could be really great, but
currently I can see no way of doing this without (1) loosing backward
compatibility (other than the #version switch) and (2) moving up to another
level of abstraction, making things more difficult to the newcomer.
New feature in POV I will always welcome warmly...
Now, I have done my duty, I feel at rest.
Povingly,
Philippe
Post a reply to this message
|
![](/i/fill.gif) |