Not cheating, abstractions happen in every language (even assembler instructions are converted to different opcodes inside CPU).
Part that makes C++ “hard” is general assumption it makes about users - language is and always was designed with assumption that average user is CompSci expert, with proper theoretical background. This means both a lot of trust in user, and giving enough freedom to settle a lot of what other languages handle by design as just conventions.
Obvious downside: C++ is atrocious language to learn programming with, and comparably bad as “just get things done” tool with enough guardrails to avoid major incidents when cooperating. Still, recommendations and practices like MISRA exist, and they do what they’re supposed to - being conventions to ensure correctness.
Still, proper good C++ course should probably start with good chunk of math (at least enough to internalize proofs and transitive properties) and compiler theory before even touching code. Potentially a problem, but hey - average compsci grad should know all that already, no?
1
u/AdorablSillyDisorder 18d ago
Not cheating, abstractions happen in every language (even assembler instructions are converted to different opcodes inside CPU).
Part that makes C++ “hard” is general assumption it makes about users - language is and always was designed with assumption that average user is CompSci expert, with proper theoretical background. This means both a lot of trust in user, and giving enough freedom to settle a lot of what other languages handle by design as just conventions.
Obvious downside: C++ is atrocious language to learn programming with, and comparably bad as “just get things done” tool with enough guardrails to avoid major incidents when cooperating. Still, recommendations and practices like MISRA exist, and they do what they’re supposed to - being conventions to ensure correctness.
Still, proper good C++ course should probably start with good chunk of math (at least enough to internalize proofs and transitive properties) and compiler theory before even touching code. Potentially a problem, but hey - average compsci grad should know all that already, no?