I agree. In fact, this printing has only been in place since
https://trac.sagemath.org/ticket/21286 . Before we'd get D[0](f)(x). That's in fact also not so hard to parse. With something along the lines of:
from sage.symbolic.operators import FDerivativeOperator
class Doperator(object):
def __getitem__(self,L):
if not(isinstance(L,tuple)):
L=(L,)
return lambda f: FDerivativeOperator(f,L)
D=Doperator()
in place, we can just write D[0](sin)(x) .
If you're going to make diff(...) parseable, perhaps we can make the above as well. Whether we can bind this to the toplevel letter D is another matter.