Why is `scope` planned for deprecation?

via Digitalmars-d digitalmars-d at puremagic.com
Sun Nov 16 10:52:12 PST 2014


On Sunday, 16 November 2014 at 18:36:01 UTC, Walter Bright wrote:
> You can do anything with a language if it is Turing complete.

That's not the point. If you have to avoid features because they 
aren't general enough or have to change the design to fit the 
language and not the hardware, then the language design becomes a 
problem.

> Be careful you don't fall into kitchen sink syndrome. Add 
> enough features, and the language becomes unusable. Features 
> are almost never orthogonal, they always interact and interfere 
> with each other. This applies to all engineering, not just 
> languages. There are no 100% solutions.

I think C is pretty close to a 98% solution for system level 
programming. Granted, it relies on macros to reach that.

> For example, D doesn't support multiple inheritance. This is on 
> purpose. Yes, some C++ programmers believe D is badly broken 
> because of this. I don't at all believe it is unreasonable that 
> one should make adaptations in design in order to use a 
> language successfully.
>
> After all, D is explicitly designed to be a "pragmatic" 
> language.

I am not sure if OO-inheritance and virtual functions are all 
that important for system level programming, but generally 
features should work across the board if it can be implemented 
efficiently. E.g. creating "weird" typing rules due to ease of 
implementation does not sit well with me.

Or to put it in more simple terms: figuring out how a programming 
language works is a necessary investment, but having to figure 
out how a programming language does not work and when is really 
annoying.


More information about the Digitalmars-d mailing list