There is a python bridge to ObjectiveC so you can have your cake and still get fat.
[link|http://www.macdevcenter.com/pub/a/mac/2003/01/31/pyobjc_one.html|http://www.macdevcen...1/pyobjc_one.html]
But if you can use ObjectiveC then I'd recommend FScript for your scripting environment.
[link|http://www.fscript.org|http://www.fscript.org]
I have a lovely fscript/clips/Objective C bridge for doing expert systems using Objective C objects as facts and fscripts as rule actions.
If you are going to do a serialization format then I recommend PLists (ObjectiveC style property lists). The parser is *very* easy to write (compared to dealing with xml parsers). I have one you can have in Java - porting it should be easy. A PList element is a dictionary, list, or string.
{ key1 = value1; key2 = value2; } // this is a dictionary
( one, two, three ) // this is a list
a string is either a token (letters, underbars, and numbers with no spaces or punctuation) or it is quoted and follows C-style escaping conventions (ie \\n is newline, \\t is tab).
You can combine these in any combination. Example
{
CDCollection = (
{ artist = Prince; title = 1999; tracks = (); },
{ artist = "Thomas Dolby"; title = "Aliens Ate My Buick"; tracks = ( "Key to her Ferrari", Airhead, "Hot Sauce", "Budapest by Blimp"); },
{ artist = Eurithmics; title = 1984; tracks = (); });
Owner = "Todd Blanchard";
}
With a little extension (found in ObjectiveC and in my java lib) you can use keyvalue coding to do extractions. For instance:
[dict valueForKeyPath: @"CDCollection.artist"]
Will return a list of artists. This is amazingly handy for binding complex data locations to GUI elements.
So there's a lot to like about PLists as a serialization format. They are readable and you can read/write them in one statement.
I steer clear of XML whenever possible.