HN2new | past | comments | ask | show | jobs | submitlogin

> In general I tend to err less on the side of "you're holding it wrong" gatekeeping in tech

That's not gatekeeping. I'm pretty sure anyone that points out `<` would like anyone that doesn't know it to become familiar with it. That's precisely why they mention it. To gatekeep would be for someone to say that people that aren't familiar with it shouldn't have access to the shell. No one is saying that.

> There is room for other interpretations, but I'd say if it's super common for people to not know something, which appears to describe this, it doesn't meet the definition of basic. I'd say "basic" shell knowledge is that commands or programs produce output which is where many stop and why it's common to use cat this way.

I feel that's the same bar as saying that knowing how to use a keyboard and mouse is not basic because most people just learn to use their phone's touch interface, given how there's now a lot of people that have a smartphone but not a computer. I don't mean in our circles, but in general.

What's probably going on is that the boundary between basic and intermediate probably moves depending on increased adoption with different proportions of motivations. That is, most learners of the shell before were probably motivated to use it as their main interface, later one of their main interfaces, and now maybe there's a lot of people that need to run a command or 2 but don't really want to use it as an interface at all, so they never bother to learn beyond the most absolute minimum they need to.

> Maybe the way shell handles input, output, and redirection isn't intuitive and poorly designed.

I don't think being intuitive is always the most important criteria to something being well designed. Many things imply trade-offs, and for example if the average potential user values versatility over intuitiveness, and there's a tradeoff to be made between the 2, it's ok to not go for the intuitive option.

That said, the redirection operators seem as intuitive as they can be. Arrow from file to command for input, arrow from command to file for output. What's a better alternative? To just remove file redirection features and leave piping?

Processes will have inheritable file descriptors. Right now, the easiest and quickest way to make ad-hoc arbitrary arrangements of file descriptors is with the shell's file redirection features. Doing it on anything else (Python, C, whatever) requires more code. That seems like successful design to me.



> It's a basic shell feature that every terminal user should know from day 1. Hardly a "trick".

> That's not gatekeeping. I'm pretty sure anyone that points out `<` would like anyone that doesn't know it to become familiar with it.

Can't see it being pointed out here. No snark intended.


I'm not that person, so I don't know how they meant themselves to be interpreted. I interpret their comment as correcting the fact that file redirection is not a trick but a basic/core feature and emphasize that with their hyperbole of everyone knowing it from day one. I don't think they mean to dissuade people from using the shell. I don't think they mean their statement in the way of "if you didn't know this, you're not a real terminal user. Get out of here". Maybe I'm wrong and that was their motivation. I don't know.

I was also interpreting user3939382's use of gatekeeping in the context of other similar comments not just the one they were directly replying to. That's probably my mistake.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: