6 ms·
Git is split into two parts: the plumbing, and the porcelain. It's a toilet metaphor. You don't directly work with the plumbing unless you really know what you'
by steventhedev 5y ago
Git is split into two parts: the plumbing, and the porcelain. It's a toilet metaphor. You don't directly work with the plumbing unless you really know what you're doing.
- _ph_ 5y agoThat is one thing authors of open source software should learn: while it might be fun to have clever insider terminology, when publishing, come up with terms which are unabigous to understand. Also, don't use terms which might be off-putting or even offensive to some.
- RobertRoberts 5y agoThe term "plumbing" is so common of a term in the US (maybe Britain also) to refer to "inner workings" of anything at that to be offended by it implies manufactured outrage with dubious motives. This guy is sharing his work of his own free will and deserves respect and owes no one anything at all. A recent news topic you should review on this: https://news.ycombinator.com/item?id=16631476 https://news.ycombinator.com/item?id=16631476 [Edit. Removed slightly inflammatory statement]
- _ph_ 5y agoIt is more the explicit reference to toilets, which also drags the term plumbing into it, as I cannot think of something else than sewage in this context. I don't find the term plumbing by itself off-putting. And it certainly isn't about being offended by "other people's culture". I talked to enough americans who shared my sentiment. And as we see here in the discussion, it just wasn't understood. That was the other part of what I wrote: even if the term might be completely innocent, it might be difficult to understand for outsiders. It is not, that I haven't been guilty myself of bad naming in my projects. It can be fun or even convenient to come up with "insider" terms. But as soon as you have to communicate with outsiders to the project, the tend to bite you, even if there is no offensiveness about it. Naming is one of the hard problems in software engineering :)
- diesal11 5y agoNaming things can be hard. How would you describe the distinction between these two command types?
- _ph_ 5y agoHow about "infrastructure" and "interface"?
- zufallsheld 5y agoInfrastructure is certainly not unambiguous here.
- bmn__ 5y agoLet's see how this sounds when we flip it around. "That is one thing news aggregator commenters should learn: while it might be fun to just put one's ignorance on display for the world to see, when publishing, come up with a modicum of curiosity and willingness to learn about and engage with for the craft and its culture that one is part of."
- _ph_ 5y agoSorry, I have difficulties parsing your statement. While the term plumbing might be understandable by itself, porcellain certainly isn't, until you are explained the metaphor of porcellain and plumbing in this context. It just isn't efficient to come up with new terms for things which have to explained to any newcome to the project. As I wrote in another post, it is nothing I haven't been guilty of myself, but am trying to avoid.
- bmn__ 5y ago> I have difficulties parsing your statement The underlying idea is: as a hacker, and as a first step, the onus is on you to come up with the explanation‡ yourself, not expect the burden of education on somebody else's back to be carried towards you. Same goes for other (potential) git users in a similar situation. It is okay to disagree with this, but then one would mark oneself as a member of the out-group. HTH; HAND ‡ We are blessed to live in the information age. The explanation is abundant and easy to find, literally within seconds: <https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Po...> <https://stackoverflow.com/questions/6976473/what-does-the-term-porcelain-mean-in-git https://stackoverflow.com/questions/6976473/what-does-the-te...>
- pintxo 5y agoCommunication is dependent on context. If two people do not share any context, nothing will be unambiguous. As sender it's impossible to know the context off all recipients beforehand.
- _ph_ 5y agoWithout any context, communication is difficult indeed. But the context here is general IT, a lot of context is established there and can be anticipated by any "sender".
- tubby12345 5y agoPeople are so entitled that they demand 1000s of hours of free (OSS) dev and aesthetics that please them. If the name is off-putting to you, you're free not to use it. If lots of people agree with you (that the off-putting name is more significant than the contribution) then the market will have spoken and the tool will die. But if it doesn't die then you should probably reconsider your hang-up.
- _ph_ 5y agoYou completely misunderstood the intention of my posting. I feel no entitlement to use git. My posting was meant as a comment about practises in programming. Being a long-term developer, I know about all the temptations about funny names, insider jokes, sometimes inappropriate humor. And yes, they are can be fun. But at some point it might be a good idea not to expose all of this to the public. That it is a good idea to try to use appropriate terms for things. Makes it easier to understand.
- tubby12345 5y agoAnd you completely misunderstood the intention of my response: people should try to look beyond their own fragile sensibilities the contribution rather than the aesthetics. Barring that they should just pass (instead of criticizing).
- rswail 5y agoThe guy came up with git over a weekend. The same guy wrote an operating system and named it after himself. In-jokes and easter eggs are famous in software engineering. Linus is the original author of two foundational pieces of software technology in use today. I think he can name things whatever he wants. If you're offended by the terminology of plumbing and porcelain because you can only think of toilets, then I suggest you look around your bathroom and consider what the basins are made of, or the bidet, or some bathtubs. It's a perfectly valid extension of the "plumbing" term meaning the underlying infrastructure, while porcelain is the way users interact with the system. When I do "man git" the first two lines are: NAME git - the stupid content tracker Further down in that manpage is: GIT COMMANDS We divide Git into high level ("porcelain") commands and low level ("plumbing") commands.
- watt 5y agoThe porcelain is where you shit into (the "porcelain throne"), and it implies that the pipes too are all full of shit. I think this terminology was not well thought through. It's somewhat degrading.
- _ph_ 5y agoThanks, that I am not the only one that is put off by the terminology.
- austinjp 5y agoWell, the bath and the sink are also porcelain. The plumbing is hidden (unless you go looking for it) while the porcelain is what you interact with day-to-day.
- HelloNurse 5y agoAnd even more meaningfully for tool authors, the plumbing is very long-lived and general-purpose, with basic objectives like not leaking and not breaking down, while the porcelain is rather easily replaceable, possibly specialized, "smaller" but more complex than plumbing, with meaningful user interface (in Git's case, specifically, designing commands that are unlikely to do harm, easy to understand and efficient after they have been learned) and significant dependence on tastes and environments.
- omnicognate 5y agoIt's called git, and Linus knew exactly what he was doing when he named it. I doubt he cares a jot if the plumbing/porcelain metaphor icks you out a bit.
- andai 5y ago> I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'Git'. https://git.wiki.kernel.org/index.php/GitFaq#Why_the_.27Git.27_name.3F https://git.wiki.kernel.org/index.php/GitFaq#Why_the_.27Git....
- 5y ago