On Apr 28, 2015, at 10:59 AM, Andrew Wang <andrew.w...@cloudera.com> wrote:
> 
> This is also not something typically upheld by unix-y commands. BSD vs. GNU
> already leads to incompatible flags and output. Most of these commands
> haven't been changed in 20 years, but that doesn't constitute a compat
> guarantee.

        One of the reasons why Solaris doesn’t officially support user names 
greater than 8 characters is because of the breakage to ls and what that would 
do with how one parses them.  So, yes, it is upheld in cases where it would be 
too big of a burden on backward compatibility.  (That’s the easy example, I 
could give a lot more from my days at Sun if you’d like.)

> This is something I'd like to follow for our own commands. We provide
> different APIs for machine consumption vs. human consumption, and make this
> clear in the compat guide. Of course, we should still be judicious when
> changing the human output, but I just don't see a good way forward without
> relaxing our current compat guidelines.

        I think that’s a great suggestion.

> The other thing to consider is providing supported Java APIs for the
> commonly-parsed shell commands. This is something we have much more
> experience with.

        I think people forget about who the customer of some of these 
interfaces actually are.  I can probably count the number of ops people I know 
who speak Java frequently enough to be comfortable with it for every day use on 
two hands. In this particular case, fsck is, by and far, an ops tool.  Give us 
perl and/or python and/or ruby bindings.  That was the promise of protobuf, 
right?  But Java? Yeah, no thanks, I’ll continue processing it from stdin with 
a couple lines of perl than deal with the mountains of Java cruft. 

        <insert “we don’t do enough planning around major releases so we have 
these issues” argument here>

Reply via email to