Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

So you name your keyboard "character-event-generator-1", your chair "butt-and-back-holder-1" and your desk "four-stick-and-board-to-hold-items"?


Nope - we already have widely understood descriptive nouns for those things. If I walk into an office and someone asks me to bring a chair over, I know instantly what they're talking about. They might need to qualify it - that blue, high-backed chair with the arms, for example - but if they said 'bring Clive over', I'd be stuck until I learned the (fun!) names of the office chairs, and would likely be confused for a long time until I managed to remember who was who, not to mention that there would be no other incentive to learn those names as that information has no value outside the office. This is the point at issue here.

We also have widely understood descriptive nouns in software development - for example if I hand you a class called 'xyz-repository', you probably know instantly that it's a class designed to manage the lifetime of xyz objects that are persisted to and retrieved from a database. If we had an identity service we could choose to call it:

a) login-and-token-management-service, per your example; unnecessarily wordy but obvious b) identity-service c) gatekeeper, which is fanciful but at least slightly descriptive; we'd probably be able to guess its purpose from the name d) dr-octopus, which is lots of fun and completely useless for helping me to remember what it does

Hopefully you can see that b) is the most boring but most widely understandably name; if b) is not an option because we've invented a new thing that doesn't have a descriptive noun, then a) is still the best choice of the remaining three as it tells everyone what it does without requiring any inside knowledge.

It's about cognitive load - some DSLs add value, others just increase the amount of mental effort required to understand the system.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

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

Search: