Walter Bright wrote: > Steven Schveighoffer wrote: >> For example, there is no possible way a person unfamiliar with computers > > That's a valid argument if you're writing a spreadsheet program. But > programmers should be familiar with computers, and most definitely > should be familiar with 2's complement arithmetic. > > Similarly, if you do much with floating point, you should be familiar > with "What Every Computer Scientist Should Know About Floating-Point > Arithmetic" > > http://docs.sun.com/source/806-3568/ncg_goldberg.html
It's a valid viewpoint, but it is a 'should'. I believe many programmers have only passing familiarity if at all with the semantics of unsigned types and floating point operations. At least when coding, they don't have these semantics in mind. Why do you think Java doesn't have unsigned types? As the language designer you can say that your target users must have this knowledge, that's fine. Paraphrasing Alexandrescu: this is one of those fundamental coordinates that put D on the landscape of programming languages. I'm quite sure though that when you go look at the empirical side of the story, 'should' does not equate with 'is'. However D does seem to target C#/Java and even python programmers. It is often suggested D's 'system programming' features are not actually *needed* and it offers enough high-level and safe features for programmers not comfortable with C / C++ to program effectively. This reasoning does not hold for unsigned integers and floating point vagaries.