I find the scripting interface a general headache and hassle. No matter what language. e.g. writing code like this to create a layermask:
activelayer_createmask = function()
{
var idMk = charIDToTypeID( "Mk " );
var desc77 = new ActionDescriptor();
var idNw = charIDToTypeID( "Nw " );
var idChnl = charIDToTypeID( "Chnl" );
desc77.putClass( idNw, idChnl );
var idAt = charIDToTypeID( "At " );
var ref49 = new ActionReference();
var idChnl = charIDToTypeID( "Chnl" );
var idChnl = charIDToTypeID( "Chnl" );
var idMsk = charIDToTypeID( "Msk " );
ref49.putEnumerated( idChnl, idChnl, idMsk );
desc77.putReference( idAt, ref49 );
var idUsng = charIDToTypeID( "Usng" );
var idUsrM = charIDToTypeID( "UsrM" );
var idRvlA = charIDToTypeID( "RvlA" );
desc77.putEnumerated( idUsng, idUsrM, idRvlA );
executeAction( idMk, desc77, DialogModes.NO );
}
Really? I mean seriously? You can hardly write anything without using the listener to find the corresponding charID ActionReference Descriptor what-the-eff-ever sequences.
I am currently migrating quite a bit of our jsx code to python+COM mainly because these are automated parts to be run headless on renderslaves and the jsx experience wasn’t exactly pleasant in that context either.
Regards,
Thorsten