Paulo Pinto:
- arrays were bound checked (just use a compiler flags and dataflow to remove them like any sane language)
D removes very little bound checks. No data flow is used for this.
- enums were strong typed
D enums are only half strongly typed.
- had namespaces or real modules
D module system has holes like Swiss cheese. And its design is rather simplistic.
- no implicit type conversions
D has a large part of the bad implicit type conversions of C.
- had a sane macro system
There's no macro system in D. Mixins are an improvement over the preprocessor, but they lead to messy code.
But I guess D already covers it...
D solves only part of the problems. And you have not listed several important things. There's still a lot of way to go to have good enough system languages.
Bye, bearophile
