Why does C++ need and use pointers? I know they add power to the language but they make it a lot harder to understand for beginners. Languages like F#, Java, Ruby, Python, Lua, etc. get by just fine without them, and they’re quite powerful.
Share
All other languages you mention (and you forgot, at least, Java!!!), while each very useful and usable, don’t let you get anywhere as close to the machine as C++ (and C) allow: simply put, all of those languages impose on you a higher level of abstraction… which may mostly be fine but will occasionally get in your way.
C++ is a bigger and more complicated language because it allows programming at really low levels of abstraction (very close to the machine) AND at pretty high levels (close to many of the languages you mention) within the same language, indeed within the same source files.
Beginners are well advised to stay FAR away from this amount of power and (inevitably) complication — but not every programmer is a beginner, and not every bit of code needs (or, actually, can at all stand!-) being within an environment that has “let’s protect the poor shmucks from themselves” as a major design goal!-)