Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm not sure if I'm using the correct term, but would you program using High-level abstractions like Powerbuilder, or some CMS like MODx or DotNetNuke? I haven't dabbled in any of these yet. The reason I'm asking is that I kind of feel intimidated by the whole notion of using any abstraction over the languages I'm using. I'm thinking that my job might be over-simplified. While it may provide business solutions faster, I'd rather be coding straight from, in my case, .NET.

Do/Would you use abstractions like these or prefer them over programming in lower level languages?

share|improve this question
up vote 11 down vote accepted

I've got no problem with using high-level abstractions, with two caveats:

  1. Any abstraction that you can't get underneath when necessary is evil, because it will occasionally be necessary. Avoid these.
  2. Don't ever use any abstraction without a solid understanding of what's really going on under the hood. Not doing this will frequently cause performance problems, and occasionally cause correctness problems, both of which are very difficult to debug since you don't know what's really happening.
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.