“…fearsomely complicated…” Indeed.
I think it is very easy for us all to forget how complicated it is to make programs do what they do. Fantastic, simple UIs completely mask the hundreds of thousands (or millions) of lines of code that make programs work. We have had someone in our office developing a “simple” script to automate one of our current enterprise program functions. It has taken him hours upon hours of work. Establishing the algorithms to make “simple” functions behave in an intelligent manner is a complicated task in itself, which is to say nothing of the actual coding to implement said algorithm. It truly fascinates me. I then take that wonder and ponder Dorico, and all of the innumerable rules and conventions that are well-established in music (yet different for certain genres/instruments) and marvel that you all are able to make heads/tails of it all. Dorico makes very intelligent decisions because the algorithms are so intelligent…which is to say nothing of the monumental effort to make the program function and implement that knowledge.