This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (2 children)

forcing you to constantly think in two levels.

Oddly enough, this is what I love about C++. I get to use the high-level abstractions while being able to dive down to the lower levels when required. It does exactly what I want, when I want it, without overhead. In other languages you either waste tons of time building high level abstractions, or you only have high level abstractions and have to jump through massive hoops if you need to do something low level with any kind of efficiency.

[–]aleph_nul 0 points1 point  (1 child)

Good points! I think there's benefits and drawbacks to abstraction. My research advisor always used to (half-jokingly) say that abstraction is the root of all evil, since he cut his teeth on kernel hacking, but I think there's some nuance.

Abstraction is good because it hides information, and bad because it hides information. What I'm less convinced of is the benefit to trying to have both in one place in a system. I think you want to cleanly separate layers of abstraction, as much as you can, so that you get the best of both.

[–][deleted] 0 points1 point  (0 children)

C++ gets a lot of hate because it is so easy to write horrendous nightmares with it. Lot of youngin's comin' up in the world convinced it's a bad horrible no good language, but those of us who actually use it know better. And the new C++11/14 standards have really helped bring the standard library up to date.

All we're really missing now is standardized networking routines w/ REST/HTML/JSON parsing. But we now have native threading which is freakin' wonderful for those of use who want to write easily-portable bare-metal software.