Worst ideas/features in programming languages?
SealabJaster
sealabjaster at gmail.com
Tue Oct 12 03:17:08 UTC 2021
On Monday, 11 October 2021 at 15:59:10 UTC, Atila Neves wrote:
> * Worst features implemented in a non-toy language
Everything to do with header files.
> * Worst features (in your opinion) in D
Autodecoding. Autodecoding. Autodecoding.
Mutable by default.
Template errors. (esp. `template instance func(T) where T =
string cannot be instantiated with T = string`, or something
along those lines, really, really, frustrates me)
Inconsistent built-in property naming. (As a bonus: historical
baggage)
A fear of language solutions because of reasons, leading to
annoying issues like std.sumtype being a PITA to debug sometimes
due to bad error messages it can't really do anything about.
`alias this`
`abc => { return 123; }` should not be returning a function that
returns a function.
> * Features you'd like to see in D
Language support for complex types:
* sumtype and/or tagged unions. esp. in regards to pattern
matching
* optional types.
* Maybe even a result/value_or_error type.
ProtoObject
Taken from C#: Having to specify `ref` and `out` parameters at
point of usage, not just at definition.
Being able to specify new/experimental functionality per-module,
a.l.a nullable syntax in C#.
Being able to match structs against an `interface` or other such
construct. As a language feature since a template version I can
foresee eating my CPU.
Allocators being better integrated with the language/phobos.
Standard, de-facto interface/library/whatever for things like
logging, databases, etc.
Object initialisers:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer
And most importantly, a plan for D's future and development,
because personally I have 0 idea where D is trying to go now,
what it's trying to be, who it tries to please, etc. What is our
vision? What are our goals and ambitions for the language?
I know it's basically completely infeasible but it's a fun
thought experiment to think about what a "D3" could be like.
Learning from the warts of the current language, removing
historical issues, just a complete redesign whilst still being D.
More information about the Digitalmars-d
mailing list