4 ms·
> C++ avoided reflection Not really, its architecture simply didn't really support reflection. C++ actually lets you do almost anything imaginable and then som
by noamsml 17y ago
> C++ avoided reflection
Not really, its architecture simply didn't really support reflection. C++ actually lets you do almost anything imaginable and then some.
Overall, though, I agree with the premise in part. Certain languages (Java, C#, and to a much lesser extent Python[1]) try to remove features they consider "evil", rather than let the developer have all the rope to tie themselves. What they fail to account for is that we're developers, we should be competent enough to know the dangers of certain features and we should be competent enough to avoid them if they're not needed.
Languages that let you do whatever the hell you want aren't a new thing, though. C, lisp, etc have existed for awhile. If at all, the idea of patronizing programmers is new.
[1] Guido van rossum has said many times that there should be only one way to do anything, and I think you see that with the crippling of lambda in Python (Guido favors named subfunctions). However, Python still has many "dangerous" features if you need them.
- blasdel 17y agolambda being crippled in Python is the same story as with C++ and reflection. It's pretty simple: Python's syntax doesn't let you have a statement inside a statement. Even if it did, handling blocks would be a nightmare!