On Tuesday, 26 January 2016 at 23:04:57 UTC, tsbockman wrote:
This is why requiring modules to spend some time on DUB and/or in `std.experimental` before freezing the API is important.
Well, there aren't enough D applications written to ensure the usefulness of the API. Just take a look at widely adopted frameworks, they are "the one true thing" for a few years with 100s or 1000s of applications using them. However as applications grow problems emerge. What happens? The entire framework is scrapped and replaced with something else.
Targeting 100% generality with APIs is pretty much always a bad idea.
Making a system level programming library based on what a current PC operating systems offers is also a bad idea. On Apple systems you are supposed to no longer use paths, but switch to URLs for files. Ok, you can do that by requiring URLs on all platforms, but what if you designed the API 10 years ago?
Operating systems changes, hardware changes. System level programming languages shouldn't provide an abstract machine, unlike the JVM.
I'm not at all convinced that D isn't tied too heavily to x86/POSIX/Windows. It isn't obvious that future systems will bother with POSIX.