differences among niño, chico and muchacho
It seems they all mean "boy" but I'm not sure... is there any difference? In my mind I have this fixed: niño-> kid (not older than 10-14 years) chico-> boy (from 14 to 20) muchacho-> guy (from 20 to 35)
In El Paso, you don't call any kid a niño/niña unless they're still in diapers. If you call a school-age kid that, they think you're calling them a baby and are teasing/bullying them. Around the schools were I work, adults regularly refer to the students as mijo/mija (mi hijo/mi hija), and despite it seeming overly familar to non-Latino Americans, it's acceptable pretty much anywhere in polite situations. But I do here children referred to as los niños collectively.
Chico/chica here often is used to refer to young adults who are seen as not being very irresponsible or don't have their priorities in order. I mostly hear it when someone's talking down to a young man or being a sexist pig/creeper scumbag towards a young woman. It is sometimes be used around here in more neutral terms in different settings, like among family or friends, and by Spanish speakers who are from other areas outside of El Paso/Juarez, but this is one term that as a non-Latino I steer away from.
Hermano/hermana is used here in the some groups regardless of whether they're actually related, but it denotes familiarity that may not be welcomed by someone who doesn't know you. I hear muchacho/muchacha sometimes, not often, but it is used and as far as I've heard it, it's polite and neutral.
I do hear ese used, but that too is a terms as white person I stay away from. It's slang and how it's taken depends on who's saying it and in what context it's used. It can be pretty insulting.
At 25 you'd call him a "man" in English just as you'd call him "un hombre" in Spanish. Technically true but sounds a little funny in everyday speech. You could definitely call him a muchacho since he's technically an adult but still young. By 30 he'd be too old for it unless you're speaking jokingly.
@smithy372 I agree with you when you say that males don't fit into exact age grouping, I repeat exact... but anyway I'm italian and in Italian language we have different names for males when they grow up: bambino, ragazzino, ragazzo, uomo... Maybe that's the reason why in my mind I needed to distinguish them in Spanish too. Never mind.
While travelling in Latin America I learned that calling a young man that you don't know muchacho is appropriate. If you call someone senor or senora instead of muchacho or muchacha, you can make them feel old. I found this particularly true for waiters or merchants who were on the younger side.
It is basically slang meaning something like homey.
My spanish friend from Madrid answered me to the same question as follows: niño is the youngest, chico is like someone who is 10-14 years old, and muchacho is a bit older that this. Obviously it is not a big difference and you can even use the three words in other ways, but that's the idea!
In Spain I hear niña used a lot amongst my peers to each other (in their late 20's and older), otherwise it's generally guapa and guapo. I have also been called niña by the sales girl in the supermarket and other strangers (I'm 30!). I'm a big fan of 'guapo/a', both using it and being referred to as 'guapa' and I have even been called 'guapa' by old ladies on buses, trains, etc so it seems to be a very common, casual and warm way to refer to someone here in Spain. It can mean pretty or sexy so I guess it depends how you use it and maybe you need to be careful if you're a male but I feel like it's a term of endearment. Not for your waiter/waitress unless maybe you think you might have a chance of getting their number ;) When my spanish boyfriend first meets my non-spanish girlfriends he greets them with "hola guapa" and it's not the same as saying "hello sexy"... or he wouldn't be my boyfriend. Though they also don't understand what he's saying. haha! I also hear 'chicos' and 'chicas' used all the time for adults and this is my preferred option for how to address someone I don't know who is aged between 20 - 50, depending on who they are and the level of respect you need to show. Obviously I wouldn't refer to a policeman as 'chico'. I've never heard muchacha here but I've always thought of it more as a Latino word.
In a burger restaurant in Las Palmas de Gran Canaria, the old lady at the counter was repeatedly calling me "niño", which I thought was funny (I'm in my thirties). I later asked a Spaniard, and she told me that this is common in the Canaries and in Latin America. Indeed, now when I pay attention, I sometimes hear adults calling each other "niño" or "niña".