3 ms·
Great read, and following these rules is so important when designing CLIs. It's such a shame that for all its popularity, Git spits in the face of so many of t
by acabal 12y ago
Great read, and following these rules is so important when designing CLIs.
It's such a shame that for all its popularity, Git spits in the face of so many of these rules (least surprise, reversibility, failure, silence, predictability, etc.). It can be argued that understanding Git's plumbing obviates some of these violations, but I'd counter that I have better things to do than memorize intricate plumbing and byzantine combinations of commands and flags just to get usable source control. In either case, it's a fine VCS saddled with a tragic command-line interface, and it's become so popular that we're going to be stuck with that CLI for ages now.
Just goes to show: The command line is so elegant and pleasant when programs follow these rules. Make an effort to get your CLI right from the get-go, because if your program becomes popular you won't be able to change it later.
- cbd1984 12y ago> It's such a shame that for all its popularity, Git spits in the face of so many of these rules (least surprise, reversibility, failure, silence, predictability, etc.). Probably an artifact of the fact git was originally designed to be a kit others could use to make a DVCS with a nice interface. Which might point to another maxim: Always expect that your interfaces will be used widely, even if you don't expect them to be. An extreme, pathological example of this is the BANCStar programming language: http://en.wikipedia.org/wiki/BANCStar_programming_language http://en.wikipedia.org/wiki/BANCStar_programming_language http://reocities.com/ResearchTriangle/station/2266/tarpit/bancstar.html http://reocities.com/ResearchTriangle/station/2266/tarpit/ba... https://github.com/jloughry/BANCStar https://github.com/jloughry/BANCStar
- marktangotango 12y agoBANCStar was new to me, thanks for that!
- ta0967 12y ago> Probably an artifact of the fact git was originally designed to be a kit others could use to make a DVCS with a nice interface. as someone who's been tinkering in that space: it falls flat in that regard as well. it's hard to build on top of something lacking orthogonality.
- anon4 12y ago> http://reocities.com/ResearchTriangle/station/2266/tarpit/bancstar.html http://reocities.com/ResearchTriangle/station/2266/tarpit/ba... Note that a lot of the links in there don't work anymore and you'll need to use archive.org to view them. In which case I would also ask you to donate to help keep the archive alive, if you can.