It's a matter of preference. For complicated function calls where you want to document each parameter, or where the variables are rather long and there are many of them, this can be good.
For example:
do_complex_op( 0, //Starting state, always 0, ask Joe why X, //X-coord of thingy y, //Y-coord of thingy 73, //in this case, we don't want to use Z but want constant dlogMessageTitle, //message for dialogue title dlogMessageText, //message for dialogue contents, don't care about this. SomethingIP, //IP of something-or-other server, can be NULL, won't crash. someObject.childObject.getValue(key1).HVAL, //very long path to HVAL someObject.childObject.getValue(key1).LVAL, //very long path to LVAL this.parentWindow.owner.mainTextBox.text.value.trim, //get the trimmed text, untrimmed text causes weird output pvrMainSettingForLongBlahs.getObjectByPath(somePath), pvrMainSettingForLongBlahs.K_TCA_UPPER_LIMIT, pvrMainSettingForLongBlahs.K_ENDPOINT_COMPLIANCE_LEVEL, );
With languages that allow named parameters this is more common if you use the parameter names (example is in PL/SQL):
PKG_SOME_TEST_CODE.FN_DO_SOMETHING( in_text => 'test text', in_id => v_id, in_ref_id => v_ref_id, out_array_for_storage => v_bArray);
But I agree with you that if the function call is simple and not too many parameters, this could get annoying, such as:
setColour ( r, g, b );
I find much easier to read as
setColour(r,g,b);
For @ammoQ:
rc=a(b,c(d,e(f))) rc=a( b, c( d, e( f ) ) )