On 05/08/2012 09:01 PM, Stéphane Ducasse wrote:
On May 8, 2012, at 8:33 PM, Göran Krampe wrote:
On 05/08/2012 07:46 PM, Stéphane Ducasse wrote:
for me I can understand that people want a format to exchange objects and that
they want to use STON but
I do not understand why we need that to store metadata when a simple array
works. Probably we love to
load our boat with extra readers and writers.
No, it was just a "trigger" for this discussion/comparison.
BUT... I would like you to at least read the parts in my article which is about improving
the literal support we have in Smalltalk/Pharo. The main "problem" with
literals that I can see (compared to Tirade) are:
- There is no restricted parser for them (as Tirade is), you need to use
Compiler and that is a HUGE security problem. But of course, you are fixing
that, right? :)
:) there is no security problem just that gemstone does not have a parser.
Because parsing cannot be a security hole
this is blind data interpretation that is a problem. This is why Github got
problems and I imagine that the code was probably passed in JSON or similar
format.
Mmm, well, if you rely on full Compiler to parse literals, it is a
security problem. But if you use the technique Igor showed to only parse
array literals - then yes, that's safe, I agree. I forgot about his post.
- There is no support for Associations as literals which means there is no good
support in literals to express Dictionaries/key-value-pairs (like JSON has).
Tirade has that in the form of literal Associations. I think we should add
something in this area to Pharo/Smalltalk in general, but for more thoughts on
that, please see article.
Ok let me try to understand what I do not get.
Do you mean that we cannot distinguish between
#((a 13) 'a' 'b' 1 )
and
#(a -> 13 'a' 'b' 1 )
why
#(Dictionary (a 13) (b 15)) or #(Dictionary ((a 13) (b 15)))
is not the same as
#(Dictionary a-> 13 b ->15)
Now the problem is that a -> 13 is not created at parse time. So I do not get
why
I presume you are describing various conventions/tricks to represent a
Dictionary in a literal array, right?
My point is that it would be nice if we actually had proper syntax for
Associations (and or Dictionaries).
regards, Göran