2016-12-08 05:00:58 +0000 <dcoutts_> and the target cli code knows when things are actually ambigious and will suggest all the alternatives
2016-12-08 05:01:09 +0000 <ezyang> less important for user interface, but very important when people program, because that translates into intermittent failure
2016-12-08 05:01:19 +0000 <dcoutts_> ezyang: yes it's important that there be a most-qualified form that tools can use
2016-12-08 05:01:35 +0000 <dcoutts_> but I don't think that has to be the same as the short forms that humans want to use for convenience
2016-12-08 05:01:53 +0000 <ezyang> dcoutts_: Well, I think there's an important social component
2016-12-08 05:02:12 +0000 <dcoutts_> this is a matter of documentation I think, to make clear what the cumbersome fully-qualified syntax is
2016-12-08 05:02:14 +0000 <dcoutts_> for tools
2016-12-08 05:02:15 +0000 <ezyang> because humans tend to use what they know
2016-12-08 05:03:05 +0000 <dcoutts_> ezyang: I'm not sure what you're suggesting exactly
2016-12-08 05:03:13 +0000 <ezyang> Like, can you seriously say with a straight face, that no one is ever going to use the short easy human-readable syntax from a script?
2016-12-08 05:03:27 +0000 <dcoutts_> no I can't say that
2016-12-08 05:03:51 +0000 <dcoutts_> but does that mean I think it's worth forcing everyone all the time to use more long-winded forms?
2016-12-08 05:03:56 +0000 <dcoutts_> well no
2016-12-08 05:04:44 +0000 <ezyang> yeah, so I don't have concrete suggestions
2016-12-08 05:05:26 +0000 <ezyang> OK, maybe I do
2016-12-08 05:05:32 +0000 <ezyang> which is to syntactically distinguish between the forms
2016-12-08 05:06:38 +0000 <dcoutts_> but that is forcing people to add distinctions in the typical case when they're not necessary
2016-12-08 05:06:57 +0000 <dcoutts_> e.g. a hypothetical syntax @foo vs $foo for example
2016-12-08 05:07:00 +0000 <dcoutts_> rather than just foo
2016-12-08 05:07:08 +0000 <dcoutts_> for a package or component named that
2016-12-08 05:07:18 +0000 <dcoutts_> or indeed a directory or module
2016-12-08 05:08:22 +0000 <dcoutts_> the argument a user would make is: why do you make me write stuff that can be inferred automatically
2016-12-08 05:09:05 +0000 <dcoutts_> and they will likely not look very kindly on us saying "oh but what if you wrote a script and didn't think about it"
2016-12-08 05:09:45 +0000 <ezyang> well, if we're on the subject
2016-12-08 05:09:51 +0000 <ezyang> why bother asking the user to write unitid: at all
2016-12-08 05:10:21 +0000 <dcoutts_> oh well, unitid is not needed by "real" users, only hvr's scripts
2016-12-08 05:10:39 +0000 <dcoutts_> so it doesn't need a convenient short form
2016-12-08 05:10:43 +0000 <ezyang> I think there is utility to being able to look at a string identifier and being able to tell what it is denoting, without any extra info
2016-12-08 05:10:58 +0000 <dcoutts_> there is utility in that
2016-12-08 05:11:15 +0000 <dcoutts_> but it has to be balanced against the fact that users have to type these things all the time
2016-12-08 05:11:17 +0000 <ezyang> well, I'm not going to complain strenuously :)
2016-12-08 05:11:27 +0000 <ezyang> dcoutts_: I always C-r my lines ;)
2016-12-08 05:11:31 +0000dcoutts_wants decent tab completion too
2016-12-08 05:12:12 +0000 <dcoutts_> so I've tried to design this as a user interface primarily, and machine interface secondarily
2016-12-08 05:12:35 +0000 <dcoutts_> so allowing case insensitivity, module names, file names etc