r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3-OLD1]

RobertS
13-Aug-2009
[16592x4]
What is obscure about a syntax which permits literal strings to be 
literal strings?  Try assigning  set lit "{test} {" in your favorite 
Tcl interpreter.  I am not a JSON expert but [{ looks like JSON to 
me so #{[ "looks worrisome to me"   JSON or YAML or something other 
than XML is going to be important whether REBOL likes it or not. 
 Take RDF as one exmaple ( I prefer Topic Maps - please do not attack 
the example, but the isea ).  The fact that most people seem to think 
that RDF is XML does not make it so.  Tim Berners-Lee prefers some 
form of Triple notation for RDF.  Not XML.  As soon as a notation 
uses curly braces we have a problem using Curl on the server-side. 
 Please don't point to QM.  IT is not just tightly coupled to HTML 
it is married to it.  The web is not HTML it is HTTP with Content-Type: 
 set in the response header.  If that content type uses curly braces 
we have to start escaping characters in Rebol.  Awkward templating 
is dooked templating.  Let me repeat: doomed.  Folly.
Pekr: take any peice of template code that ends with curly braces 
unbalance, then insert a value through templating and then clsoe 
off the curly braces.
Now try assigning those opening and closing pieces to variables so 
as to generate code.  If you try to use Rebol then there is an immediate 
problem because a great deal of real world code uses quoted strings. 
 So now you need a literal string.  But in Rebol that will be in 
curly braces. Sunk.  Now you are escaping chartacters when you are 
tyring to generate code.  No problem if code genrated by Rebol is 
consuked by Rebol.  But that is not realistic.  So now you are generating 
code with Rebol but then preporcessing hte code with Perl to strip 
out the escaping carets on the ^{ and ^} ???
consumed by Rebol
Pekr
13-Aug-2009
[16596]
For me - REBOL is important, no need to adhere to JSON on my part. 
What I was trying to say is, that if we step aside because of every 
possible pseudo popular system, then we might miss some characters 
to use for quoting anyway :-)
RobertS
13-Aug-2009
[16597x2]
JavaScript and ActionScript enjoy "psuedo-popularity" ?!?  And white 
wine - say Chablis - with seafood ... pseudo popular as well?  Someone 
who thinks the latter drinks too much beer or too much whiskey or 
no wine or what?
R3 rejects   comment { this is my test { }
Pekr
13-Aug-2009
[16599]
real world code

 ... then why using REBOL, if there is plenty of  real world much 
 better code much better languages around. I can accept anything, 
 maybe the fix is easy, and then we should just submit a ticket, or 
 - the worse case, it could affect REBOL internal parser, making it 
 more complicated, slower. Dunno ...
RobertS
13-Aug-2009
[16600]
Ok fine.  But R3 also rejects  comment  {this is my silly test { 
}   and whatever could explain that could not justify that in the 
real world.  Back to Tcl we go.
Pekr
13-Aug-2009
[16601x2]
surely it rejects it, as you did not escape the left curly brace, 
no? Well, I am really probably dumb, but how could you expect above 
code to work? You did NOT escape the code upon the REBOL's standard. 
Do you expect not escaping char used for string representation in 
other languages?
So if I understand you correctly. REBOL is escaping/allowing escaping 
curly braces correctly via ^{, but the trouble is, that the curly 
brace is very often used in other languages for code sections, so 
it makes generating/mixing the code difficult?
RobertS
13-Aug-2009
[16603]
A scripting language on the server must tolerate literal strings. 
 Python at google is one example.  Rebol is not at google. Dave Hanson 
is.  But ICON is not. So it is not some conspiracy.  No one is out 
to subvert Rebol.  JSON was an example.  Examples abound.
Pekr
13-Aug-2009
[16604]
how do you define literal string?
RobertS
13-Aug-2009
[16605]
A nightmare if Rebol's output is to be another langauge's input.
Pekr
13-Aug-2009
[16606x2]
our literal string is "content" {content}, and if you want to use 
quotes or curly braces, you have to escape them ...
So what you are asking for is to use some really weird combination 
of chars, which could not by accident happen inside your string (unless 
someone is crazy), and use them as a string delimiter?
RobertS
13-Aug-2009
[16608x2]
A literal string has an indiated start and an indicated end and between 
you do not hiccup - how could we break comment on another forward 
curly brace?
literal string delimiters.  We are now UNICODE so we take our pick.
Pekr
13-Aug-2009
[16610]
Are we breaking comment on another forward curly brace? Works in 
R2, no?
RobertS
13-Aug-2009
[16611x2]
Can we not use a word such as lit ?  ( as I dare not suggest the 
word 'ls
busted in R276
Pekr
13-Aug-2009
[16613]
hmm, you are right with comment. So we basically can't comment larger 
section of code, by enclosing it in {}
RobertS
13-Aug-2009
[16614x4]
Escaping characters in comments is pure Tcl to my mind.  I love Tcl. 
 But it should be used as Expect for what it is good at.  Rebol is 
far more powerful and flexible and on one point exceedinly silly.
The Tcl community has had some very high-level discussions among 
serious Tcl experts on their comment and brace balancing  issues. 
 The result is that their problems are there to stay.
I see it as a failure to evolve.  They see the problem as an indication 
of their strength (their unique interpreter strategy )
What about using a word which requires three paramaters the first 
and third of which must be those delimiters ( smart might be to have 
3 sets of delimiters which need not even be paired - or to have what 
counts as a delimiter set for the user context with one pair of system 
defaults.
Pekr
13-Aug-2009
[16618]
couldn't we somehow use some rebolish combinations to identify a 
lit string? e.g. your's suggested ~{, or gab's #[{     }]#  (more 
easily noticeable)
RobertS
13-Aug-2009
[16619x2]
OOps, I left a right parenthesis stranded - luckily the text widget 
did not reject  my input ... ;-)
I thinkt he answer is to have Carl open a post on his R3 blog and 
get some comments - somefeedfack can get us to toptimal choices - 
maybe the anser is to have 3 pairs avaialbe - I don't know ( I'm 
just a Rebol user, not a Rebol guru )  Okay, Okay, I'm also a pain-in-the-neck 
 ( I really do have cervical osteop. in real life - not usually funny, 
but that's life ;-)
Pekr
13-Aug-2009
[16621]
Who will ask Carl? Should I do it? I am rather good in bringing some 
topics on the table with Carl :-) OTOH BrianH might have even better 
channel to Carl ...
RobertS
13-Aug-2009
[16622]
I am hoping this is on BrianH radar ...  I thought at one time you 
were kinda the guy who spoke for the community ?  Gab is aware of 
this and Oldes - doesn't he generate FLASH or PDF or something ? 
 At the moment my own option is to take shelter in PHP and PHPTemplate. 
 I wanted to fall back on Smalltalk but all the web frameworks from 
the MVC gurus seem to miss the point that the View was supposed to 
be de-coupled.  Go figure.
Pekr
13-Aug-2009
[16623]
I don't remember anyone bringing this topic as important to solve 
...
RobertS
13-Aug-2009
[16624]
Personally I could not just wait for R4 and hope to see it fixed 
there. Any langauge which cannot tolerate literal string I cannot 
use.  Any of the alternatives are nowhere as suitable as rebol to 
server-side scriping.  I love Rebol.  It's not personal.
Pekr
13-Aug-2009
[16625x2]
R4? We are working on R3 for 3-4 years and still not finished. Before 
we get to R4, I will retire :-)
Found this nicely explaining string literal - http://en.wikipedia.org/wiki/String_literal
RobertS
13-Aug-2009
[16627x5]
I think that in UNICODE raw string is now meaningless to end users; 
Americans ignore that European languages often have variant opening 
quote from closing quote ( as did British English in my youth, as 
I recall )  this is a new phenomenon in America: educated Americans 
spoke French, read French and if they were mean, had often spent 
time at a German university,  The North American shool system was 
of Prussian insoiration, as I recall.  But atleast Carl is learning 
French ... but does he use << and >>  ... that I woulldn\'tt know 
\"  ;-)   So that leave literal strings  such as @"  "@  I still 
use a language with a character count delimiter pair
prev {"mean"  read 'men' }
a mirror-terminator of "@ is my idea of a bad idea
some string literals should be un-preprocessed and un-processed verbatim 
content.  "Verbatim string" might be less confusing than "literal 
string" which sould like "string literal".  "pristine string" has 
a nice ring.   vs{  virgin string  }sv
C# verbatim strings require that double quotes be escaped.  Good 
for them.  Keeps 'em busy.
Henrik
13-Aug-2009
[16632]
http://www.rebol.com/article/0420.html


August plan. No GUI, which is to be expected. Too much work left 
before that happens.
Pekr
13-Aug-2009
[16633x2]
August is short, we are almost at the middle of August. I expect 
some bugfixes, BrianH syncing his module related work, maybe new 
additions/fixes to extensions, I think GUI can wait a bit :-)
We should not probably also forget about parse - before we get to 
protocols, etc., it would be probably good to have some parse enhancements 
implemented ... or so I think :-)
BrianH
13-Aug-2009
[16635x7]
RobertS, you said that similarity with TCL is a red flag, but that 
is not the case. TCL, like Ruby, is known to be bad because of its 
internals and semantics, not its syntax. XML and Perl are the ones 
with bad syntax.
What is obscure about a syntax which permits literal strings to be 
literal strings?
 - Most languages don't support it.
So now you are generating code with Rebol but then preporcessing 
hte code with Perl to strip out the escaping carets on the ^{ and 
^}

Completely unnecessary. REBOL escaping is only a REBOL syntax trick 
- in memory the escaping carets don't exist. If you don't want carets 
in your output use PRINT, FORM, WRITE, or anything but MOLD. There 
is no interoperability argument for heredocs whatsoever.
REBOL can generate JSON just fine, and there are no carets in the 
generated output.
I am not saying that heredocs are a bad idea (and have given some 
advice on them in the CureCode ticket). However, they are not *needed* 
for any of the reasons that you have stated. The only reason we would 
want them is for minor ease-of-use improvements, and because several 
other languages in roughly the same category as REBOL has something 
similar.
RobertS, this means that you can do server-side processing of JavaScript 
using R3 right now, without heredocs. All you need to do is escape 
unbalanced { and } in your REBOL syntax { } delimited strings. The 
escaping is resolved at LOAD time, so the resulting strings don't 
have escape sequences in them. Then you can combine and generate 
the resulting string data without concerning yourself with escaping.
A server-side scripting language which cannot handle literal strings...
 (the long message)

I had a little difficulty finding any criticisms of REBOL or its 
string literals in this message that actually apply to REBOL 3 even 
now.


- { } balancing exists make generation of brace languages like JS 
and CSS easier. You only have to escape { and } if they are unbalanced 
in the syntax; most of the time they aren't. R3 already fixed the 
^{ console bug, so that isn't a problem. And the escaping only applies 
to REBOL syntax, and is resolved by LOAD - there is no escaping in 
the data once loaded.

- COMMENT is a function, not syntax, and that function doesn't even 
need to be there most of the time. REBOL doesn't have block comments 
at all. And doesn't need them for the most part - COMMENT works when 
they are needed.
- The meritocracy argument doesn't apply here (or make sense).

- Unicode is supported just fine (at least within the BMP). String 
escaping doesn't affect Unicode support.

- String escaping doesn't affect string data - it's just a syntax 
thing.

- JSON is supported just fine in R3, better than in R2 since the 
R3 data model is a better match. String escaping doesn't affect JSON.


The one part that made sense is that #[{ }]# would be bad for specifying 
JSON data - true that. Something starting with # for the start delimiter 
would be good, but not starting with #",  #{ or #[  since those would 
conflict.


I suggested in the CureCode ticket that the last character of the 
start delimiter and the first character of the end delimiter be newline 
- this would make the heredocs really distinct. There would not be 
a need for single-line heredocs because there could only be a small 
number of characters in them, small enough to escape. Just a suggestion 
though.