Hacker News new | comments | ask | show | jobs | submit login

For some reason people don't use the phrase " so you don't have to" when selling you on complete abstractions like higher level languages. I've only ever heard that exact phrase when someone is shilling an incomplete abstraction, which is funny because that is case when you still need to understand the lower level.

Everything in engineering is about trade offs. You bullshit detector should go off whenever someone acts like there are only pros and no cons. The phrase "so you don't have to" seems to pop up when someone is trying to pull to wool over your eyes.

Yes, higher level languages are "so you don't have to". You just declare a function with parameters, for example, and don't have to worry about which numeric offset into the stack frame is that parameter, and where do the local variables start. You don't have to worry about allocating registers to your intermediate values.

"So you don't have to" is entirely valid.

You have running water so you don't have to walk half a mile to some well with a bucket. The trade off is the whole plumbing infrastructure and the trade which maintains it.

"Use garbage collection so you don't have to call free and deal with segfaults" is an absurdly common thing for people to say.

Not saying the situations are that closely analogous, but a huge part of high level languages is not worrying about that issue.

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