It’s mainly horrid, because it means you have to code extremely defensively (or I guess, use a different API).
You can’t rely on new Date("not a date")
aborting execution of your function by throwing an error. Instead, you have to know that it can produce an Invalid Date
object and check for that. Otherwise a random NaN
shows up during execution, which is gonna be extremely fun to try to find the source of.
I understand that it’s implemented like that partially for historical reasons, partially because it’s often better to display “NaN” rather than nothing, but it’s still the sort of behavior that puts me in a cold sweat, because I should be memorizing all kinds of Best Practices™ before trying to code JavaScript.
I don’t have experience with Jujutsu, but I always have the same problem with these alternative frontends, which is that I’d still want to be proficient with the original. If you need to look up how to fix something or you want to help others in your team or you want to script something, then the language to speak is simply the Git CLI.
And I don’t feel like I even use the Git CLI enough where a different tool could be so much better that it’s worth learning both.
Obviously, your priorities may differ, but yeah, that’s just always the reason for me why I prefer the Git CLI, even if it were objectively more difficult to use.