
I am sure that it is now too early to draw conclusions about PyON. Best regards, Zaur 2008/11/7 Josiah Carlson <josiah.carlson@gmail.com>:
On Thu, Nov 6, 2008 at 12:08 AM, Zaur Shibzoukhov <szport@gmail.com> wrote:
2008/11/6 Josiah Carlson <josiah.carlson@gmail.com>:
I guess I really don't understand the purpose of PyON. Syntactically it doesn't fit between json and yaml. It supports features that are more useful for a serialization language for RPC, etc., rather than configuration/inlining. And it doesn't really offer a reverse of representation -> object without going through the standard Python parser and executing the result (which has security implications). PyON dosn't use exec in order to reconstruct obbject. It uses python parser for constructing AST and then builds object using pickle-like protocol from AST. I guess PyON could be used as standard reconstructable representation of python objects.
Then that strictly limits it to Python. No other language can make use of it. And in that sense, we may as well use pickle (which is fast, already exists, supports recursive object definitions, as well as arbitrary Python objects).
Again, json is very human readable/writable, is very close to literal Python syntax, and already has support in just about every language worth discussing (and Python offers a json loading module in the standard library). Can you give me a good reason why someone would want to choose PyON over json in 6 months? If someone need standard way for reconstructable representation of almost every python object based on python syntax then PyON is a possible choice (probably in near future). Also maybe in the future someone will offer better solution for reconstructable representation of python objects based on python syntax.
Also I do not think that PyON should be used instead of JSON.
Limiting yourself to Python syntax for something that really isn't human readable (in particular recursive structures and arbitrary object serialization) doesn't make a lot of sense. It's like limiting yourself to a 3rd grade vocabulary level for a doctoral dissertation because you think that 3rd graders might want to read it some day. People don't really read object representations. And when they do, it's because the representations are configuration files, in which self-references are a *really* bad idea.
If you want a pure-python representation (rather than json), look at 'unrepr'; it uses the Python parser, and by default only supports standard data structures. It can be extended to support arbitrary classes with standard instantiation methods.
- Josiah
-- С уважением, Шибзухов З.М.