When to use refinements? : was => {Re: Re: R: Re: VID: choice arguments}
[1/8] from: jason::cunliffe::verizon::net at: 30-Jan-2002 14:13
From: "Gregg Irwin" <[greggirwin--mindspring--com]>
..snip..
> REBOL's VID (Visual Interface Dialect) does this. The catch with VID is
that
> we, as developers, often want to insert regular REBOL statements along
with
> the VID statements, which leads to more syntax in Layout blocks, but also
> shows the power that can be made available even inside a dialect. VID,
> itself, is very free from artificial syntax and refinements would add
> artifice I think.
ok...
hmm.. but I though the question was: Why does VID not try harder to use a
syntax consistent with plain REBOL using /refinements?
> > "choice data test" but it should be:
> > "choice/data test"
It's a good point. The functionality does'nt change, but at the same time as
*simplifying* the amount of programmer effort, VID has subtly *added* also,
because people need to learn syntactic exceptions to REBOL's norm.
This surely goes gently against REBOL's philosophy
stsbs: [simple things should be simple]
here's another one:
dsblrs: [dialects should be like rebol syntax]
An if not, then they gotta have lots of extra good docs to keep people
productive and sane.
Which begs a parallel question to the [format style which shall not be named
topic] => Can anyone identify a manual of style [pseudorebol template]
suitable for people developing dialects [and perhaps 'cleaning' up the
oddities of base ones like VID]?
When to use refinements ?
...or did I just miss the point..
thanks
./Jason
[2/8] from: greggirwin::mindspring::com at: 30-Jan-2002 13:58
Re: When to use refinements? : was => {Re: Re: R: Re: VID: choice argume
Hi Jason
<< hmm.. but I though the question was: Why does VID not try harder to use a
syntax consistent with plain REBOL using /refinements? >>
That was the original question. I think they designed it the way they did
intentionally. It seems to me that they tried to create a dialect that could
be used by non-programmers, for prototyping purposes or whatever, but could
then be extended to include the required functionality as well. If they made
the syntax just like REBOL, only REBOL programmers would want to use it.
<< dsblrs: [dialects should be like rebol syntax] >>
I have to disagree with you here. I think the power of dialects will come
from them being tailored to a specific audience, which will be mainly
non-programmers. Dialects will allow us to write things the way *we* want
to, as humans, and then allow a computer to make sense of what we've written
as well. Now, in order to do that, we need to be aware of what we're talking
about (i.e. the context), and who we're talking to of course, but just
creating slight variations on the basic REBOL syntax will bind us to a
target audience of REBOL programmers IMO. Regular people don't want extra
syntax, they just want to be understood without any extra effort on their
part.
<< An if not, then they gotta have lots of extra good docs to keep people
productive and sane. >>
Good documentation is always important. There is no dialect for documenting
dialects, that I know of though. :)
<< Which begs a parallel question to the [format style which shall not be
named
topic] => Can anyone identify a manual of style [pseudorebol template]
suitable for people developing dialects [and perhaps 'cleaning' up the
oddities of base ones like VID]? >>
We will certainly see some novel dialects appear in the future, but I think
that most of those we see, at least initially, will be inspired by an
existing human dialect, or nomenclature, of some kind.
--Gregg
[3/8] from: riusa::email::it at: 30-Jan-2002 23:45
R: Re: When to use refinements? : was => {Re: Re: R: Re: VID: choice arg
I'm a software developer since 1980. I developed with many programming
languages, including C, some CPU assemblers, Pascal and Object Pascal,
Python, some tools like Macromedia Flash, Asymetrix Toolbook, etc... etc...
These "traditional" languages have one common thing: "coherence",
consistency
.
Even in English language, in Italian language (my language!) there is
coherence
.
> The functionality does'nt change, but at the same time as
> *simplifying* the amount of programmer effort, VID has subtly *added*
also,
> because people need to learn syntactic exceptions to REBOL's norm.
> This surely goes gently against REBOL's philosophy.
I think Jason is right. Even if I'm using a "dialect", even this one should
be "coherent". When I find an exception in a programming language, I must
learn either the standard syntax plus the exceptions.
I admit it is not always easy to choose if using refinements or standard
function options.
--
Prendi GRATIS l'email universale che... risparmia: http://www.email.it/f
Sponsor:
Obiettivo Laurea? vuoi migliorare il tuo metodo di studio?
Per informazioni
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=213&d=30-1
[4/8] from: brett:codeconscious at: 31-Jan-2002 12:12
Re: R: Re: When to use refinements? : was => {Re: Re: R: Re: VID: choice
Hi,
> > The functionality does'nt change, but at the same time as
> > *simplifying* the amount of programmer effort, VID has subtly *added*
> also,
> > because people need to learn syntactic exceptions to REBOL's norm.
> > This surely goes gently against REBOL's philosophy.
>
> I think Jason is right. Even if I'm using a "dialect", even this one
should
> be "coherent". When I find an exception in a programming language, I must
> learn either the standard syntax plus the exceptions.
I don't think it is valid to treat dialects as part of the Rebol programming
language. Imagine you want to send a stock trading dialect to a client to
learn. Surely they would find learning this easier:
Sell 100 shares of "Acme" at $4.55 per share
Sell 100 shares "Acme" at above $4.55 per share
... than this:
sell 100 'shares "Acme" 4.55
sell/limit 100 'shares "Acme" 4.55 'above
Here's Rebol Technologies definition of a dialect (Rebol Core User Guide):
Dialects are sub-languages of REBOL that use the same lexical
form for all data types but allow a different ordering of the values
within a block. The values do not need to conform to the normal
order required by REBOL function arguments. Dialects are able
to provide greater expressive power for specific domains of use.
For instance, the parser rules themselves are specified as a dialect.
The point here then is that a dialect is different to the REBOL language. As
such, I think a dialect should be coherent within itself.
Jason wrote about VID - "people need to learn syntactic exceptions to
REBOL's norm"
But what constitues REBOL's norm? I think REBOL's norm is remarkably
grammatically unconstrained apart from the order of function arguments (that
why pretty printers are hard to write).
VID however, is more grammatically constrained than REBOL. So people *must*
learn the specifics of VID. For example, think about what the associated
meaning *in VID* is for each of the following VID elements:
- set-word!
- COPY
- paren!
I think the following idea is amusing (I often amuse myself and no one else)
or maybe it is just provocative. Imagine comparing these abritrary
semantics levels
of REBOL and Java:
Dialects <----> .java
Words and Values <----> Bytecodes
REBOL Interpreter <----> JVM
Well it amuses me to think like that sometimes :)
The specific question Jason asked was why VID does not make use of
refinements. Only Carl can answer that definitively.
One possibility is that adding refinements may have made VID harder
unjustifiably harder to interpret/manipulate, both for the VID interpreter
and for people who want to treat VID blocks as data to manipulate
programmatically.
Brett.
[5/8] from: brett:codeconscious at: 31-Jan-2002 14:57
Ooopps! Eheh.
Small but significant correction to my previous post on this thread:
> For example, think about what the associated
> meaning *in VID* is for each of the following VID elements:
> - set-word!
> - COPY
> - paren!
Should be> VID however, is more grammatically constrained than REBOL. So
people *must*
learn the specifics of VID. For example, think about what the associated
meaning *in PARSE* is for each of the following PARSE elements:
- set-word!
- COPY
- paren!
Doesn't change my argument though :)
Brett.
[6/8] from: petr::krenzelok::trz::cz at: 31-Jan-2002 6:27
Hi, :-)
Alessandro Manotti wrote:
> I'm a software developer since 1980. I developed with many programming
> languages, including C, some CPU assemblers, Pascal and Object Pascal,
<<quoted lines omitted: 11>>
> be "coherent". When I find an exception in a programming language, I must
> learn either the standard syntax plus the exceptions.
I don't follow the thread properly, but ...
What is "coherent"? I know some ppl could be nervous of VID, mostly because the
lack of documentation (I mean "low level" one - basic face composition and
proper vid-creation-phase description, etc.), but in fact - dialects are not
supposed to be just some kind of Rebol extension. It is, and it is not Rebol
code at the same time. Look, your so called "coherency" is trade-off here ;-)
Why to complain, because some traditional languages don't allow you to use
different syntax? ;-)
I remember myself moving to OO language. You can't sometimes start even with
simple "hello world" example, if you are not familiar with classes, object
instantiation, all that object dependencies etc. stuff.
Dialects are fine, for the purpose they are defined. Our small group will use
Rebol for Robotic telescope navigation one day. Some folks are skilled enough to
write short "scripts" - in a dialect:
[
set position x y
move rect 20 decl 10 speed level 2
notify ccd camera
]
... in fact, I heard dialects come from astronomy field (Fortran). Can you see
my point? Should my friends know anything about rebol syntax, it's datatypes,
etc., if all they want is to navigate telescope?
> I admit it is not always easy to choose if using refinements or standard
> function options.
hmm, I think that it is even technically possible to come up with dialect
featuring func. refinements ...
Cheers,
-pekr-
[7/8] from: al::bri::xtra::co::nz at: 31-Jan-2002 21:00
Re: R: Re: When to use refinements? : was => {Re: Re: R: Re: VID: choic
pekr wrote:
> hmm, I think that it is even technically possible to come up with dialect
featuring func. refinements ...
After all, a function with refinements is merely a path! datatype.
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[8/8] from: g:santilli:tiscalinet:it at: 31-Jan-2002 15:14
Re: R: Re: When to use refinements? : was => {Re: Re: R: Re: VID: choice
Hello Alessandro!
On 31-Gen-02, you wrote:
AM> Even in English language, in Italian language (my language!)
AM> there is "coherence".
Hmm...
AM> I think Jason is right. Even if I'm using a "dialect", even
AM> this one should be "coherent". When I find an exception in a
Yes. But you're all missing one point: styles are not functions!
Where's the coherence?
Style have optional "modifiers" (the "facets") that have nothing
to do with function arguments; they can appear in any order and
can be of any number. A function is a different concept.
Also, using paths would make the life harder for the dialect
implementor too.
Regards,
Gabriele.
--
Gabriele Santilli <[giesse--writeme--com]> - Amigan - REBOL programmer
Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted